@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/admin-assets/fonts/inter-latin-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/admin-assets/fonts/inter-latin-ext-wght-normal.woff2') format('woff2-variations');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --accent: #4f46e5;
  --accent-ink: #ffffff;
  --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --radius: 8px;
  --radius-sm: 6px;
  --radius-lg: 12px;
  --sidebar-w: 244px;
}
:root, :root[data-theme='light'] {
  --bg: #ffffff;
  --bg-subtle: #fafafa;
  --bg-muted: #f4f4f5;
  --bg-hover: #f0f0f2;
  --border: #e4e4e7;
  --border-subtle: #ececef;
  --text: #18181b;
  --text-muted: #6b6b74;
  --text-subtle: #a1a1aa;
  --danger: #dc2626;
  --danger-bg: #fef2f2;
  --success: #16a34a;
  --success-bg: #f0fdf4;
  --warning: #b45309;
  --warning-bg: #fffbeb;
  --shadow-sm: 0 1px 2px rgba(24, 24, 27, 0.05);
  --shadow-md: 0 8px 24px rgba(24, 24, 27, 0.08);
  --overlay: rgba(24, 24, 27, 0.4);
}
:root[data-theme='dark'] {
  --bg: #0c0c0e;
  --bg-subtle: #141416;
  --bg-muted: #1c1c1f;
  --bg-hover: #202024;
  --border: #27272a;
  --border-subtle: #202023;
  --text: #f4f4f5;
  --text-muted: #9d9da6;
  --text-subtle: #6b6b74;
  --danger: #f87171;
  --danger-bg: #2a1414;
  --success: #4ade80;
  --success-bg: #132417;
  --warning: #fbbf24;
  --warning-bg: #241d0d;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 12px 32px rgba(0, 0, 0, 0.45);
  --overlay: rgba(0, 0, 0, 0.6);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) {
    --bg: #0c0c0e;
    --bg-subtle: #141416;
    --bg-muted: #1c1c1f;
    --bg-hover: #202024;
    --border: #27272a;
    --border-subtle: #202023;
    --text: #f4f4f5;
    --text-muted: #9d9da6;
    --text-subtle: #6b6b74;
    --danger: #f87171;
    --danger-bg: #2a1414;
    --success: #4ade80;
    --success-bg: #132417;
    --warning: #fbbf24;
    --warning-bg: #241d0d;
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
    --shadow-md: 0 12px 32px rgba(0, 0, 0, 0.45);
    --overlay: rgba(0, 0, 0, 0.6);
  }
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: calc(0.875rem * var(--panel-text-scale,1));
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
h1, h2, h3 { margin: 0; font-weight: 600; letter-spacing: -0.01em; }
button { font-family: inherit; }
::selection { background: color-mix(in srgb, var(--accent) 30%, transparent); }

/* ---------- icons ---------- */
.icon { width: 18px; height: 18px; flex: none; display: block; }
.icon--sm { width: 15px; height: 15px; }

/* ---------- app shell ---------- */
.shell { display: flex; min-height: 100vh; }
.sidebar {
  flex: none; width: var(--sidebar-w); display: flex; flex-direction: column;
  background: var(--bg-subtle); border-right: 1px solid var(--border);
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
/* Rezzervio is the primary identity; the company row below supplies account context. */
.sidebar__platform { display:flex; align-items:center; justify-content:center; padding:24px 16px 16px; }

.brand { display: flex; align-items: center; gap: 10px; padding: 12px 16px 18px; border-bottom: 1px solid var(--border-subtle); min-width: 0; }
.brand__logo { width: 28px; height: 28px; border-radius: 7px; object-fit: cover; flex: none; background: var(--bg-muted); border: 1px solid var(--border-subtle); }
.brand__logo--mark { display: grid; place-items: center; color: var(--accent-ink); background: var(--accent); font-weight: 700; font-size: calc(0.8125rem * var(--panel-text-scale,1)); }
.brand__name { font-weight: 600; font-size: calc(0.8438rem * var(--panel-text-scale,1)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.dev-pill {
  margin: 12px 16px 0; padding: 6px 10px; border-radius: var(--radius-sm); background: var(--warning-bg);
  color: var(--warning); font-size: calc(0.7188rem * var(--panel-text-scale,1)); font-weight: 600; letter-spacing: 0.02em; line-height: 1.4;
}
.dev-pill--danger { background: var(--danger-bg); color: var(--danger); }

.nav { flex: 1; padding: 14px 10px; display: flex; flex-direction: column; gap: 18px; overflow-y: auto; }
.nav__label { padding: 0 8px; margin-bottom: 4px; font-size: calc(0.6875rem * var(--panel-text-scale,1)); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-subtle); }
.nav__group { display: flex; flex-direction: column; gap: 1px; }
.nav__link {
  display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: var(--radius-sm);
  color: var(--text-muted); font-size: calc(0.8438rem * var(--panel-text-scale,1)); font-weight: 500; transition: background 0.12s, color 0.12s;
}
.nav__link:hover { background: var(--bg-hover); color: var(--text); }
.nav__link.is-active { background: var(--bg-muted); color: var(--text); }
.nav__link .icon { color: var(--text-subtle); }
.nav__link.is-active .icon { color: var(--accent); }
.nav__badge {
  margin-left: auto; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--accent); color: var(--accent-ink);
  font-size: calc(0.6875rem * var(--panel-text-scale,1)); font-weight: 700; display: grid; place-items: center;
}

.sidebar__foot { border-top: 1px solid var(--border-subtle); padding: 10px; display: flex; flex-direction: column; gap: 2px; }
.theme-toggle {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 8px; border: 0; border-radius: var(--radius-sm);
  background: none; color: var(--text-muted); font-size: calc(0.8438rem * var(--panel-text-scale,1)); font-weight: 500; cursor: pointer; text-align: left;
}
.theme-toggle:hover { background: var(--bg-hover); color: var(--text); }
.theme-toggle .icon--moon { display: none; }
[data-theme='dark'] .theme-toggle .icon--sun { display: none; }
[data-theme='dark'] .theme-toggle .icon--moon { display: block; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .theme-toggle .icon--sun { display: none; }
  :root:not([data-theme='light']) .theme-toggle .icon--moon { display: block; }
}

.user-row { display: flex; align-items: center; gap: 8px; padding: 7px 8px; }
.user-row__avatar { width: 24px; height: 24px; border-radius: 50%; background: var(--bg-muted); border: 1px solid var(--border); display: grid; place-items: center; font-size: calc(0.6875rem * var(--panel-text-scale,1)); font-weight: 700; color: var(--text-muted); flex: none; }
.user-row__name { font-size: calc(0.8125rem * var(--panel-text-scale,1)); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
.signout { flex: none; border: 0; background: none; color: var(--text-subtle); cursor: pointer; padding: 4px; border-radius: var(--radius-sm); display: grid; }
.signout:hover { background: var(--bg-hover); color: var(--danger); }

/* mobile drawer */
.menu-toggle { display: none; }
.topbar-mobile { display: none; }

/* ---------- main ---------- */
.main { flex: 1; min-width: 0; }
.wrap { width: min(920px, 100% - 64px); margin: 0 auto; padding: 40px 0 100px; }
.page-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 28px; flex-wrap: wrap; }
.page-head h1 { font-size: calc(clamp(1.125rem, 1.0428rem + 0.3371vw, 1.3125rem) * var(--panel-text-scale,1)); }
.page-head p { margin: 4px 0 0; color: var(--text-muted); font-size: calc(0.8438rem * var(--panel-text-scale,1)); max-width: 60ch; }

/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px; height:2.125rem; padding: 0 13px;
  border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--bg); color: var(--text);
  font-size: calc(0.8125rem * var(--panel-text-scale,1)); font-weight: 600; cursor: pointer; transition: background 0.12s, border-color 0.12s, color 0.12s, opacity 0.12s;
  white-space: nowrap;
}
.btn:hover { background: var(--bg-hover); }
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn--sm { height:1.75rem; padding: 0 10px; font-size: calc(0.7812rem * var(--panel-text-scale,1)); }
.btn--primary { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.btn--primary:hover { filter: brightness(1.08); background: var(--accent); }
.btn--danger { color: var(--danger); }
.btn--danger:hover { background: var(--danger-bg); border-color: var(--danger); }
.btn--ghost { border-color: transparent; background: none; }
.btn--ghost:hover { background: var(--bg-hover); }
.btn--block { width: 100%; }
.btn-link { border: 0; background: none; padding: 0; color: var(--text-muted); font-size: calc(0.8125rem * var(--panel-text-scale,1)); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.btn-link:hover { color: var(--text); }

/* ---------- modal (replaces window.confirm()/alert() - those ignore the app's own theme
   entirely, always render as a plain white OS dialog even in dark mode) ---------- */
.modal-overlay {
  position: fixed; inset: 0; background: var(--overlay); z-index: 200;
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.modal { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: 24px; max-width: 440px; width: 100%; }
.modal__title { margin: 0 0 10px; font-size: calc(0.9375rem * var(--panel-text-scale,1)); font-weight: 700; }
.modal__body { margin: 0 0 20px; font-size: calc(0.8438rem * var(--panel-text-scale,1)); color: var(--text-muted); line-height: 1.55; white-space: pre-line; }
.modal__actions { display: flex; justify-content: flex-end; gap: 10px; }

/* ---------- badges ---------- */
.badge { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 999px; font-size: calc(0.7188rem * var(--panel-text-scale,1)); font-weight: 600; border: 1px solid transparent; }
.badge::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.badge--pending, .badge--warn { color: var(--warning); background: var(--warning-bg); }
.badge--ok { color: var(--success); background: var(--success-bg); }
.badge--off { color: var(--danger); background: var(--danger-bg); }
.badge--muted { color: var(--text-muted); background: var(--bg-muted); }

/* ---------- cards / panels ---------- */
.panel { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.panel + .panel { margin-top: 14px; }
.panel__head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 18px; border-bottom: 1px solid var(--border-subtle); }
.panel__head h3 { font-size: calc(0.9062rem * var(--panel-text-scale,1)); }
.panel__body { padding: 16px 18px; }
.section-title { font-size: calc(0.75rem * var(--panel-text-scale,1)); font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-subtle); margin: 28px 0 10px; }
.section-title:first-child { margin-top: 0; }
summary { cursor: pointer; }
summary::-webkit-details-marker { display: none; }

/* ---------- copyable code block (integration page) ---------- */
.code-block { position: relative; background: var(--bg-muted); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 44px 14px 16px; margin: 8px 0 0; overflow-x: auto; }
.code-block code { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: calc(0.7812rem * var(--panel-text-scale,1)); color: var(--text); white-space: pre-wrap; word-break: break-all; }
.code-block__copy { position: absolute; top: 8px; right: 8px; width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg); color: var(--text-muted); cursor: pointer; }
.code-block__copy:hover { background: var(--bg-hover); color: var(--text); }
.code-block__copy.is-copied { color: var(--success); border-color: var(--success); }
.endpoint-list { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.endpoint-list code { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: calc(0.7812rem * var(--panel-text-scale,1)); background: var(--bg-muted); border-radius: 5px; padding: 2px 6px; word-break: break-all; }

/* ---------- forms ---------- */
.stack { display: flex; flex-direction: column; gap: 14px; }
.field { display: block; }
.field + .field { margin-top: 14px; }
.field > span, .field > label { display: block; margin-bottom: 6px; font-size: calc(0.7812rem * var(--panel-text-scale,1)); font-weight: 600; color: var(--text-muted); }
input, select, textarea {
  width: 100%; height:2.125rem; padding: 0 10px; border-radius: var(--radius-sm); border: 1px solid var(--border);
  background: var(--bg); color: var(--text); font: inherit; font-size: calc(0.8438rem * var(--panel-text-scale,1)); transition: border-color 0.12s, box-shadow 0.12s;
}
textarea { height: auto; padding: 8px 10px; resize: vertical; min-height:4.375rem; }
input::placeholder, textarea::placeholder { color: var(--text-subtle); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); }
input:disabled, select:disabled { opacity: 0.5; background: var(--bg-muted); }
select { appearance: none; -webkit-appearance: none; padding-right: 30px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6b74' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 9px center; background-size: 15px;
}
.field.is-invalid input, .field.is-invalid select { border-color: var(--danger); box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 15%, transparent); }
.check { display: flex; align-items: flex-start; gap: 9px; cursor: pointer; font-size: calc(0.8125rem * var(--panel-text-scale,1)); color: var(--text-muted); }
.check input { width: 16px; height: 16px; margin-top: 1.5px; accent-color: var(--accent); flex: none; }

/* ---------- switch (animated on/off toggle, e.g. widget field visibility) ---------- */
.switch { position: relative; display: inline-block; width: 38px; height: 22px; flex: none; }
.switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.switch input:disabled { cursor: not-allowed; }
.switch__track { position: absolute; inset: 0; background: var(--border); border-radius: 999px; transition: background 0.15s ease; }
.switch__track::before { content: ''; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: #fff; transition: transform 0.15s ease; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25); }
.switch input:checked + .switch__track { background: var(--accent); }
.switch input:checked + .switch__track::before { transform: translateX(16px); }
.switch input:disabled + .switch__track { opacity: 0.5; }
.field-row { display: flex; align-items: center; gap: 12px; transition: opacity 0.15s ease; }
.field-row.is-off { opacity: 0.55; }
.field-row__body { flex: 1; min-width: 0; }
.field-row__required { display: flex; align-items: center; gap: 8px; flex: none; }
.switch--sm { width: 30px; height: 18px; }
.switch--sm .switch__track::before { width: 14px; height: 14px; }
.switch--sm input:checked + .switch__track::before { transform: translateX(12px); }
.hint { font-size: calc(0.75rem * var(--panel-text-scale,1)); color: var(--text-subtle); margin-top: 5px; }
.grid2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
/* Grid gap owns spacing; stacked-field margins must not offset adjacent columns. */
.grid2 > .field, .grid3 > .field { margin-top:0; min-width:0; }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.inline-fields { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; }
.inline-fields .field { flex: 1 1 140px; margin-top: 0; }
.honey { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.alert { display: flex; align-items: flex-start; gap: 8px; padding: 10px 13px; border-radius: var(--radius-sm); font-size: calc(0.8125rem * var(--panel-text-scale,1)); line-height: 1.5; margin-bottom: 16px; }
.alert .icon { margin-top: 1px; }
.alert--danger { background: var(--danger-bg); color: var(--danger); }
.alert--warning { background: var(--warning-bg); color: var(--warning); }
.alert--ok { background: var(--success-bg); color: var(--success); }

/* ---------- reservation list ---------- */
.res-list { display: flex; flex-direction: column; gap: 10px; }
.res { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--bg); overflow: hidden; scroll-margin-top: 70px; }
.res:target { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent); }
.res__row { display: flex; align-items: center; gap: 14px; padding: 13px 16px; flex-wrap: wrap; }
.res__when { display: flex; flex-direction: column; min-width: 128px; }
.res__when b { font-size: calc(0.8438rem * var(--panel-text-scale,1)); font-weight: 600; }
.res__when span { font-size: calc(0.75rem * var(--panel-text-scale,1)); color: var(--text-subtle); }
.res__who { flex: 1; min-width: 180px; display: flex; flex-direction: column; gap: 1px; }
.res__who b { font-size: calc(0.8438rem * var(--panel-text-scale,1)); font-weight: 600; }
.res__who span { font-size: calc(0.7812rem * var(--panel-text-scale,1)); color: var(--text-muted); }
/* What "Termin"/"Klient" actually are, at a glance, in a dense list of many cards - reuses the
   same small-caps micro-label look as .res__internal-label below, not the larger .field > span
   convention (too heavy here), and wins over the plain ".res__when span"/".res__who span" rules
   above through the extra class, regardless of source order. */
.res__when span.res__label, .res__who span.res__label { display: block; font-size: calc(0.625rem * var(--panel-text-scale,1)); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-subtle); margin-bottom: 2px; }
.res__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; padding: 0 16px 13px; font-size: calc(0.7812rem * var(--panel-text-scale,1)); color: var(--text-muted); }
.res__meta b { color: var(--text); font-weight: 600; }
.res__note { margin: 0 16px 13px; padding: 8px 11px; border-radius: var(--radius-sm); background: var(--warning-bg); color: var(--warning); font-size: calc(0.7812rem * var(--panel-text-scale,1)); }
.res__proposed { font-size: calc(0.7812rem * var(--panel-text-scale,1)); color: var(--accent); font-weight: 600; }
.res__actions { border-top: 1px solid var(--border-subtle); background: var(--bg-subtle); padding: 13px 16px; display: flex; flex-direction: column; gap: 12px; }
.res__actions .inline-fields { align-items: flex-end; }
.btnrow { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; justify-content: space-between; }
.btnrow .left { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.empty { padding: 48px 20px; text-align: center; color: var(--text-subtle); font-size: calc(0.8438rem * var(--panel-text-scale,1)); border: 1px dashed var(--border); border-radius: var(--radius-lg); }

/* ---------- reservations calendar ---------- */
.cal-head { display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 14px; font-size: calc(0.9062rem * var(--panel-text-scale,1)); }
.cal-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 6px; }
.cal-weekdays span { text-align: center; font-size: calc(0.6875rem * var(--panel-text-scale,1)); font-weight: 700; letter-spacing: 0.03em; color: var(--text-subtle); }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal-day {
  aspect-ratio: 1; border-radius: var(--radius-sm); border: 1px solid transparent; background: var(--bg-subtle);
  color: var(--text); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  text-decoration: none; font-size: calc(0.8125rem * var(--panel-text-scale,1)); font-weight: 600; transition: border-color 0.12s, background 0.12s;
}
.cal-day.is-empty { visibility: hidden; }
.cal-day:hover { border-color: var(--accent); }
.cal-day.is-today { border-color: var(--accent); }
.cal-day.is-selected { background: var(--accent); color: var(--accent-ink); }
.cal-day.is-selected .cal-day__num { color: inherit; }
.cal-day__dots { display: flex; gap: 2px; }
.cal-day__dots i { width: 5px; height: 5px; border-radius: 50%; display: block; }
.cal-day.is-selected .cal-day__dots i { box-shadow:0 0 0 1px var(--bg); }
@media (max-width: 560px) { .cal-day { font-size: calc(0.7188rem * var(--panel-text-scale,1)); } .cal-day__num { line-height: 1; } }

/* ---------- availability table ---------- */
.hours-row { display: grid; grid-template-columns: 156px auto 136px auto 136px 1fr; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--border-subtle); }
.hours-row:last-child { border-bottom: 0; }
.hours-row__day { font-size: calc(0.8438rem * var(--panel-text-scale,1)); font-weight: 600; }
.hours-row .to { color: var(--text-subtle); font-size: calc(0.7812rem * var(--panel-text-scale,1)); text-align: center; }

/* ---------- generic row lists (vacations, services, reviews, tenants) ---------- */
.rows-list { display: flex; flex-direction: column; gap: 0; border: 1px solid var(--border); }
.row-item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border: 0; border-radius: 0; }

/* ---------- internal (owner-only) notes on a reservation ---------- */
.res__internal { border-top: 1px solid var(--border-subtle); padding: 12px 16px; background: var(--bg); }
.res__internal-label { display: flex; align-items: center; gap: 6px; margin: 0; font-size: calc(0.75rem * var(--panel-text-scale,1)); font-weight: 600; color: var(--text-subtle); text-transform: uppercase; letter-spacing: 0.03em; }
.notes-list { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.notes-list li { font-size: calc(0.7812rem * var(--panel-text-scale,1)); color: var(--text-muted); }
.notes-list__at { color: var(--text-subtle); margin-right: 6px; }

/* ---------- report stat cards ---------- */
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-bottom: 24px; }
.stat { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 16px 18px; background: var(--bg); display: flex; flex-direction: column; gap: 6px; }
.stat__label { font-size: calc(0.75rem * var(--panel-text-scale,1)); color: var(--text-subtle); font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
.stat__value { font-size: calc(clamp(1.2rem, 1.0685rem + 0.5393vw, 1.5rem) * var(--panel-text-scale,1)); font-weight: 700; letter-spacing: -0.01em; }

/* ---------- star rating: read-only display + interactive picker ---------- */
.stars-display { color: #f59e0b; letter-spacing: 1px; font-size: calc(0.9375rem * var(--panel-text-scale,1)); }
.star-input { display: flex; flex-direction: row-reverse; justify-content: center; gap: 4px; margin-top: 4px; }
.star-input input { position: absolute; opacity: 0; width: 0; height: 0; }
.star-input label { font-size: calc(clamp(1.7rem, 1.5138rem + 0.764vw, 2.125rem) * var(--panel-text-scale,1)); line-height: 1; color: var(--border); cursor: pointer; transition: color 0.1s; }
.star-input input:checked ~ label,
.star-input label:hover,
.star-input label:hover ~ label { color: #f59e0b; }

/* ---------- profile / logo ---------- */
.logo-picker { display:flex; align-items:center; gap:24px; }
.logo-picker__preview { width:112px; height:112px; flex:none; display:grid; place-items:center; border:1px solid var(--border); border-radius:var(--radius); background:var(--bg-subtle); padding:12px; }
.logo-picker__preview img { width:100%; height:100%; object-fit:contain; }
.logo-picker__placeholder { display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--text-subtle); font-size:calc(0.75rem * var(--panel-text-scale,1)); }
.logo-picker__placeholder svg { width:28px; height:28px; }
.logo-picker [hidden] { display:none; }
.logo-picker__content { min-width:0; }
.logo-picker__title { margin:0 0 4px; font-weight:600; }
.logo-picker__content > .hint { margin:0 0 14px; }
.logo-picker__choose { position:relative; cursor:pointer; overflow:hidden; }
.logo-picker__choose input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.logo-picker__choose:focus-within { outline:2px solid var(--accent); outline-offset:3px; }
.logo-picker__content > .logo-picker__filename { margin:10px 0 0; overflow-wrap:anywhere; }
@media(max-width:480px){.logo-picker{align-items:flex-start;gap:16px}.logo-picker__preview{width:80px;height:80px;padding:8px}}

.swatches { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.swatch { width: 26px; height: 26px; border-radius: 50%; border: 2px solid var(--bg); box-shadow: 0 0 0 1px var(--border); cursor: pointer; }
.swatch.is-active { box-shadow: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent); }

/* ---------- login ---------- */
.login-shell { min-height: 100vh; display: grid; place-items: center; background: var(--bg-subtle); padding: 24px; }
.login-card { width: 100%; max-width: 380px; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: 32px; }
.login-card__logo { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-bottom: 22px; text-align: center; }
.login-card__logo > img, .login-card__logo .brand__logo--mark { width: 44px; height: 44px; border-radius: 10px; font-size: calc(1.0625rem * var(--panel-text-scale,1)); }
.login-card__logo h1 { font-size: calc(1rem * var(--panel-text-scale,1)); }
.login-card__logo p { margin: 0; font-size: calc(0.7812rem * var(--panel-text-scale,1)); color: var(--text-muted); }

@media (max-width: 900px) {
  .sidebar {
    position: fixed; inset: 0 auto 0 0; z-index: 40; transform: translateX(-100%); transition: transform 0.2s ease;
    box-shadow: var(--shadow-md);
  }
  .menu-toggle:checked ~ .shell .sidebar { transform: translateX(0); }
  .menu-toggle:checked ~ .shell .scrim { opacity: 1; pointer-events: auto; }
  .scrim { position: fixed; inset: 0; background: var(--overlay); z-index: 35; opacity: 0; pointer-events: none; transition: opacity 0.2s ease; }
  .topbar-mobile {
    display: flex; align-items: center; gap: 12px; height: 54px; padding: 0 16px; border-bottom: 1px solid var(--border);
    background: var(--bg-subtle); position: sticky; top: 0; z-index: 20;
  }
  .topbar-mobile label { display: grid; place-items: center; width: 32px; height: 32px; border-radius: var(--radius-sm); cursor: pointer; }
  .topbar-mobile label:hover { background: var(--bg-hover); }
  .topbar-mobile .brand__name { font-size: calc(0.8438rem * var(--panel-text-scale,1)); font-weight: 600; }
  .wrap { width: min(920px, 100% - 32px); padding: 24px 0 80px; }
  .grid2, .grid3 { grid-template-columns: 1fr; }
  .hours-row { grid-template-columns: 1fr; gap: 6px; }
  .hours-row .to { text-align: left; }
  .res__actions .btnrow { flex-direction: column; align-items: stretch; }
  .res__actions .btnrow .left { justify-content: stretch; }
  .res__actions .btnrow .left .btn { flex: 1; }
}
@media (min-width: 901px) {
  .menu-toggle, .scrim, .topbar-mobile { display: none; }
}

.integration-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:16px 0; }
.integration-actions p { margin:0; }
.integration-actions .btn { flex:none; }
.integration-actions.is-dirty { color:var(--text); }
.integration-actions [data-integration-status][data-error="true"] { color:var(--danger, #dc2626); }
dialog.modal { color:var(--text); margin:auto; }
dialog.modal::backdrop { background:rgba(0,0,0,.55); }

/* Shared custom time control: canonical HH:mm is kept in a hidden form field. */
.time-picker { min-width:0; }
.time-picker__trigger { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; min-height:38px; padding:8px 10px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--bg); color:var(--text); font:inherit; font-variant-numeric:tabular-nums; white-space:nowrap; cursor:pointer; }
.time-picker__trigger:hover:not(:disabled) { border-color:var(--accent); }
.time-picker__trigger:disabled { cursor:default; opacity:.4; background:var(--bg-muted); }
.time-picker__trigger:focus-visible, .time-picker__step:focus-visible, .time-picker__number:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.time-picker-dialog { max-width:460px; width:calc(100% - 32px); max-height:calc(100dvh - 32px); overflow:auto; }
.time-picker__value { display:block; margin:8px 0 20px; font-size:calc(clamp(1.6rem, 1.4247rem + 0.7191vw, 2rem) * var(--panel-text-scale,1)); font-weight:650; font-variant-numeric:tabular-nums; }
.time-picker__columns { display:flex; justify-content:center; align-items:center; gap:20px; margin-bottom:24px; }
.time-picker__column { flex:0 1 96px; min-width:0; text-align:center; }
.time-picker__columns h3 { font-size:calc(0.75rem * var(--panel-text-scale,1)); color:var(--text-muted); margin:0 0 10px; }
.time-picker__step { display:block; width:100%; min-height:44px; border:0; border-radius:var(--radius-sm); background:var(--bg-subtle); color:var(--text-muted); font:inherit; font-size:calc(0.875rem * var(--panel-text-scale,1)); cursor:pointer; }
.time-picker__step:hover { background:var(--bg-hover); color:var(--text); }
.time-picker__step:active { color:var(--accent); }
.time-picker__step { touch-action:none; user-select:none; -webkit-user-select:none; }
.time-picker__number { padding:10px 0; border-radius:var(--radius-sm); font-size:calc(clamp(1.8rem, 1.6028rem + 0.809vw, 2.25rem) * var(--panel-text-scale,1)); font-weight:650; font-variant-numeric:tabular-nums; }
.time-picker__period { min-height:44px; padding:8px 12px; }
.time-picker__period[hidden] { display:none; }

[data-hours-error][hidden] { display:none; }

.hours-row__heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.hours-row__copy { flex:none; padding:6px; width:32px; height:32px; }
.copy-hours-dialog { width:calc(100% - 32px); max-height:calc(100dvh - 32px); overflow:auto; }
.copy-hours__days { display:grid; gap:8px; margin:20px 0; }
.copy-hours__days .check { margin:0; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius-sm); }
.copy-hours__days .check:has(input:checked) { border-color:var(--accent); background:var(--bg-subtle); }
.copy-hours__summary { font-weight:600; font-variant-numeric:tabular-nums; }

.profile-form .grid2 > .field { margin:0; min-width:0; }
.profile-form .grid2 { align-items:start; }
.profile-form .grid2 + .grid2, .profile-form .grid2 + .field { margin-top:16px; }
.profile-form select { width:100%; min-width:0; }

.local-date-input { display:flex; gap:6px; position:relative; min-width:0; }
.local-date-input > input[type=text] { flex:1; min-width:0; }
.local-date-input .local-date-input__native { position:absolute; width:1px; height:1px; padding:0; opacity:0; pointer-events:none; bottom:0; left:0; }

.settings-tabs { display:flex; gap:24px; border-bottom:1px solid var(--border); margin-bottom:24px; }
.settings-tabs [role=tab] { appearance:none; background:none; border:0; border-bottom:2px solid transparent; padding:12px 0; margin-bottom:-1px; font:inherit; font-weight:600; color:var(--text-muted); cursor:pointer; }
.settings-tabs [aria-selected=true] { color:var(--text); border-bottom-color:var(--accent); }
.settings-tabs [role=tab]:hover { color:var(--text); }
.settings-tabs [role=tab]:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
[role=tabpanel][hidden] { display:none; }

/* ---------- Rezzervio product system ---------- */
:root { --radius:8px; --radius-sm:6px; --radius-lg:12px; --sidebar-w:264px; }
:root, :root[data-theme=light] { --bg:#ffffff; --bg-subtle:#f7f7fa; --bg-muted:#f0f0f5; --bg-hover:#eaeaf0; --border:#dedee7; --border-subtle:#eaeaf0; --text:#20202b; --text-muted:#646475; --text-subtle:#717182; }
:root[data-theme=dark] { --bg:#19191f; --bg-subtle:#101014; --bg-muted:#24242e; --bg-hover:#2d2d38; --border:#35353f; --border-subtle:#292933; --text:#f5f5fa; --text-muted:#b0b0bf; --text-subtle:#9595a8; }
@media(prefers-color-scheme:dark) { :root:not([data-theme=light]) { --bg:#19191f; --bg-subtle:#101014; --bg-muted:#24242e; --bg-hover:#2d2d38; --border:#35353f; --border-subtle:#292933; --text:#f5f5fa; --text-muted:#b0b0bf; --text-subtle:#9595a8; } }
body { font-size:calc(0.9375rem * var(--panel-text-scale,1)); line-height:1.6; }
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
[hidden] { display:none !important; }
.main { background:var(--bg-subtle); }
.wrap { width:min(1120px,100% - 80px); padding:36px 0 72px; }
.page-head { align-items:center; margin-bottom:32px; padding-bottom:24px; border-bottom:1px solid var(--border); gap:16px; }
.page-head h1 { font-size:calc(clamp(1.6rem, 1.4247rem + 0.7191vw, 2rem) * var(--panel-text-scale,1)); line-height:1.2; font-weight:650; letter-spacing:-.04em; }
.page-head p { margin-top:10px; font-size:calc(0.875rem * var(--panel-text-scale,1)); line-height:1.6; max-width:68ch; }
.sidebar { background:var(--bg); }
.sidebar__platform { padding:28px 20px 24px; }
.brand { margin:0 16px; padding:14px 0 18px; }
.brand__name { white-space:normal; line-height:1.4; }
.nav { gap:24px; padding:20px 12px; }
.nav__label { font-size:calc(0.625rem * var(--panel-text-scale,1)); letter-spacing:.08em; margin:0 0 8px; }
.nav__link { min-height:42px; padding:10px 12px; font-size:calc(0.875rem * var(--panel-text-scale,1)); }
.nav__link.is-active { font-weight:600; background:color-mix(in srgb,var(--accent) 12%,var(--bg)); box-shadow:none; }
.dev-pill { margin:16px 16px 0; padding:10px 12px; font-size:calc(0.6875rem * var(--panel-text-scale,1)); }
.sidebar__foot { padding:12px; }
.btn { min-height:2.5rem; height:auto; padding:9px 14px; line-height:1.4; }
.btn--sm { min-height:2rem; padding:6px 10px; }
.btn--primary:hover { filter:none; box-shadow:inset 0 0 0 100px #00000012; }
.stack { gap:20px; }
.stack > .field + .field { margin-top:0; }
.stack > .btn[type=submit] { align-self:flex-start; min-width:164px; }
.stack > .btn--block { align-self:stretch; }
input,select { min-height:2.625rem; height:2.625rem; font-size:calc(0.875rem * var(--panel-text-scale,1)); padding-inline:12px; }
textarea { font-size:calc(0.875rem * var(--panel-text-scale,1)); padding:12px; min-height:6.25rem; }
input[type=checkbox],input[type=radio] { min-height:0; }
.field > span,.field > label { font-size:calc(0.75rem * var(--panel-text-scale,1)); line-height:1.5; font-weight:550; margin-bottom:8px; }
.grid2,.grid3 { column-gap:24px; row-gap:20px; }
.inline-fields { gap:16px; }
.hint { font-size:calc(0.75rem * var(--panel-text-scale,1)); line-height:1.6; }
.panel { border-radius:12px; box-shadow:var(--shadow-sm); }
.panel__head { padding:20px 24px; background:transparent; }
.panel__head h2,.panel__head h3 { font-size:calc(1rem * var(--panel-text-scale,1)); font-weight:600; letter-spacing:-.02em; }
.panel__body { padding:24px; }
.section-title { color:var(--text-muted); font-size:calc(0.6875rem * var(--panel-text-scale,1)); letter-spacing:.06em; margin:24px 0 12px; }
.panel + .panel { margin-top:20px; }
.stack > .panel + .panel { margin-top:0; }
.grid2 > .panel + .panel, .grid3 > .panel + .panel { margin-top:0; }
.rows-list { border-radius:var(--radius-lg); background:var(--bg); }
.row-item { padding:20px 24px; gap:16px; }
.empty { padding:56px 32px; border-style:solid; background:var(--bg); color:var(--text-muted); font-size:calc(0.875rem * var(--panel-text-scale,1)); }
.stat-grid { gap:0; border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; background:var(--bg); }
.stat { border:0; border-right:1px solid var(--border); border-radius:0; padding:24px; }
.stat:last-child { border-right:0; }
.stat__label { font-size:calc(0.75rem * var(--panel-text-scale,1)); text-transform:none; letter-spacing:0; }
.stat__value { font-size:calc(clamp(1.5rem, 1.3357rem + 0.6742vw, 1.875rem) * var(--panel-text-scale,1)); font-weight:550; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.hours-row { padding:18px 0; gap:16px; }
.hours-row__day { font-size:calc(0.8125rem * var(--panel-text-scale,1)); font-weight:600; }
.hours-row__copy { min-height:32px; }
.time-picker__trigger { min-height:42px; }
.time-picker__period[hidden] { display:none; }
.cal-head { justify-content:space-between; font-size:calc(1.125rem * var(--panel-text-scale,1)); padding-bottom:16px; }
.cal-grid { gap:1px; background:var(--border); border:1px solid var(--border); border-radius:8px; overflow:hidden; }
.cal-day { background:var(--bg); border-radius:0; aspect-ratio:auto; min-height:84px; align-items:flex-start; justify-content:flex-start; padding:12px; font-size:calc(0.875rem * var(--panel-text-scale,1)); }
.cal-day.is-empty { visibility:visible; background:var(--bg-subtle); }
.cal-day.is-today { box-shadow:inset 0 0 0 1px var(--accent); }
.cal-weekdays { margin-bottom:12px; }
.cal-weekdays span { text-align:left; padding-left:12px; }
.cal-day__dots { margin-top:auto; }
.modal { padding:28px; }
.modal__title { font-size:calc(1.125rem * var(--panel-text-scale,1)); letter-spacing:-.025em; }
.modal__body { font-size:calc(0.875rem * var(--panel-text-scale,1)); }
.modal::backdrop { background:var(--overlay); }
.settings-tabs { margin-bottom:28px; }
.settings-tabs [role=tab] { padding:12px 0; font-size:calc(0.875rem * var(--panel-text-scale,1)); }
/* Reservation anatomy: date, client, status, facts, decision, internal notes. */
.res-list { gap:20px; }
.visit-header { display:flex; align-items:center; gap:24px; padding:24px; }
.visit-date { flex:none; min-width:108px; display:flex; flex-direction:column; border-right:1px solid var(--border); padding-right:24px; }
.visit-date strong { font-size:calc(clamp(1.2rem, 1.0685rem + 0.5393vw, 1.5rem) * var(--panel-text-scale,1)); font-weight:600; letter-spacing:-.04em; line-height:1.3; font-variant-numeric:tabular-nums; }
.visit-date span { font-size:calc(0.6875rem * var(--panel-text-scale,1)); color:var(--text-muted); margin-top:4px; }
.visit-title { flex:1; min-width:0; }
.visit-title h2 { font-size:calc(1.0625rem * var(--panel-text-scale,1)); font-weight:600; overflow-wrap:anywhere; }
.visit-title p { font-size:calc(0.75rem * var(--panel-text-scale,1)); color:var(--text-muted); margin:4px 0 0; }
.visit-toggle { min-width:80px; font-size:calc(0.6875rem * var(--panel-text-scale,1)); padding:6px; }
.visit-toggle .icon { width:15px; height:15px; transform:rotate(180deg); }
.visit-toggle[aria-expanded=false] .icon { transform:none; }
.res-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:0; padding:24px; border-top:1px solid var(--border-subtle); }
.res-fact dt,.visit-note>span { color:var(--text-muted); font-size:calc(0.6875rem * var(--panel-text-scale,1)); margin-bottom:6px; }
.res-fact dd { font-size:calc(0.8125rem * var(--panel-text-scale,1)); color:var(--text); margin:0; overflow-wrap:anywhere; white-space:pre-line; }
.visit-note { padding:0 24px 24px; }
.visit-note p { margin:6px 0 0; font-size:calc(0.8125rem * var(--panel-text-scale,1)); white-space:pre-line; }
.res__actions { padding:24px; gap:20px; }
.res__actions .inline-fields { align-items:flex-start; }
.res__actions .inline-fields>.field { max-width:none !important; }
.res__actions .btnrow { border-top:1px solid var(--border); padding-top:20px; gap:12px; }
.res__internal { padding:20px 24px; }
.res__internal-label { font-size:calc(0.6875rem * var(--panel-text-scale,1)); letter-spacing:.02em; }
.notes-list { margin-top:12px; }
.notes-list__at { font-variant-numeric:tabular-nums; }
.res__meta { padding:0 24px 20px; }
/* A single account layout for login, signup, MFA, reset and confirmation. */
.auth-shell { display:grid; grid-template-columns:minmax(320px,42%) minmax(0,1fr); min-height:100dvh; padding:0; gap:0; place-items:stretch; background:var(--bg); }
.auth-context { background:var(--bg-subtle); border-right:1px solid var(--border); padding:48px clamp(28px,5vw,80px); display:flex; flex-direction:column; gap:48px; }
.auth-context__brand { display:inline-flex; align-self:flex-start; }
.auth-context__copy { margin:auto 0; padding:48px 0; }
.auth-context__label { font-size:calc(0.75rem * var(--panel-text-scale,1)); color:var(--text-muted); margin-bottom:24px; }
.auth-context h2 { font-size:clamp(1.875rem, 3vw, 2.75rem); font-weight:550; line-height:1.15; letter-spacing:-.045em; margin-bottom:24px; }
.auth-context__copy>p:not(.auth-context__label) { font-size:calc(0.9375rem * var(--panel-text-scale,1)); line-height:1.7; color:var(--text-muted); max-width:33ch; }
.auth-context__steps { padding:24px 0 0; margin:32px 0 0; list-style:none; border-top:1px solid var(--border); display:grid; gap:16px; font-size:calc(0.75rem * var(--panel-text-scale,1)); }
.auth-context__steps span { margin-right:20px; font-variant-numeric:tabular-nums; color:var(--text-muted); }
.auth-context__back { font-size:calc(0.75rem * var(--panel-text-scale,1)); color:var(--text-muted); display:flex; align-items:center; gap:12px; }
.auth-context__back .icon { transform:rotate(180deg); width:14px; }
.auth-shell .login-card { width:min(430px,calc(100% - 80px)); max-width:430px; margin:64px auto; align-self:center; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; text-align:left; }
.auth-shell .login-card__logo { margin-bottom:32px; align-items:flex-start; gap:16px; text-align:left; }
.auth-shell .login-card__logo h1,.auth-shell .login-card>h1 { font-size:calc(clamp(1.4rem, 1.2466rem + 0.6292vw, 1.75rem) * var(--panel-text-scale,1)); letter-spacing:-.04em; font-weight:600; line-height:1.2; margin-bottom:12px; }
.auth-shell .login-card__logo p { font-size:calc(0.875rem * var(--panel-text-scale,1)); color:var(--text-muted); margin-top:8px; line-height:1.6; }
.auth-shell .login-card .hint { font-size:calc(0.75rem * var(--panel-text-scale,1)); }
.auth-shell .field>span { font-size:calc(0.8125rem * var(--panel-text-scale,1)); color:var(--text); }
.auth-shell input { height:3rem; font-size:calc(0.9375rem * var(--panel-text-scale,1)); }
.auth-shell input[inputmode=numeric] { font-size:calc(clamp(1.2rem, 1.0685rem + 0.5393vw, 1.5rem) * var(--panel-text-scale,1)); letter-spacing:.3em; font-variant-numeric:tabular-nums; }
.auth-shell .btn--primary { min-height:3rem; }
.auth-shell .login-card .btn-link { color:var(--text); }
.login-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; width:100%; padding:4px; margin:0 0 28px; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--bg-muted); }
.login-tabs a { display:flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:10px 16px; border-radius:var(--radius); color:var(--text-muted); font-size:calc(0.875rem * var(--panel-text-scale,1)); font-weight:600; text-decoration:none; }
.login-tabs a:hover { background:var(--bg-hover); color:var(--text); }
.login-tabs a[aria-current="page"] { background:var(--accent); color:var(--accent-ink); }
.login-tabs a:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.login-tabs .icon { width:20px; height:20px; flex-shrink:0; }
.password-control { position:relative; }
.password-control input { padding-right:70px; }
.password-control button { position:absolute; right:4px; top:4px; bottom:4px; border:0; border-radius:4px; padding:0 10px; font:inherit; font-size:calc(0.6875rem * var(--panel-text-scale,1)); color:var(--text-muted); background:transparent; cursor:pointer; }
.password-control button:hover { background:var(--bg-muted); color:var(--text); }
/* Customer-facing review pages retain a focused single-column layout. */
.login-shell:not(.auth-shell) { background:var(--bg-subtle); }
.login-shell:not(.auth-shell) .login-card { padding:32px; width:min(460px,100%); box-shadow:none; }
@media(max-width:1100px) { .wrap { width:calc(100% - 48px); } .visit-header { gap:16px; } .visit-toggle { min-width:32px; } .visit-toggle span { display:none; } .res-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
 .auth-shell { display:flex; flex-direction:column; } .auth-context { border-right:0; border-bottom:1px solid var(--border); padding:24px; gap:0; } .auth-context__copy,.auth-context__back { display:none; } .auth-shell .login-card { width:calc(100% - 48px); margin:40px auto; max-width:440px; }
 .wrap { width:calc(100% - 32px); padding:28px 0 64px; } .page-head { padding-bottom:20px; margin-bottom:24px; } .page-head h1 { font-size:calc(1.625rem * var(--panel-text-scale,1)); } .page-head p { font-size:calc(0.8125rem * var(--panel-text-scale,1)); }
 .btn { min-height:2.75rem; white-space:normal; } .btn--sm { min-height:2.25rem; } input,select { height:2.75rem; font-size:calc(1rem * var(--panel-text-scale,1)); } .panel__body,.panel__head { padding:20px; } .row-item { padding:20px; flex-wrap:wrap; } .stack>.btn[type=submit] { align-self:stretch; }
 .visit-header { padding:20px; flex-wrap:wrap; gap:16px; } .visit-date { min-width:90px; padding-right:16px; } .visit-date strong { font-size:calc(1.3125rem * var(--panel-text-scale,1)); } .visit-title { min-width:140px; } .visit-header>.badge { margin-left:0; } .visit-toggle { margin-left:auto; } .visit-toggle span { display:inline; } .res-facts { padding:20px; gap:20px; } .res__actions,.res__internal { padding:20px; } .visit-note { padding:0 20px 20px; } .res__actions .inline-fields>.field { flex-basis:100%; } .res__actions .btnrow .left { width:100%; } .res__actions .btnrow .btn { flex:1; } .res__actions .btnrow>.btn--danger { flex:0 1 auto; }
 .stat { padding:20px; border-bottom:1px solid var(--border); } .stat__value { font-size:calc(1.5625rem * var(--panel-text-scale,1)); } .cal-day { min-height:54px; padding:8px; } .cal-weekdays span { padding-left:8px; } .cal-head { font-size:calc(1rem * var(--panel-text-scale,1)); } .hours-row { gap:10px; padding:20px 0; } .time-picker__step { min-height:44px; } .modal { padding:24px; } .field-row { flex-wrap:wrap; }
}
@media(max-width:400px) { .res-facts { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none !important; scroll-behavior:auto !important; } }

@media(max-width:760px) {
 .hours-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:16px; }
 .hours-row__heading { grid-column:1 / -1; }
 .hours-row>.to:nth-child(2) { grid-column:1; grid-row:2; }
 .hours-row>.to:nth-child(4) { grid-column:2; grid-row:2; }
 .hours-row>.time-picker:nth-child(3) { grid-column:1; grid-row:3; }
 .hours-row>.time-picker:nth-child(5) { grid-column:2; grid-row:3; }
 .hours-row>.check { grid-column:1 / -1; }
}

/* Refined neutral product surfaces; imagery is confined to empty states. */
.page-head { border:0; padding-bottom:0; margin-bottom:28px; }
.field > span,.field > label { font-size:calc(0.8125rem * var(--panel-text-scale,1)); }
.sidebar { background:var(--bg); }
.brand { border:1px solid var(--border); border-radius:10px; padding:12px; margin:0 16px; background:var(--bg-subtle); }
.brand__name { font-size:calc(0.875rem * var(--panel-text-scale,1)); }
.nav__label { font-size:calc(0.6875rem * var(--panel-text-scale,1)); color:var(--text-muted); }
.nav__link .icon { color:var(--text-muted); }
.res { box-shadow:var(--shadow-sm); border-radius:14px; }
.visit-header { padding:22px 24px; }
.visit-date strong { font-size:calc(clamp(1.4rem, 1.2466rem + 0.6292vw, 1.75rem) * var(--panel-text-scale,1)); }
.visit-date span { font-size:calc(0.75rem * var(--panel-text-scale,1)); }
.visit-title h2 { font-size:calc(1.125rem * var(--panel-text-scale,1)); }
.visit-title p { font-size:calc(0.8125rem * var(--panel-text-scale,1)); }
.visit-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); border-top:1px solid var(--border); }
.visit-overview { min-width:0; }
.res-facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; border:0; }
.res-fact dt,.visit-note>span { font-size:calc(0.75rem * var(--panel-text-scale,1)); }
.res-fact dd,.visit-note p { font-size:calc(0.875rem * var(--panel-text-scale,1)); }
.res-fact:first-child dd { font-variant-numeric:tabular-nums; }
.res__actions { border:0; border-left:1px solid var(--border); gap:16px; background:var(--bg-subtle); }
.res__actions .inline-fields { gap:16px; }
.res__actions .inline-fields>.field { flex:1 1 150px; }
.res__actions .btnrow { padding-top:16px; gap:10px; }
.res__actions .btnrow .left { gap:8px; }
.res__internal { grid-column:1 / -1; border-top:1px solid var(--border); padding:16px 24px; }
.res__internal-label { color:var(--text-muted); text-transform:none; letter-spacing:0; font-size:calc(0.75rem * var(--panel-text-scale,1)); }
.notes-list { font-size:calc(0.8125rem * var(--panel-text-scale,1)); }
.manual-booking > summary { justify-content:flex-start; gap:14px; padding:16px 20px; }
.manual-booking > summary h3 { font-size:calc(0.875rem * var(--panel-text-scale,1)); }
.manual-booking > summary .icon { color:var(--accent); }
.visit-count { color:var(--text-muted); font-size:calc(0.8125rem * var(--panel-text-scale,1)); white-space:nowrap; }
.empty--illustrated { padding:36px 24px 44px; max-width:none; }
.empty--illustrated img { display:block; width:136px; height:136px; object-fit:contain; margin:0 auto 20px; }
.empty--illustrated h2 { font-size:calc(clamp(1.125rem, 1.0702rem + 0.2247vw, 1.25rem) * var(--panel-text-scale,1)); color:var(--text); margin-bottom:8px; }
.empty--illustrated p { max-width:42ch; margin:0 auto; font-size:calc(0.875rem * var(--panel-text-scale,1)); }
.empty--illustrated .btn { margin-top:20px; }
@media(max-width:1100px) { .visit-body { grid-template-columns:1fr; } .res__actions { border-left:0; border-top:1px solid var(--border); } }
@media(max-width:760px) { .visit-header { padding:20px; } .visit-date strong { font-size:calc(1.5rem * var(--panel-text-scale,1)); } .res__internal { padding:16px 20px; } .res-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } .res-fact:has(dd:not(:empty)) { min-width:0; } .res-fact:nth-child(2) { grid-column:1 / -1; grid-row:2; } .visit-title h2 { font-size:calc(1.0625rem * var(--panel-text-scale,1)); } .page-head { margin-bottom:24px; } }

.auth-context__art { display:block; width:200px; height:200px; object-fit:contain; margin:32px 0 0; }
.auth-context__steps { display:none; }
@media(max-width:760px) { .auth-context__art { display:none; } }

.visit-body:not(:has(> .res__actions)) .visit-overview { grid-column:1 / -1; }

.res__actions .inline-fields>.field:has(.local-date-input) { flex-basis:100%; }

/* Perspektywa: shared graphite/silver surfaces for every application view. */
:root,:root[data-theme=light] { --bg:#ffffff; --bg-subtle:#f5f7fa; --bg-muted:#edf1f6; --bg-hover:#e8edf4; --border:#dce3ed; --border-subtle:#e8edf4; --text:#172030; --text-muted:#59677c; --text-subtle:#6d7a8d; --radius-lg:10px; }
:root[data-theme=dark] { --bg:#141c27; --bg-subtle:#0e151e; --bg-muted:#1d2939; --bg-hover:#253347; --border:#2c3a4e; --border-subtle:#233145; --text:#f2f6fc; --text-muted:#acb9cc; --text-subtle:#92a3bb; }
@media(prefers-color-scheme:dark) { :root:not([data-theme=light]) { --bg:#141c27; --bg-subtle:#0e151e; --bg-muted:#1d2939; --bg-hover:#253347; --border:#2c3a4e; --border-subtle:#233145; --text:#f2f6fc; --text-muted:#acb9cc; --text-subtle:#92a3bb; } }
.wrap { width:min(1380px,100% - 64px); padding:32px 0 64px; }
.page-head { padding-bottom:24px; border-bottom:1px solid var(--border); margin-bottom:24px; }
.page-head h1 { font-size:calc(clamp(1.5rem, 1.3357rem + 0.6742vw, 1.875rem) * var(--panel-text-scale,1)); font-weight:650; letter-spacing:-.04em; }
.sidebar__platform { padding:28px 20px; }
.nav { gap:20px; }
.nav__link { font-size:calc(0.8125rem * var(--panel-text-scale,1)); min-height:40px; }
.brand { background:transparent; border:0; border-bottom:1px solid var(--border); border-radius:0; margin:0 20px; padding:0 0 20px; }
.brand__name { font-size:calc(0.8125rem * var(--panel-text-scale,1)); }
.panel,.res { border-radius:10px; box-shadow:none; }
.panel__head { padding:18px 24px; }
.panel__body { padding:24px; }
input,select,textarea { border-radius:6px; }
.btn { border-radius:6px; }
.visit-tabs { display:flex; gap:24px; border-bottom:1px solid var(--border); margin:24px 0; overflow-x:auto; }
.visit-tabs a { flex:none; padding:0 0 12px; color:var(--text-muted); font-size:calc(0.8125rem * var(--panel-text-scale,1)); border-bottom:2px solid transparent; }
.visit-tabs a[aria-current] { color:var(--text); border-bottom-color:var(--accent); font-weight:600; }
.visits-workspace.is-enhanced { display:grid; grid-template-columns:minmax(220px,.75fr) minmax(0,1.6fr); align-items:start; gap:20px; }
.visit-index { border:1px solid var(--border); border-radius:10px; background:var(--bg); overflow:hidden; }
.visit-index__heading { display:flex; justify-content:space-between; gap:12px; padding:16px; border-bottom:1px solid var(--border); font-size:calc(0.75rem * var(--panel-text-scale,1)); font-weight:600; }
.visit-index__heading>span { font-weight:400; color:var(--text-muted); font-size:calc(0.6875rem * var(--panel-text-scale,1)); }
.visit-index__item { display:flex; align-items:flex-start; gap:12px; padding:18px 14px; border-bottom:1px solid var(--border-subtle); }
.visit-index__item:last-child { border-bottom:0; }
.visit-index__item:hover { background:var(--bg-hover); }
.visit-index__item[aria-current] { background:color-mix(in srgb,var(--accent) 12%,var(--bg)); box-shadow:inset 3px 0 var(--accent); }
.visit-index__time { font-size:calc(0.75rem * var(--panel-text-scale,1)); font-weight:600; font-variant-numeric:tabular-nums; padding-top:2px; flex:none; }
.visit-index__client { min-width:0; flex:1; }
.visit-index__client strong { display:block; font-size:calc(0.8125rem * var(--panel-text-scale,1)); line-height:1.5; overflow-wrap:anywhere; }
.visit-index__client>span { display:block; font-size:calc(0.6875rem * var(--panel-text-scale,1)); color:var(--text-muted); margin-top:4px; }
.visit-index__item .icon { width:14px; transform:rotate(-90deg); margin-top:3px; }
.is-enhanced .visit-header { gap:16px; padding:20px; flex-wrap:wrap; }
.is-enhanced .visit-date { min-width:84px; padding-right:16px; }
.is-enhanced .visit-date strong { font-size:calc(clamp(1.15rem, 1.024rem + 0.5169vw, 1.4375rem) * var(--panel-text-scale,1)); }
.is-enhanced .visit-title h2 { font-size:calc(1.125rem * var(--panel-text-scale,1)); }
.is-enhanced .visit-title { min-width:180px; }
.is-enhanced .visit-header>.badge { margin-left:0; }
.is-enhanced .visit-toggle { margin-left:auto; }
.is-enhanced .visit-body { grid-template-columns:1fr; }
.is-enhanced .res-facts { padding:20px; gap:20px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.is-enhanced .visit-note { padding:0 20px 20px; }
.is-enhanced .res__actions { border-left:0; border-top:1px solid var(--border); padding:20px; }
.is-enhanced .res__internal { padding:20px; }
.is-enhanced .res__actions .inline-fields>.field:has(.local-date-input) { flex:1 1 230px; }
.theme-photo,.theme-photo img { display:block; width:100%; }
.theme-photo img { height:auto; object-fit:cover; }
.state-photo { display:block; width:144px; border-radius:14px; overflow:hidden; margin:0 auto 24px; }
.state-photo img,.empty--illustrated .state-photo img { width:100%; height:auto; margin:0; }
.auth-shell { grid-template-columns:minmax(320px,46%) minmax(0,1fr); }
.auth-context { position:sticky; top:0; isolation:isolate; align-self:start; height:100dvh; min-height:620px; padding:clamp(28px,3.5vw,64px); gap:28px; background:#151b22; overflow:hidden; border:0; color:#fff; }
.auth-context::after { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(180deg,rgba(8,14,20,.58) 0%,rgba(8,14,20,.08) 35%,rgba(8,14,20,.28) 52%,rgba(8,14,20,.88) 82%,rgba(8,14,20,.94) 100%); }
.auth-context__copy { margin:auto 0 0; padding:180px 0 0; }
.auth-context h2 { font-size:clamp(2rem, 3.6vw, 3.125rem); line-height:1.06; font-weight:650; letter-spacing:-.05em; margin-bottom:20px; }
.auth-context__copy>p:not(.auth-context__label) { max-width:40ch; font-size:calc(0.875rem * var(--panel-text-scale,1)); color:#e0e6ed; }
.auth-context__photo { position:absolute; inset:0; z-index:-2; height:100%; max-height:none; min-height:0; border-radius:0; overflow:hidden; }
.auth-context__photo img { width:100%; height:100%; object-fit:cover; object-position:48% 45%; }
.auth-context__back { margin-top:4px; color:#e0e6ed; align-self:flex-start; }
.auth-context__back:hover { color:#fff; }
.auth-context a:focus-visible { outline:2px solid #fff; outline-offset:8px; border-radius:2px; }
.auth-shell .login-card { width:min(430px,calc(100% - 72px)); }
.auth-shell .login-card .state-photo { margin:0 0 24px; width:128px; }
@media(min-width:1500px) { .visits-workspace.is-enhanced { grid-template-columns:320px minmax(0,1fr); } .is-enhanced .visit-body { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } .is-enhanced .res__actions { border-top:0; border-left:1px solid var(--border); } }
@media(max-width:1100px) { .wrap { width:calc(100% - 40px); } .visits-workspace.is-enhanced { grid-template-columns:220px minmax(0,1fr); gap:16px; } .visit-index__item { flex-wrap:wrap; gap:8px; } .visit-index__client { flex-basis:calc(100% - 24px); } .visit-index__time { width:100%; } .is-enhanced .visit-title { min-width:140px; } }
@media(max-width:760px) { .wrap { width:calc(100% - 32px); padding-top:24px; } .page-head h1 { font-size:calc(1.625rem * var(--panel-text-scale,1)); } .visit-tabs { gap:20px; margin:20px 0; } .visits-workspace.is-enhanced { grid-template-columns:1fr; } .visit-index { max-height:244px; overflow-y:auto; } .visit-index__item { flex-wrap:nowrap; padding:14px; } .visit-index__time { width:auto; } .visit-index__client { flex-basis:auto; } .visit-index__heading { position:sticky; top:0; background:var(--bg); z-index:1; } .auth-context { padding:24px; } .auth-context__photo { display:none; } .auth-shell .login-card { width:calc(100% - 48px); } .is-enhanced .res__actions .inline-fields>.field { flex-basis:100%; } .is-enhanced .res__actions .inline-fields>.field:has(.local-date-input) { flex-basis:100%; } .is-enhanced .res-fact:nth-child(2) { grid-column:1 / -1; grid-row:2; } }

/* A compact photographic masthead keeps the form within reach on phones. */
@media(max-width:760px) {
  .auth-context { position:relative; align-self:stretch; height:180px; min-height:180px; padding:24px; justify-content:flex-start; }
  .auth-context__photo { display:block; }
  .auth-context__photo img { object-position:50% 43%; }
  .auth-context::after { background:linear-gradient(90deg,rgba(8,14,20,.78),rgba(8,14,20,.12)); }
  .auth-context__copy,.auth-context__back { display:none; }
}

/* Drawn empty-state artwork: transparent silhouettes, never photographic tiles. */
.state-illustration,.empty--illustrated .state-illustration { display:block; width:120px; height:120px; object-fit:contain; margin:0 auto 20px; border-radius:0; }
.auth-shell .login-card .state-illustration { width:104px; height:104px; margin:0 0 24px; }
@media(max-width:760px) { .state-illustration,.empty--illustrated .state-illustration { width:96px; height:96px; } }

/* One drawn visual language across the account screens and landing. */
.auth-context { background:var(--bg-subtle); color:var(--text); gap:24px; }
.auth-context::after { display:none; }
.auth-context__brand { order:0; }
.auth-context__illustration { order:1; width:calc(100% + 40px); margin:0 -20px; flex:1; min-height:0; object-fit:contain; }
.auth-context__copy { order:2; margin:0; padding:0; }
.auth-context__copy>p:not(.auth-context__label),.auth-context__back { color:var(--text-muted); }
.auth-context__back { order:3; margin-top:0; }
.auth-context__back:hover { color:var(--text); }
.auth-context a:focus-visible { outline-color:var(--accent); }
@media(max-width:760px) {
 .auth-context { height:160px; min-height:160px; justify-content:center; }
 .auth-context__brand { position:relative; z-index:1; }
 .auth-context__illustration { position:absolute; right:-42px; top:0; width:230px; height:160px; margin:0; object-fit:contain; opacity:.28; }
}

.empty--compact { padding:24px; }
.empty--compact .state-illustration { width:80px; height:80px; margin-bottom:12px; }

/* A group owns its outline; rows only draw the separators between items. */
.rows-list { border-radius:10px; }
.rows-list > .row-item + .row-item { border-top:1px solid var(--border-subtle); }
.panel > .rows-list { border:0; border-top:1px solid var(--border-subtle); border-radius:0; }
.panel > .rows-list:first-child { border-top:0; }
details.panel:not([open]) > .panel__head { border-bottom:0; }
.row-item > * { min-width:0; overflow-wrap:anywhere; }
@media(max-width:760px) { .field-row__body { flex-basis:100%; } }

.reservation-search { max-width:720px; margin:24px 0; }
.reservation-search .hint { margin:8px 0 0; }
.visit-tabs [data-search-count] { font-variant-numeric:tabular-nums; }
.search-empty h2 { font-size:calc(clamp(1.125rem, 1.0702rem + 0.2247vw, 1.25rem) * var(--panel-text-scale,1)); margin-bottom:8px; }
.search-empty .btn { margin-top:20px; }
.calendar-modes { display:flex; gap:8px; margin-bottom:24px; }
.calendar-modes [aria-current] { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
.calendar-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border:1px solid var(--border); border-radius:8px; }
.calendar-week__day { min-width:0; }
.calendar-week__day + .calendar-week__day { border-left:1px solid var(--border); }
.calendar-week__heading { display:flex; flex-direction:column; gap:8px; padding:12px 8px; border-bottom:1px solid var(--border); font-size:calc(0.6875rem * var(--panel-text-scale,1)); }
.calendar-week__day.is-today .calendar-week__heading { color:var(--accent); box-shadow:inset 0 3px var(--accent); }
.calendar-week__heading[aria-current] { background:var(--bg-muted); }
.calendar-week__visits { padding:8px; min-height:160px; }
.calendar-week__visit { display:flex; flex-direction:column; gap:6px; padding:12px 8px; margin-bottom:8px; background:var(--bg-muted); border-radius:6px; font-size:calc(0.75rem * var(--panel-text-scale,1)); overflow-wrap:anywhere; }
.calendar-week__visit time { font-weight:600; color:var(--accent); }
.calendar-week__visit span { color:var(--text-muted); }
@media(max-width:1100px) { .calendar-week { grid-template-columns:1fr; } .calendar-week__day + .calendar-week__day { border-left:0; border-top:1px solid var(--border); } .calendar-week__heading { flex-direction:row; justify-content:space-between; } .calendar-week__visits { min-height:0; } [data-calendar-view=week] .cal-head { font-size:calc(0.875rem * var(--panel-text-scale,1)); gap:8px; } }
.review-filters { margin-bottom:20px; }
.review-filters__row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:16px; }
.review-filters__row > .field { margin-top:0; min-width:0; }
.review-filters__actions { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:20px; }
.review-summary { display:grid; grid-template-columns:1fr 1fr; gap:32px; padding:24px; margin-bottom:24px; }
.review-summary [data-review-average] { display:block; font-size:calc(clamp(2rem, 1.7809rem + 0.8989vw, 2.5rem) * var(--panel-text-scale,1)); line-height:1.2; margin-top:8px; font-variant-numeric:tabular-nums; }
.review-distribution>div { display:grid; grid-template-columns:36px minmax(0,1fr) 30px; align-items:center; gap:12px; font-size:calc(0.8125rem * var(--panel-text-scale,1)); margin:6px 0; }
.review-distribution meter { width:100%; accent-color:var(--accent); }
#reviewRows > [data-review] { border-top:0; }
#reviewRows > [data-review]:not([hidden]) ~ [data-review]:not([hidden]) { border-top:1px solid var(--border-subtle); }
@media(max-width:760px) { .review-filters__row { grid-template-columns:1fr 1fr; } .review-summary { grid-template-columns:1fr; gap:16px; } .review-filters__actions { flex-wrap:wrap; } }
@media(max-width:380px) { .review-filters__row { grid-template-columns:1fr; } }
.review-distribution meter::-webkit-meter-bar { background:var(--bg-muted); border:0; border-radius:4px; }
.review-distribution meter::-webkit-meter-optimum-value { background:var(--accent); border-radius:4px; }
.review-distribution meter::-moz-meter-bar { background:var(--accent); border-radius:4px; }

/* Keep member identity readable before wrapping account actions. */
.team-member { flex-wrap:wrap; }
.team-member__identity { flex:1 1 240px; }
.team-name-edit[open] { flex:1 1 100%; min-width:0; }
.team-name-edit form { margin-top:16px; max-width:480px; }
@media (max-width:600px) {
 .team-member__identity { flex-basis:100%; }
 .team-member > form { flex:1 1 140px; }
 .team-member > form > .btn { width:100%; }
}

.security-content { max-width:840px; display:flex; flex-direction:column; gap:24px; }
.security-status { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.security-content .stack>.btn,[data-theme-settings]>.btn{align-self:flex-start;justify-self:start}
.security-content h2,.security-content .field>span,.security-content p{overflow-wrap:anywhere}
[data-panel-accents] .swatch{width:44px;height:44px}
.settings-tabs{flex-wrap:wrap;gap:12px 24px}
.ip-policy-toggle>span:first-child{min-width:0;overflow-wrap:anywhere}
@media(max-width:600px){.security-content .stack>.btn,[data-theme-settings]>.btn{width:100%}}
.security-steps { padding-left:22px; margin:0; display:grid; gap:12px; }
.security-action { border-top:1px solid var(--border); padding:16px 0; }
.security-action > summary { cursor:pointer; font-weight:600; padding:4px 0; }
.security-action > form { margin-top:20px; }
.mfa-card { max-width:600px; }
.mfa-qr { margin:20px 0; }
.mfa-qr img { display:block; width:240px; max-width:100%; height:auto; background:#fff; border-radius:8px; }
.mfa-secret { display:block; overflow-wrap:anywhere; font-size:calc(1rem * var(--panel-text-scale,1)); padding:12px 0; user-select:all; }
.recovery-codes { list-style:none; padding:20px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; background:var(--bg); border:1px solid var(--border); border-radius:10px; }
.recovery-codes code { font-size:calc(0.875rem * var(--panel-text-scale,1)); overflow-wrap:anywhere; user-select:all; }
.mfa-card > form { margin-top:24px; }
@media(max-width:600px) { .recovery-codes { grid-template-columns:1fr; } }

.mfa-requirement { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:64px; cursor:pointer; }
.mfa-requirement__copy { display:grid; gap:6px; min-width:0; }
.mfa-requirement__copy .hint { margin:0; }
.mfa-requirement .switch { width:46px; height:28px; }
.mfa-requirement .switch input { width:100%; height:100%; }
.mfa-requirement .switch__track::before { width:24px; height:24px; }
.mfa-requirement .switch input:checked + .switch__track::before { transform:translateX(18px); }
.mfa-requirement .switch input:focus-visible + .switch__track { outline:2px solid var(--accent); outline-offset:4px; }
.mfa-requirement__on { display:none; }
.mfa-requirement:has(input:checked) .mfa-requirement__on { display:block; }
.mfa-requirement:has(input:checked) .mfa-requirement__off { display:none; }
.mfa-requirement:has(input:disabled) { cursor:default; }
@media(prefers-reduced-motion:reduce) { .mfa-requirement .switch__track,.mfa-requirement .switch__track::before { transition:none; } }

.user-row__details { display:grid; gap:2px; flex:1; min-width:0; }
.user-row__role { font-size:calc(0.75rem * var(--panel-text-scale,1)); line-height:1.4; color:var(--text-muted); }

/* Compact account security entry, shared by owner and employee settings. */
.mfa-access { display:flex; align-items:center; gap:20px; padding:24px; margin:24px 0; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--bg); }
.mfa-access__icon { color:var(--accent); flex:none; align-self:flex-start; padding-top:2px; }
.mfa-access__icon .icon { width:28px; height:28px; }
.mfa-access__content { flex:1; min-width:0; }
.mfa-access__heading { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; }
.mfa-access__heading h2 { margin:0; font-size:calc(1rem * var(--panel-text-scale,1)); line-height:1.5; }
.mfa-access__content p { margin:6px 0 0; color:var(--text-muted); font-size:calc(0.875rem * var(--panel-text-scale,1)); line-height:1.6; max-width:65ch; }
.mfa-access__action { flex:none; width:auto; white-space:nowrap; }
@media(max-width:900px) {
 .mfa-access { display:grid; grid-template-columns:28px minmax(0,1fr); gap:16px; padding:20px; }
 .mfa-access__action { grid-column:2; justify-self:start; white-space:normal; }
}

/* Recovery is a single disclosure, with credentials revealed only on demand. */
.security-reset { border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--bg); }
.security-reset__summary { display:flex; align-items:center; gap:16px; padding:24px; cursor:pointer; list-style:none; border-radius:var(--radius-lg); }
.security-reset__summary::-webkit-details-marker { display:none; }
.security-reset__summary:hover { background:var(--bg-muted); }
.security-reset__summary:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.security-reset__icon { color:var(--text-muted); flex:none; align-self:flex-start; }
.security-reset__icon .icon { width:28px; height:28px; }
.security-reset__copy { flex:1; min-width:0; display:grid; gap:6px; }
.security-reset__copy strong { font-size:calc(1rem * var(--panel-text-scale,1)); line-height:1.5; }
.security-reset__copy > span { color:var(--text-muted); font-size:calc(0.875rem * var(--panel-text-scale,1)); line-height:1.6; }
.security-reset__trigger { display:flex; align-items:center; gap:8px; flex:none; font-size:calc(0.875rem * var(--panel-text-scale,1)); font-weight:600; }
.security-reset__opened, .security-reset[open] .security-reset__closed { display:none; }
.security-reset[open] .security-reset__opened { display:inline; }
.security-reset[open] .security-reset__trigger .icon { transform:rotate(180deg); }
.security-reset__body { padding:24px; border-top:1px solid var(--border); }
.security-reset__body > .hint { margin:0 0 20px; }
.security-reset__consequences { font-size:calc(0.875rem * var(--panel-text-scale,1)); line-height:1.6; margin-bottom:24px; }
.security-reset__consequences ul { margin:8px 0 0; padding-left:20px; color:var(--text-muted); display:grid; gap:8px; }
.security-reset__body form { max-width:480px; }
.security-reset__body form > .btn { justify-self:start; width:auto; }
@media(max-width:600px) {
 .security-reset__summary { display:grid; grid-template-columns:28px minmax(0,1fr); padding:20px; gap:12px 16px; }
 .security-reset__trigger { grid-column:2; justify-self:start; min-height:32px; }
 .security-reset__body { padding:20px; }
}

.team-access-modal { width:calc(100% - 32px); max-height:calc(100dvh - 32px); overflow:auto; }
.team-access-modal [data-member] { color:var(--text); font-weight:600; overflow-wrap:anywhere; }
.team-access-modal .modal__actions { flex-wrap:wrap; }

/* Inquiries: one border per group, shared controls and predictable form alignment. */
.inquiry-tabs { display:flex; flex-wrap:wrap; gap:24px; border-bottom:1px solid var(--border); margin:0 0 24px; }
.inquiry-tabs a { display:flex; align-items:center; gap:8px; padding:12px 0; color:var(--text-muted); text-decoration:none; border-bottom:2px solid transparent; }
.inquiry-tabs a[aria-current] { color:var(--text); border-color:var(--accent); font-weight:600; }
.inquiry-tabs a span { font-size:calc(0.75rem * var(--panel-text-scale,1)); }
.inquiry-forms { max-width:840px; }
.inquiry-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
.inquiry-toolbar h2 { margin:0; font-size:calc(1.125rem * var(--panel-text-scale,1)); }
.inquiry-field { padding:20px 0; border-top:1px solid var(--border); display:grid; gap:16px; }
.inquiry-field [hidden] { display:none; }
.inquiry-field__actions,.inquiry-editor__save { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.inquiry-field__actions { justify-content:space-between; }
.inquiry-editor__save { padding-top:20px; border-top:1px solid var(--border); }
.inquiry-editor__save .hint { margin:0; flex:1 1 220px; }
.inquiry-list { display:grid; gap:16px; }
.inquiry-item { border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--bg); }
.inquiry-item summary { display:flex; justify-content:space-between; gap:16px; padding:20px; cursor:pointer; list-style:none; }
.inquiry-item summary::-webkit-details-marker { display:none; }
.inquiry-item summary > span { display:grid; gap:4px; min-width:0; overflow-wrap:anywhere; }
.inquiry-item summary .hint { margin:0; }
.inquiry-item[open] summary { border-bottom:1px solid var(--border); }
.inquiry-item[open] summary > .icon { transform:rotate(180deg); }
.inquiry-item__body { padding:20px; }
.inquiry-contact { display:flex; flex-wrap:wrap; gap:12px 24px; overflow-wrap:anywhere; }
.inquiry-message,.inquiry-answer dd { white-space:pre-wrap; overflow-wrap:anywhere; }
.inquiry-answer dt { color:var(--text-muted); font-size:calc(0.8125rem * var(--panel-text-scale,1)); }
.inquiry-answer dd { margin:4px 0 16px; }
.inquiry-status-form { display:flex; align-items:flex-end; flex-wrap:wrap; gap:16px; padding-top:20px; border-top:1px solid var(--border); }
.inquiry-status-form .field { margin:0; flex:0 1 240px; }
.public-inquiry { max-width:720px; margin:0 auto; padding:24px; }
.public-inquiry header { margin-bottom:24px; }
.public-inquiry h1 { font-size:calc(clamp(1.3rem, 1.1576rem + 0.5843vw, 1.625rem) * var(--panel-text-scale,1)); line-height:1.25; margin:8px 0 16px; }
.public-inquiry header p { overflow-wrap:anywhere; }
.public-inquiry footer { margin-top:32px; display:flex; justify-content:center; }
.public-inquiry [hidden] { display:none; }
.inquiry-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
@media(max-width:600px) { .public-inquiry { padding:20px 16px; } .inquiry-tabs { gap:20px; } }
.inquiry-forms { display:grid; gap:24px; }
.inquiry-forms > p { margin:0; }
.inquiry-forms .panel__body > a.text-link { display:inline-flex; align-items:center; gap:8px; justify-self:start; }

.public-inquiry h1,.inquiry-forms .row-item strong { overflow-wrap:anywhere; }
.reservation-rating { display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; color:var(--text); text-decoration:none; min-height:32px; }
a.reservation-rating:hover { text-decoration:underline; }
.archive-editor { border-top:1px solid var(--border); padding:0 20px; }
.archive-editor summary { display:flex; align-items:center; gap:10px; padding:16px 0; list-style:none; cursor:pointer; font-weight:600; }
.archive-editor summary::-webkit-details-marker { display:none; }
.archive-editor summary > .icon:last-child { margin-left:auto; }
.archive-editor[open] summary > .icon:last-child { transform:rotate(180deg); }
.archive-editor form { padding-bottom:20px; }
.archive-editor form > button { justify-self:start; }
[data-review]:target { background:var(--bg-muted); outline:2px solid var(--accent); outline-offset:-2px; scroll-margin-top:24px; }
.ip-policy-toggle { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.ip-policy-toggle > span:first-child { display:grid; gap:6px; }
.ip-policy-toggle .hint { margin:0; }
.ip-recovery { max-width:560px; margin:48px auto; padding:24px; }
.ip-recovery h1 { font-size:calc(clamp(1.4rem, 1.2466rem + 0.6292vw, 1.75rem) * var(--panel-text-scale,1)); line-height:1.25; margin-top:32px; }
.ip-recovery .hint { overflow-wrap:anywhere; }
.ip-requests { display:grid; gap:24px; max-width:840px; margin-top:24px; }
.ip-request-actions { display:flex; flex-wrap:wrap; gap:12px; }

.ip-policy-toggle .switch input:focus-visible + .switch__track { outline:2px solid var(--accent); outline-offset:4px; }
.ip-requests .panel__body { overflow-wrap:anywhere; }

/* Activity log: one frame, rows separated once, readable on narrow screens. */
.activity-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; align-items:end; margin:24px 0; }
.activity-filters .field { margin:0; min-width:0; }
.activity-target { grid-column:span 2; }
.activity-filter-actions { display:flex; gap:8px; flex-wrap:wrap; }
.activity-info { max-width:900px; }
.activity-list { list-style:none; padding:0; margin:20px 0; border:1px solid var(--border); border-radius:12px; background:var(--bg-subtle); }
.activity-row { display:grid; grid-template-columns:minmax(160px,220px) minmax(0,1fr); gap:24px; padding:24px; }
.activity-row + .activity-row { border-top:1px solid var(--border); }
.activity-who { display:flex; flex-direction:column; gap:6px; overflow-wrap:anywhere; }
.activity-who span, .activity-who time { color:var(--text-muted); font-size:calc(0.8125rem * var(--panel-text-scale,1)); }
.activity-who time { margin-top:6px; }
.activity-what { min-width:0; overflow-wrap:anywhere; }
.activity-title { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.activity-title .text-link { display:inline-flex; gap:6px; align-items:center; font-size:calc(0.8125rem * var(--panel-text-scale,1)); }
.activity-details summary { cursor:pointer; padding:8px 0; font-size:calc(0.875rem * var(--panel-text-scale,1)); }
.activity-details dl { margin:8px 0 0; }
.activity-details dl > div { display:grid; grid-template-columns:minmax(100px,180px) minmax(0,1fr); gap:16px; padding:10px 0; border-top:1px solid var(--border); }
.activity-details dt { font-size:calc(0.8125rem * var(--panel-text-scale,1)); color:var(--text-muted); }
.activity-details dd { margin:0; display:flex; gap:8px; flex-wrap:wrap; font-size:calc(0.875rem * var(--panel-text-scale,1)); }
.activity-arrow { color:var(--text-muted); }
.activity-pagination { display:flex; justify-content:space-between; gap:12px; align-items:center; margin:24px 0; }
@media(max-width:900px) { .activity-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
 .activity-row { grid-template-columns:1fr; gap:16px; padding:20px; }
 .activity-details dl > div { grid-template-columns:1fr; gap:6px; }
 .activity-filters { grid-template-columns:1fr; }
 .activity-target { grid-column:auto; }
 .activity-pagination { flex-wrap:wrap; }
}

.profile-address > .field + .grid2 { margin-top:16px; }
.company-onboarding { max-width:780px; margin:0 auto; padding:32px 24px 64px; }
.onboarding-brand { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:32px; }
.onboarding-progress { list-style:none; padding:0; display:flex; gap:24px; flex-wrap:wrap; color:var(--text-muted); }
.onboarding-progress [aria-current=step] { color:var(--text); font-weight:650; }
.onboarding-actions { display:flex; justify-content:flex-end; gap:12px; flex-wrap:wrap; }
[data-wizard-step][hidden], .onboarding-actions [hidden] { display:none; }
@media(max-width:600px) { .company-onboarding { padding:24px 16px 40px; } .onboarding-brand { flex-wrap:wrap; } .onboarding-progress { gap:16px; font-size:calc(0.875rem * var(--panel-text-scale,1)); } }

/* Internal staffing shares the visit's border and spacing. */
.assignment-editor { border-top:1px solid var(--border); padding:20px; }
.assignment-editor > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; list-style:none; }
.assignment-editor > summary::-webkit-details-marker { display:none; }
.assignment-editor > summary .hint { display:block; margin-top:6px; overflow-wrap:anywhere; }
.assignment-editor > summary svg { width:20px; height:20px; flex-shrink:0; }
.assignment-editor[open] > summary { margin-bottom:20px; }
.assignment-editor[open] > summary > svg { transform:rotate(180deg); }
.assignment-options { border:0; padding:0; margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; }
.assignment-options legend { margin-bottom:12px; font-weight:600; }
.assignment-options .check { align-items:flex-start; overflow-wrap:anywhere; }
.assignment-options small { display:block; }
.assignment-save { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.assignment-save [role=status] { font-size:calc(0.875rem * var(--panel-text-scale,1)); }
@media(max-width:600px) { .assignment-options { grid-template-columns:1fr; } }
.team-invite > summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.team-invite > summary > svg { width:20px; height:20px; flex-shrink:0; }
.team-invite[open] > summary > svg { transform:rotate(180deg); }
.employee-report-heading { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:24px; }
.employee-report-filter { align-items:flex-end; margin-bottom:16px; }
.employee-statuses { display:flex; flex-wrap:wrap; gap:20px 32px; padding:20px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.employee-statuses > div { display:flex; gap:12px; align-items:baseline; }
.employee-statuses dt { color:var(--text-muted); }
.employee-statuses dd { margin:0; font-weight:600; }
.employee-visit { align-items:flex-start; justify-content:space-between; gap:24px; }
.employee-visit__main { min-width:0; flex:1; overflow-wrap:anywhere; }
.employee-visit__main p { margin:6px 0; }
.employee-visit__actions { display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.employee-review { margin-top:16px; }
.employee-review__comment { white-space:pre-wrap; color:var(--text-muted); max-width:70ch; }
.employee-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px; margin-top:20px; }
@media(max-width:600px) { .employee-visit__actions { align-items:flex-start; width:100%; } .employee-report-filter { display:grid; grid-template-columns:1fr; } }
.customer-search { display:flex; align-items:flex-end; gap:12px; margin-bottom:20px; }
.customer-search .field { flex:1; min-width:0; }
.customer-row { gap:24px; }
.customer-row__identity { flex:1; min-width:0; overflow-wrap:anywhere; }
.customer-row__identity h2 { font-size:calc(1rem * var(--panel-text-scale,1)); margin:0; }
.customer-row__identity p { margin:6px 0 0; }
.customer-row__dates { display:flex; flex-direction:column; gap:6px; }
.customer-contact { margin:24px 0; }
.customer-contact .res-facts { padding:0; }
@media(max-width:600px) { .customer-search { flex-wrap:wrap; } .customer-search .field { flex-basis:100%; } .customer-row__identity { flex-basis:100%; } .customer-row__dates { flex:1; } }

/* Optional client notification for each reservation change. */
.notification-toggle { display:flex; align-items:center; gap:12px; min-height:44px; cursor:pointer; font-size:calc(0.875rem * var(--panel-text-scale,1)); color:var(--text); }
.notification-toggle small { display:block; color:var(--text-muted); font-size:calc(0.75rem * var(--panel-text-scale,1)); margin-top:4px; }
.notification-toggle__off { display:none !important; }
.notification-toggle:has(input:not(:checked)) .notification-toggle__on { display:none; }
.notification-toggle:has(input:not(:checked)) .notification-toggle__off { display:block !important; }
.notification-toggle input:focus-visible + .switch__track { outline:2px solid var(--accent); outline-offset:4px; }

.accent-illustration { filter:var(--illustration-filter, none); }
.illustration-preview { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin-top:24px; }
.illustration-preview .state-illustration { width:88px; height:88px; margin:0; }
.illustration-preview .hint { flex:1 1 220px; margin:0; max-width:440px; }

.reservation-customer-link { display:inline-flex; align-items:center; gap:8px; min-height:32px; max-width:100%; color:var(--text); text-decoration:none; }
.reservation-customer-link:hover { text-decoration:underline; }
.reservation-customer-link .icon { flex:none; }

:root { --calendar-pending:#d97706; --calendar-proposed:#a855f7; --calendar-confirmed:#16a34a; --calendar-completed:#0ea5e9; --calendar-rejected:#dc2626; --calendar-cancelled:#db2777; --calendar-blocked:#64748b; }
.calendar-week__visit { border-inline-start:3px solid var(--status-color); }
.calendar-status { display:inline-flex; align-items:center; gap:7px; font-size:calc(0.6875rem * var(--panel-text-scale,1)); line-height:1.4; }
.calendar-status i { width:8px; height:8px; flex:none; border-radius:50%; background:var(--status-color); }
.calendar-week__visit .calendar-status { margin-top:4px; }
.calendar-week__visit .calendar-status span { color:var(--text); }
.calendar-legend { display:flex; flex-wrap:wrap; gap:10px 20px; padding:0; margin:20px 0 0; list-style:none; }
.calendar-legend li { display:flex; }
.cal-day__dots { flex-wrap:wrap; gap:4px; }
.cal-day__dots i { width:6px; height:6px; }

.inquiry-editor .panel__head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.inquiry-preview { padding-bottom:24px; border-bottom:1px solid var(--border); }
.inquiry-preview iframe { display:block; width:100%; min-height:500px; border:1px dashed var(--border); border-radius:12px; margin-top:16px; }
.inquiry-replies { border-top:1px solid var(--border); padding-top:24px; margin-top:24px; }
.inquiry-reply { border-left:3px solid var(--accent); padding:4px 16px; margin:16px 0; }
.inquiry-message { white-space:pre-wrap; overflow-wrap:anywhere; }
.inquiry-editor .rows-list { margin:0; }
.inquiry-editor .inquiry-field { border:0; border-bottom:1px solid var(--border); border-radius:0; padding:24px 0; }

.assignment-row { display:flex; align-items:flex-end; gap:12px; margin-bottom:12px; }
.assignment-row .field { flex:1; min-width:0; margin:0; }
.assignment-row select { width:100%; }

.shell { --brand-filter:var(--illustration-filter, none); }

.inquiry-forms { max-width:none; gap:20px; }
.inquiry-toolbar { margin-bottom:0; }
.inquiry-form-list .row-item { justify-content:space-between; gap:24px; }
.inquiry-form-list .row-item > div { min-width:0; }
.inquiry-form-list .row-item > .btn { flex:none; }
.inquiry-mode-tabs { display:flex; gap:8px; }
.inquiry-editor > .panel__head { padding:0 0 20px; border:0; }
.inquiry-editor > .panel__body { border:1px solid var(--border); border-radius:12px; background:var(--bg-panel, var(--bg)); }
.inquiry-appearance { padding:24px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.inquiry-appearance h3 { margin:0 0 20px; }
.inquiry-preview iframe { background:var(--bg); }

.inquiry-editor > .panel__body { padding:0; border:0; background:none; }
.widget-preview-container { padding:16px; border:1px dashed var(--border); border-radius:var(--radius); background:var(--bg-subtle); }
.widget-preview-container iframe { display:block; width:100%; max-width:520px; min-height:500px; border:0; border-radius:var(--radius-sm); }
[data-inquiry-fields] > [data-inquiry-field] + [data-inquiry-field] { border-top:1px solid var(--border); }

.inquiry-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex-shrink:0}
.inquiry-form-actions form{margin:0}
@media(max-width:600px){.inquiry-form-list .row-item{flex-wrap:wrap}}

.sidebar .brand { flex-direction:column; justify-content:center; text-align:center; gap:12px; }
.sidebar .brand__logo { width:72px; height:72px; object-fit:contain; background:transparent; border:0; border-radius:0; }
.sidebar .brand__logo--mark { background:var(--accent); border-radius:var(--radius); font-size:calc(clamp(1.3rem, 1.1576rem + 0.5843vw, 1.625rem) * var(--panel-text-scale,1)); }
.sidebar .brand__name { width:100%; font-size:clamp(14px,var(--company-name-size,20px),20px); font-weight:700; line-height:1.3; white-space:normal; overflow:visible; overflow-wrap:anywhere; }
.sidebar__platform { display:flex; justify-content:center; }

/* Readability belongs to the company panel, not the public widgets. */
body[data-panel-contrast="high"]{--text:#101820;--text-muted:#263747;--text-subtle:#34495e;--border:#657789;--border-subtle:#657789;--bg:#fff;--bg-subtle:#f4f7fa;--bg-muted:#e8edf3;--bg-hover:#dce5ee}
:root[data-theme="dark"] body[data-panel-contrast="high"]{--text:#fff;--text-muted:#edf2f7;--text-subtle:#cdd8e4;--border:#91a4b9;--border-subtle:#91a4b9;--bg:#080e15;--bg-subtle:#121d29;--bg-muted:#213244;--bg-hover:#2b4055}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]):not([data-theme="dark"]) body[data-panel-contrast="high"]{--text:#fff;--text-muted:#edf2f7;--text-subtle:#cdd8e4;--border:#91a4b9;--border-subtle:#91a4b9;--bg:#080e15;--bg-subtle:#121d29;--bg-muted:#213244;--bg-hover:#2b4055}}
body[data-panel-contrast="high"] :is(input,select,textarea,button,a):focus-visible{outline:2px solid var(--text);outline-offset:3px}
.sidebar .brand__name{font-size:calc(clamp(14px,var(--company-name-size,20px),20px) * var(--panel-text-scale,1))}

.visit-tabs a { display:inline-flex; align-items:center; gap:8px; }
.visit-tabs__badge { margin-left:0; min-width:1.7em; height:auto; min-height:1.7em; font-variant-numeric:tabular-nums; }
.visit-tabs__badge[hidden] { display:none; }

.overview-focus{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 0 32px;border-bottom:1px solid var(--border)}
.overview-focus h2{font-size:calc(clamp(1.2rem, 1.0685rem + 0.5393vw, 1.5rem) * var(--panel-text-scale,1));margin:0 0 8px}.overview-focus .section-title{margin:0 0 12px}.overview-art{width:144px;height:144px;object-fit:contain;flex:none}.overview-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.overview-stats{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;margin:32px 0}.overview-stats section{min-width:0}.overview-stats strong{display:block;font-size:calc(clamp(1.4rem, 1.2466rem + 0.6292vw, 1.75rem) * var(--panel-text-scale,1));font-weight:650;letter-spacing:-.03em;overflow-wrap:anywhere}.overview-stats .hint{margin:8px 0}
.overview-columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start}.overview-columns .panel{min-width:0}.overview-chart{display:flex;gap:16px;height:150px;margin:28px 0 44px;align-items:end;border-bottom:1px solid var(--border)}.overview-chart>div{height:100%;flex:1;min-width:0;display:flex;flex-direction:column;justify-content:end;position:relative}.overview-chart__bar{display:block;background:var(--accent);border-radius:4px 4px 0 0;min-height:2px}.overview-chart>div>span:last-child{position:absolute;top:100%;left:0;right:0;text-align:center;margin-top:8px;color:var(--text-muted);font-size:calc(0.75rem * var(--panel-text-scale,1))}
.overview-table{width:100%;border-collapse:collapse;font-size:calc(0.8125rem * var(--panel-text-scale,1))}.overview-table caption{text-align:left;margin-bottom:12px}.overview-table th,.overview-table td{padding:10px 0;border-bottom:1px solid var(--border-subtle);text-align:left;font-weight:400}.overview-table td,.overview-table thead th:last-child{text-align:right;font-variant-numeric:tabular-nums}.overview-table thead th{font-weight:600}.overview-visit{display:grid;grid-template-columns:1fr auto;gap:5px;text-decoration:none;color:var(--text)}.overview-visit time{font-size:calc(0.75rem * var(--panel-text-scale,1));color:var(--text-muted)}.overview-visit strong,.overview-visit .hint{grid-column:1;overflow-wrap:anywhere}.overview-visit>svg{grid-column:2;grid-row:1/4}.overview-visit:hover{background:var(--bg-hover)}
@media(max-width:1000px){.overview-columns{grid-template-columns:1fr}.overview-stats{gap:20px}}
@media(max-width:600px){.overview-art{width:80px;height:80px}.overview-focus{align-items:start;gap:12px}.overview-stats{grid-template-columns:1fr;gap:16px}.overview-stats section{padding-bottom:16px;border-bottom:1px solid var(--border-subtle)}.overview-focus h2{font-size:calc(1.25rem * var(--panel-text-scale,1))}}
.overview-columns > .panel { margin:0; }
.overview-chart__bar { min-height:0; }
.overview-columns .rows-list { border:0; border-radius:0 0 var(--radius) var(--radius); }
.overview-columns .overview-visit:last-child { border-radius:0 0 var(--radius) var(--radius); }

.overview-setting{display:flex;align-items:center;justify-content:space-between;gap:24px;cursor:pointer}.overview-setting>span:first-child{min-width:0}.overview-setting .hint{display:block;margin-top:8px;max-width:65ch}.overview-setting .switch{flex:none}
.overview-company{display:flex;align-items:center;gap:16px;margin-bottom:24px}.overview-company .brand__logo{width:64px;height:64px;object-fit:contain;border:0;background:transparent}.overview-company .brand__logo--mark{background:var(--accent);font-size:calc(clamp(1.2rem, 1.0685rem + 0.5393vw, 1.5rem) * var(--panel-text-scale,1))}.overview-company strong{font-size:calc(clamp(1.125rem, 1.0702rem + 0.2247vw, 1.25rem) * var(--panel-text-scale,1));line-height:1.3;overflow-wrap:anywhere}
.overview-stats--private{grid-template-columns:1fr 1fr}.overview-columns--private{grid-template-columns:1fr}
@media(max-width:600px){.overview-stats--private{grid-template-columns:1fr}.overview-company{flex-wrap:wrap}.overview-setting{gap:16px}}

.overview-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}.overview-details-grid>.panel{margin:0;min-width:0}.overview-details-grid .panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.overview-details-grid .rows-list{border:0}.overview-panel-note{padding:0 24px}.overview-breakdown,.overview-services{list-style:none;margin:20px 0 0;padding:0}.overview-breakdown li{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px 0}.overview-meter{grid-column:1/-1;height:5px;border-radius:5px;background:var(--bg-muted);overflow:hidden}.overview-meter>span{height:100%;display:block;background:var(--accent)}.overview-services li{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--border-subtle)}.overview-services li>span{overflow-wrap:anywhere;min-width:0}.overview-services strong{white-space:nowrap}.overview-services small{font-weight:400;color:var(--text-muted)}
.overview-rating{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}.overview-rating>strong{font-size:calc(clamp(1.4rem, 1.2466rem + 0.6292vw, 1.75rem) * var(--panel-text-scale,1))}.overview-reviews>a{display:grid;gap:6px;padding:16px 0;border-top:1px solid var(--border-subtle);color:var(--text);text-decoration:none}.overview-reviews p{margin:0;overflow-wrap:anywhere;color:var(--text-muted)}.overview-followups{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.overview-followups>a{display:flex;align-items:center;gap:16px;color:var(--text);text-decoration:none;padding:16px;border:1px solid var(--border);border-radius:var(--radius)}.overview-followups strong{font-size:calc(clamp(1.2rem, 1.0685rem + 0.5393vw, 1.5rem) * var(--panel-text-scale,1))}.overview-followups span{flex:1}.overview-followups a:hover,.overview-reviews a:hover{background:var(--bg-hover)}
@media(max-width:800px){.overview-details-grid,.overview-followups{grid-template-columns:1fr}}

.overview-details-grid{align-items:start}

/* Account-wide company list uses the shared panel and row rhythm. */
.company-membership { align-items:center; gap:var(--space-4, 16px); flex-wrap:wrap; }
.company-membership__info { flex:1 1 240px; min-width:0; overflow-wrap:anywhere; }
.company-membership__info h3 { margin:0; }
.company-membership form { margin:0; }

.company-memberships > .rows-list { border-top:0; border-radius:0 0 11px 11px; }

/* Catalogue categories reuse field and button styling. */
.service-catalogue-row { flex-wrap: wrap; gap: 16px; }
.service-category-form { display:flex; align-items:flex-end; gap:12px; max-width:100%; }
.service-category-form .field { margin:0; min-width:0; flex:1; }
@media(max-width:640px) { .service-category-form { flex-basis:100%; flex-wrap:wrap; } .service-category-form .field { flex-basis:100%; } }

@media(max-width:640px) { .service-composer > .field { flex-basis:100% !important; } }

.business-industries { border:0; padding:0; margin:24px 0; min-width:0; }
.business-industries legend { font-weight:600; }
.business-industries .hint { margin:12px 0 20px; }
.industry-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:end; }
@media(max-width:800px) { .industry-fields { grid-template-columns:1fr; } }
.industry-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:16px 0 24px; }
.industry-choice { display:flex; align-items:center; gap:12px; padding:12px 16px; border:1px solid var(--border); border-radius:10px; cursor:pointer; min-width:0; }
.industry-choice:has(:checked) { border-color:var(--accent); background:var(--bg-elevated); }
.industry-choice:has(:focus-visible) { outline:2px solid var(--accent); outline-offset:2px; }
.industry-choice input { flex-shrink:0; }
.industry-choice[hidden] { display:none; }
.business-industries summary { cursor:pointer; margin:16px 0; }
@media(max-width:640px) { .industry-choices { grid-template-columns:1fr; } }
.industry-choice input[type=checkbox] { width:18px; height:18px; min-height:0; padding:0; margin:0; }
.industry-choice span { min-width:0; overflow-wrap:anywhere; }
.service-price-editor { width:100%; }
.service-price-editor summary { cursor:pointer; font-weight:600; padding:8px 0; }
.service-price-editor form { margin:16px 0; }

.review-moderation-actions { display:flex; flex-wrap:wrap; gap:12px; }

/* Platform monitoring reuses panel, header and statistic tokens. */
.monitoring-filters{display:grid;grid-template-columns:180px minmax(180px,1fr) auto;gap:16px;align-items:end;margin:24px 0}
.monitoring-filters .field{margin:0;min-width:0}
.monitoring-chart{height:180px;display:flex;gap:6px;align-items:stretch;padding-bottom:24px;margin:24px 0}
.monitoring-bar{flex:1;min-width:0;position:relative;display:flex;align-items:flex-end}
.monitoring-bar>span{width:100%;background:var(--accent);border-radius:3px 3px 0 0}
.monitoring-bar>small{position:absolute;bottom:-24px;width:100%;text-align:center;font-size:0.6875rem;color:var(--text-muted)}
.monitoring-data summary{cursor:pointer;padding:12px 0}
.monitoring-table{overflow-x:auto}
.monitoring-table table{width:100%;border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums}
.monitoring-table th,.monitoring-table td{padding:14px 12px;border-bottom:1px solid var(--border);vertical-align:top}
.monitoring-table th{font-size:0.75rem;color:var(--text-muted);white-space:nowrap}
.monitoring-table code{overflow-wrap:anywhere;font-size:0.75rem}
.monitoring-events article{padding:20px 0;overflow-wrap:anywhere}
.monitoring-events article+article{border-top:1px solid var(--border)}
.monitoring-events article>div{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.monitoring-events time{font-size:0.75rem;color:var(--text-muted)}
@media(max-width:600px){.monitoring-filters{grid-template-columns:1fr}.monitoring-chart{gap:3px}.monitoring-bar:nth-child(even)>small{visibility:hidden}.monitoring-table th,.monitoring-table td{padding:12px 8px}.monitoring-table code{font-size:0.6875rem}}

.support-composer > summary{list-style:none;cursor:pointer;border-radius:var(--radius-lg)}
.support-composer > summary:hover{background:var(--bg-hover)}
.support-composer > summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.support-composer[open] > summary{border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.support-composer__title,.support-composer__toggle{display:flex;align-items:center;gap:12px}
.support-composer__title{min-width:0}
.support-composer__title > .icon{color:var(--accent);flex-shrink:0}
.support-composer__toggle{flex-shrink:0;color:var(--text-muted);font-size:calc(0.8125rem * var(--panel-text-scale,1))}
.support-composer__collapse,.support-composer[open] .support-composer__expand{display:none}
.support-composer[open] .support-composer__collapse{display:inline}
.support-composer[open] .support-composer__toggle > .icon{transform:rotate(180deg)}
.support-form{display:flex;flex-direction:column;gap:24px}
.support-form > .field,.support-form > .hint{margin:0}
.support-form > .grid2{align-items:start}
.support-form > .btn{align-self:flex-start}
.support-thread{list-style:none;padding:0;margin:24px 0}
.support-thread li{padding:20px 0;border-bottom:1px solid var(--border)}
.support-thread li>div{display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap}
.support-thread time,.support-list time{color:var(--text-muted);font-size:0.75rem}
.support-thread p{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:0}
.support-status{margin-top:24px}
.support-list>a{display:grid;gap:8px;padding:24px;color:var(--text);text-decoration:none;overflow-wrap:anywhere}
.support-list>a+a{border-top:1px solid var(--border)}
.support-list>a:hover{background:var(--bg-hover)}
.support-list>a:first-child{border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.support-list>a:last-child{border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.support-list>a:only-child{border-radius:var(--radius-lg)}
.support-conversation{margin-top:24px}
.support-conversation h2{min-width:0;overflow-wrap:anywhere}
.support-status{border-top:1px solid var(--border);padding-top:24px}
.support-thread time,.support-list time{font-size:calc(0.75rem * var(--panel-text-scale,1))}
.support-thread strong,.support-thread time{overflow-wrap:anywhere;min-width:0}
.support-closed{padding:16px;background:var(--bg-muted);border-radius:var(--radius)}
@media(max-width:600px){.support-form>.btn,.support-status>.btn{width:100%}.support-composer__toggle{gap:6px}.support-composer__expand,.support-composer__collapse{display:none!important}}
.support-list>a>span{color:var(--text-muted);font-size:0.875rem}

.visit-edit-buttons{display:flex;gap:8px;flex-wrap:wrap}
.visit-edit-form{padding:0 24px}
.visit-edit-form [data-visit-edit-status]:empty{display:none}
.visit-edit-form [data-visit-edit-options]{padding:0 0 16px}
.res [data-visit-input]{width:100%;min-width:0;font:inherit}
.visit-title [data-visit-input]{font-size:1rem}
.res-fact dd{min-width:0}
.is-editing .visit-title{flex-basis:240px}
@media(max-width:760px){.visit-edit-buttons{order:4;flex-basis:100%}.visit-edit-form{padding:0 20px}}

.date-popover{position:fixed;inset:auto;margin:0;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text);box-shadow:0 8px 28px #0002;z-index:10000;overflow:auto;box-sizing:border-box;font:14px var(--font);overscroll-behavior:contain}
.date-popover[hidden]{display:none!important}
.date-popover__nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.date-popover__nav strong{text-transform:capitalize;text-align:center}
.date-popover__jump{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:12px;margin-bottom:16px}
.date-popover__jump label{font-size:0.75rem;color:var(--text-muted)}
.date-popover__jump input{width:100%;min-width:0}
.date-popover__week,.date-popover__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.date-popover__week{color:var(--text-muted);font-size:0.6875rem;margin-bottom:8px}
.date-popover__days button{min-width:0;min-height:2.375rem;padding:4px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);cursor:pointer;font:inherit}
.date-popover__days button:hover{background:var(--bg-hover)}
.date-popover__days button[aria-current=date]{border-color:var(--accent)}
.date-popover__days button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}
.date-popover__days button:disabled{opacity:.3;cursor:not-allowed}
.date-popover__days button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.date-popover__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.date-popover__actions .btn{flex:1;font-size:0.75rem}
.date-popover__time{display:flex;align-items:center;justify-content:center;gap:16px;border-top:1px solid var(--border);margin-top:16px;padding-top:12px}
.date-popover__time>div{display:grid;gap:6px;justify-items:center}
.date-popover__time>div>span{font-size:0.75rem;color:var(--text-muted)}
.date-popover__time output{font-size:clamp(1.2rem, 1.0685rem + 0.5393vw, 1.5rem);font-weight:650;min-width:54px;text-align:center}
.date-popover__time .btn{min-height:2.25rem}

.guest-support-link{padding:20px;border:1px solid var(--border);border-radius:12px;background:var(--bg);overflow-wrap:anywhere}
.guest-support-link strong{display:block;color:var(--text)}
.guest-support-link p{margin:10px 0 16px;color:var(--text-muted);line-height:1.6}
.guest-support-link a{font-weight:600}

/* Shared controls: focus must remain visible when the native checkbox is transparent. */
.switch input:focus-visible + .switch__track{outline:2px solid var(--accent);outline-offset:4px}
textarea:disabled{opacity:.5;background:var(--bg-muted);cursor:not-allowed}
.local-date-input > .btn{flex:0 0 44px;width:44px;min-width:44px;padding:0}
.local-date-input > input[type=text]{flex:1 1 0;width:0;min-width:0}
@media (pointer:coarse){
 input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),textarea{font-size:max(1rem, calc(0.875rem * var(--panel-text-scale,1)))}
}

/* One dialog frame across confirmation, security and time controls. */
dialog.modal{box-sizing:border-box;width:calc(100% - 32px);max-height:calc(var(--dialog-viewport-height,100dvh) - 32px);overflow:auto;overscroll-behavior:contain;scroll-padding-block:24px;overflow-wrap:anywhere}
dialog.modal .modal__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}
dialog.modal .modal__actions .btn{min-height:2.75rem;white-space:normal;text-align:center;max-width:100%}
dialog.modal .stack{min-width:0}
dialog.modal::backdrop{background:var(--overlay)}
@media(max-width:480px){dialog.modal{padding:24px 20px}dialog.modal .modal__actions .btn{flex:1 1 140px}}
/* Disclosure variants without a bespoke header share the same hit area and chevron. */
.ui-disclosure > summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;min-height:48px;padding:12px 14px;margin:0;border-radius:var(--radius);font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.ui-disclosure > summary::-webkit-details-marker{display:none}
.ui-disclosure > summary::after{content:'';flex:0 0 8px;width:8px;height:8px;margin:0 4px 4px 8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.ui-disclosure > summary:hover{background:var(--bg-hover)}
.ui-disclosure > summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ui-disclosure[open] > summary{margin-bottom:16px;background:var(--bg-muted)}
.ui-disclosure[open] > summary::after{transform:rotate(225deg);margin-top:6px}
.ui-disclosure > form{margin-top:0}
.manual-booking > summary::after{content:'';margin-left:auto;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);flex-shrink:0}
.manual-booking[open] > summary::after{transform:rotate(225deg)}
.manual-booking > summary:hover{background:var(--bg-hover);border-radius:var(--radius-lg)}
.manual-booking[open] > summary:hover{border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.sidebar{height:100dvh;padding-bottom:env(safe-area-inset-bottom)}
.sidebar-close{display:none}
@media(max-width:900px){
 .menu-toggle:checked ~ .scrim{opacity:1;pointer-events:auto}
 body.panel-menu-open{overflow:hidden}
 .sidebar{width:min(var(--sidebar-w),calc(100vw - 48px));padding-top:env(safe-area-inset-top)}
 .sidebar-close{display:flex;align-self:flex-end;margin:12px 12px 0;min-height:44px}
 .topbar-mobile{height:auto;min-height:60px;padding-top:env(safe-area-inset-top)}
 .topbar-mobile label{width:44px;height:44px;flex:0 0 44px}
 .topbar-mobile .brand__name{min-width:0;overflow-wrap:anywhere;white-space:normal;line-height:1.4;padding-block:10px}
}

/* Shared authentication rhythm and clear secondary actions. */
.auth-shell .auth-heading h1{margin:0;line-height:1.15;overflow-wrap:anywhere}
.auth-heading .hint{margin:16px 0 0}
.auth-links{display:grid;gap:16px;margin-top:24px;text-align:center;font-size:0.875rem;line-height:1.6}
.auth-links p{margin:0;color:var(--text-muted)}
.auth-links a,.auth-help a{color:var(--text);text-underline-offset:4px}
.auth-help{margin:24px 0 0;padding-top:20px;border-top:1px solid var(--border);text-align:center;font-size:0.8125rem;line-height:1.6}
.auth-shell .login-card>.alert{overflow-wrap:anywhere}
.auth-shell .login-card>.btn{margin-top:16px}
.auth-shell .login-card.stack>.btn{margin-top:0}
.auth-shell .login-card .hint{overflow-wrap:anywhere}

/* Company profile and first-run setup share the same form rhythm. */
.profile-form .panel__body > .business-industries { margin:0; }
.profile-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:8px; }
.profile-actions .hint { margin:0; }
.company-onboarding .grid2 > .field { margin:0; min-width:0; }
.onboarding-progress { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:8px 0; }
.onboarding-progress li { border-top:3px solid var(--border); padding-top:12px; font-size:calc(0.875rem * var(--panel-text-scale,1)); line-height:1.5; }
.onboarding-progress [aria-current=step], .onboarding-progress .is-complete { border-color:var(--accent); }
.onboarding-actions { border-top:1px solid var(--border); padding-top:24px; }
.business-industries [data-industry-count] { font-weight:600; font-size:calc(0.875rem * var(--panel-text-scale,1)); margin:16px 0 24px; }
.business-industries h3 { font-size:calc(1rem * var(--panel-text-scale,1)); margin:0; }
.business-industries [hidden] { display:none; }
.industry-choice { min-height:52px; line-height:1.45; }
.industry-choice:hover { background:var(--bg-subtle); }
.industry-choice input[type=checkbox] { appearance:none; width:22px; height:22px; border:1.5px solid var(--border); border-radius:6px; background:var(--bg); display:grid; place-content:center; }
.industry-choice input:checked { background:var(--accent); border-color:var(--accent); }
.industry-choice input:checked::after { content:''; width:6px; height:10px; border:solid white; border-width:0 2px 2px 0; transform:translateY(-1px) rotate(45deg); }
.industry-choice:has(:disabled) { opacity:.55; cursor:not-allowed; }
@media(max-width:600px) {
 .profile-actions { align-items:stretch; flex-direction:column; }
 .profile-actions .btn { width:100%; }
 .onboarding-progress { gap:8px; }
 .onboarding-actions .btn { flex:1; }
 .logo-picker { flex-wrap:wrap; }
}

/* Overview: today's work precedes historical reporting. */
.overview-focus > div { min-width:0; flex:1; }
.overview-agenda { margin-top:24px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.overview-agenda .panel__head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.overview-visit { grid-template-columns:minmax(0,1fr) auto; }
.overview-visit .badge { grid-column:1; justify-self:start; margin-top:4px; }
.overview-visit > svg { align-self:center; }
.overview-followups > a { min-width:0; }
.overview-followups span { min-width:0; overflow-wrap:anywhere; }
.overview-followups svg { flex:none; }
.overview-company .brand__logo { flex:none; }
.overview-actions .btn { min-height:2.75rem; white-space:normal; text-align:left; }
.overview-empty-chart { padding:24px 0; color:var(--text-muted); line-height:1.6; }
.overview-table th { overflow-wrap:anywhere; }
.overview-table td { padding-left:16px; overflow-wrap:anywhere; }
.overview-details-grid .overview-table + .hint { margin-bottom:0; }
@media(max-width:1000px) { .overview-agenda { grid-template-columns:1fr; } }
@media(max-width:600px) {
 .overview-focus { position:relative; }
 .overview-art { display:none; }
 .overview-company { flex-wrap:nowrap; align-items:center; }
 .overview-company .brand__logo { width:56px; height:56px; }
 .overview-actions { display:grid; grid-template-columns:1fr; }
 .overview-actions .btn { justify-content:space-between; }
 .overview-table { table-layout:fixed; }
}
.overview-details-grid--private { grid-template-columns:1fr; }

/* Reservation browsing uses the same status language as details and calendar. */
.visit-index__client > .visit-index__status { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:10px; }
.visit-index__status .badge { font-size:calc(0.6875rem * var(--panel-text-scale,1)); white-space:normal; }
.visit-index__rating { display:inline-flex; align-items:center; gap:4px; color:var(--text); white-space:nowrap; }
.visit-index__rating > span { color:var(--warning); }
.visit-index__client > span, .visit-title p { overflow-wrap:anywhere; }
.visit-index__heading { flex-wrap:wrap; align-items:baseline; }
.visit-index__heading strong { font-weight:600; }
.visit-index__item:focus-visible { outline:2px solid var(--accent); outline-offset:-3px; }
.visit-toggle { min-height:44px; min-width:44px; }
.visit-toggle span { display:inline; }
.is-enhanced .visit-title { min-width:0; flex:1 1 180px; }
.visit-tabs a { min-height:44px; display:flex; align-items:center; gap:8px; }
@media(max-width:760px) {
 .is-enhanced .visit-title { flex-basis:100%; }
 .is-enhanced .res-facts { grid-template-columns:1fr; }
 .is-enhanced .res-fact:nth-child(2) { grid-column:auto; grid-row:auto; }
 .visit-index { max-height:320px; scroll-padding-top:64px; }
}
.visit-index__client strong, .visit-index__client > span:not(.visit-index__status) { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }

/* Reservation creation shares the same controls and spacing as visit actions. */
.manual-booking form>.inline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:end}
.manual-booking .field{min-width:0}
.manual-booking form>.inline-fields>.field{max-width:none!important;margin:0}
.manual-booking__footer{display:flex;justify-content:flex-end;border-top:1px solid var(--border);padding-top:20px}
[data-reservation-submit]>[role=alert]{margin:0 0 16px;overflow-wrap:anywhere}
@media(max-width:600px){.manual-booking form>.inline-fields{grid-template-columns:minmax(0,1fr)}.manual-booking__footer .btn{width:100%}}

/* Calendar navigation and compact month cells. */
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}
.calendar-toolbar .calendar-modes{margin:0}
.calendar-toolbar .btn,.calendar-panel .cal-head .btn{min-height:2.75rem;min-width:44px}
.calendar-panel .cal-head b{text-align:center;min-width:0}
.calendar-panel .cal-day__dots{flex-wrap:wrap;max-width:100%;gap:3px}
.calendar-panel .cal-day:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.calendar-week__visit:focus-visible,.calendar-week__heading:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.calendar-week__heading{min-height:44px}
@media(max-width:600px){
 .calendar-panel>.panel__body{padding:16px 12px}
 .calendar-panel .cal-day{min-width:0;min-height:56px;padding:8px 4px}
 .calendar-panel .cal-head{gap:8px;font-size:calc(0.9375rem * var(--panel-text-scale,1))}
 .calendar-legend{gap:12px 16px}
 .calendar-week__visit{padding:12px}
}
.calendar-week__visit>strong,.calendar-week__visit>span:not(.calendar-status){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
@media(min-width:1101px){.calendar-week__visits{max-height:560px;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior-y:contain}}

/* Availability and whole-day breaks. */
.hours-row__copy{width:44px;height:44px;min-height:44px}
.vacation-composer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:end}
.vacation-composer .field{margin:0;min-width:0}
.vacation-composer .btn{justify-self:end}
.vacation-row{gap:20px;flex-wrap:wrap}
.vacation-row__dates{font-weight:600;overflow-wrap:anywhere}
.vacation-row>.hint{min-width:0;overflow-wrap:anywhere}
@media(max-width:600px){.vacation-composer{grid-template-columns:minmax(0,1fr)}.vacation-composer .btn{width:100%}.vacation-row>.hint{flex-basis:100%!important}.vacation-row form{margin-left:auto}}

/* Customer history and recurring reminders share compact, wrapping rows. */
.customer-row{flex-wrap:wrap}
.customer-row__dates{min-width:0;overflow-wrap:anywhere}
.customer-contact dd{overflow-wrap:anywhere}
.recurring-row{align-items:center;gap:20px;flex-wrap:wrap}
.recurring-row__info{flex:1;min-width:0;overflow-wrap:anywhere}
.recurring-row__info p{margin:8px 0}
.recurring-row__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.recurring-row__actions form{margin:0}
.recurring-composer .field{min-width:0}
@media(max-width:600px){.recurring-row__info{flex-basis:100%}.recurring-row__actions{width:100%;justify-content:flex-end}}
.page-head>div{min-width:0;max-width:100%}
.page-head h1{overflow-wrap:anywhere}
@media(max-width:600px){.customer-contact .res-facts{grid-template-columns:minmax(0,1fr)}.customer-contact .res-fact{grid-column:auto;grid-row:auto}}

/* Keep team identity, actions and the expanded editor distinct. */
.team-member{align-items:flex-start;gap:20px}
.team-member__identity{min-width:0;overflow-wrap:anywhere}
.team-member__identity>.hint{margin:8px 0}
.team-member__actions{display:flex;flex:1 1 360px;align-items:flex-start;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0}
.team-member__actions>form{margin:0}
.team-name-edit>summary{list-style:none;display:flex;align-items:center;gap:8px}
.team-name-edit>summary::-webkit-details-marker{display:none}
.team-name-edit[open]>summary svg{transform:rotate(180deg)}
.team-name-edit[open]{order:1;border-top:1px solid var(--border);padding-top:16px}
.team-name-edit form{max-width:none}
.team-name-edit form>.btn{justify-self:start}
.team-invite>summary{list-style:none}
.team-invite>summary::-webkit-details-marker{display:none}
.team-member__actions .btn{min-height:2.75rem}
@media(max-width:600px){.team-member__actions{flex-basis:100%;justify-content:flex-start}.team-member__actions>form{flex:1 1 130px}.team-member__actions>form>.btn{width:100%}.team-name-edit{flex:1 1 130px}}

/* Service catalogue: readable identity, settings and separate deletion action. */
.service-composer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:end}
.service-composer>.field{min-width:0;margin:0}
.service-composer>.service-pricing-hint{grid-column:1/-1;margin:0}
.service-composer>button{justify-self:start}
.service-catalogue-row__name{flex:1 1 220px;min-width:0;overflow-wrap:anywhere}
.service-catalogue-row>.hint{overflow-wrap:anywhere}
.service-category-form{flex:1 1 100%}
.service-price-editor{min-width:0}
.service-price-editor .service-pricing-hint{flex-basis:100%;margin:0}
.service-delete{margin-left:auto}
/* Integration controls stay readable and touchable at narrow widths. */
.code-block{padding-right:64px;min-height:60px;min-width:0}
.code-block__copy{width:44px;height:44px}
.field-row__body{overflow-wrap:anywhere}
#integrationEditor .panel__head h3{display:flex;align-items:center;gap:10px}
#integrationEditor .panel__head h3 svg{flex:none}
#integrationEditor .swatch{min-width:44px;min-height:44px}
#integrationEditor input[type=range]{min-width:0}
#integrationEditor code{overflow-wrap:anywhere}
#integrationEditor .field-row .btn{min-height:2.75rem}
.inquiry-item{scroll-margin-top:80px}
.report-service-row{flex-wrap:wrap;gap:16px}
.report-service-row>span:first-child{min-width:0;flex-basis:200px!important;overflow-wrap:anywhere}
.report-stats .stat{min-width:0}
.report-stats .stat__value{overflow-wrap:anywhere}
[data-review] strong,[data-review] .badge,[data-review]>p{overflow-wrap:anywhere;max-width:100%}
[data-review] .badge{white-space:normal}
.activity-details dd>span,.activity-details dd>strong{min-width:0;overflow-wrap:anywhere}
@media(max-width:600px){.report-filters>.field{flex:1 1 100%}.report-filters>.btn{width:100%}.report-service-row>span:first-child{flex-basis:100%!important}.review-filters__row{grid-template-columns:minmax(0,1fr)}}
.inquiry-item summary{border-radius:inherit}
.inquiry-item[open] summary{border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.inquiry-item summary:hover{background:var(--bg-hover)}
.inquiry-item summary>svg{flex:none}
.inquiry-contact>a,.inquiry-reply .hint,.inquiry-replies .field>span{min-width:0;overflow-wrap:anywhere}
.inquiry-replies form>.btn{justify-self:start}
.inquiry-status-form{margin-top:24px}
.inquiry-form-actions{max-width:100%;flex-shrink:1}
.inquiry-form-actions .btn,.inquiry-editor .field-row .btn{min-height:2.75rem}
.inquiry-editor .swatch{min-width:44px;min-height:44px}
.inquiry-editor .panel__head h3{display:flex;align-items:center;gap:10px}
.inquiry-editor .panel__head h3 svg{flex:none}
@media(max-width:600px){.inquiry-replies form>.btn,.inquiry-status-form>.btn{width:100%}.inquiry-status-form .field{flex:1 1 100%}}
@media(max-width:640px){.service-composer{grid-template-columns:minmax(0,1fr)}.service-composer>button{width:100%}.service-category-form>button{width:100%}}

.employee-service-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.employee-photo-picker{display:flex;align-items:center;flex-wrap:wrap;gap:24px}
.employee-photo-picker img{width:112px;height:112px;object-fit:cover;border-radius:16px}
.employee-photo-picker>span{display:grid;place-items:center;width:112px;height:112px;border:1px dashed var(--border);border-radius:16px;color:var(--text-muted)}
.employee-photo-picker [hidden]{display:none}
.employee-photo-picker .field{flex:1;min-width:0}
.employee-photo-picker input{max-width:100%}
@media(max-width:500px){.employee-photo-picker .field{flex-basis:100%}}
.employee-schedule-hours{border:0;padding:0;margin:24px 0;min-width:0}
.employee-schedule-hours legend{font-weight:600;margin-bottom:16px}
.readiness-person{align-items:flex-start}
.readiness-issues{padding-left:20px;margin:12px 0;display:grid;gap:12px}
.readiness-issues a{color:var(--text);text-underline-offset:3px}

.readiness-heading{flex-wrap:wrap;gap:12px}.readiness-heading h2{flex:1 1 260px}.readiness-heading .badge{white-space:nowrap}

.vacation-composer__full{grid-column:1/-1;margin:0}
.vacation-row__description{display:grid;gap:8px;flex:1 1 280px;min-width:0;overflow-wrap:anywhere}
.vacation-row__description p{margin:0}
.vacation-conflicts{margin-top:8px}
.vacation-conflicts ul{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:16px}
.vacation-conflicts li{display:grid;gap:4px}
.vacation-row{align-items:flex-start}

.booking-mode-options{min-width:0;border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.booking-mode-options legend{margin-bottom:12px;font-weight:600}
.booking-mode-options label{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--border);border-radius:12px;padding:18px;cursor:pointer}
.booking-mode-options label:has(:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.booking-mode-options label:has(:disabled){opacity:.65;cursor:not-allowed}
.booking-mode-options label:focus-within{outline:2px solid var(--accent);outline-offset:3px}
.booking-mode-options input[type="radio"]{flex:0 0 20px;width:20px;height:20px;padding:0;margin:3px 0 0;accent-color:var(--accent)}
.booking-mode-options label>span{min-width:0;flex:1}
#booking-mode .panel__head{flex-wrap:wrap;gap:12px}
.booking-mode-options strong,.booking-mode-options small{display:block}
.booking-mode-options small{margin-top:6px;color:var(--text-muted);line-height:1.5}
.booking-readiness{margin:20px 0 28px}
@media(max-width:640px){.booking-mode-options{grid-template-columns:1fr}}

.service-publication{flex:1 1 100%;display:flex;flex-direction:column;gap:14px;padding:18px 0;border-top:1px solid var(--border)}
.service-publication .hint{margin:6px 0 0}
.service-publication form{margin:0}
.service-catalogue-row{scroll-margin-top:80px}
.service-catalogue-row>.badge{white-space:normal}
@media(max-width:640px){.service-publication .employee-service-actions{align-items:stretch;flex-direction:column}.service-publication .btn{width:100%}}
/* Shared error page (404/403/500...): centered card in the auth language, neutral for companies and their customers. */
.error-page .login-card{text-align:center}
.error-page__brand{display:inline-flex;margin-bottom:28px}
.error-page__code{margin:10px 0 0;font-size:calc(0.75rem * var(--panel-text-scale,1));color:var(--text-muted)}
.error-page h1{margin:0 0 10px;font-size:calc(clamp(1.125rem, 1.0154rem + 0.4494vw, 1.375rem) * var(--panel-text-scale,1));line-height:1.25;letter-spacing:-.02em;overflow-wrap:anywhere}
.error-page .hint{margin:0 auto;max-width:40ch;line-height:1.6;overflow-wrap:anywhere}
.error-page__actions{display:grid;gap:10px;margin-top:24px}
/* Platform backups (Panel platformy → Kopie danych). */
.backup-providers{margin-top:1.25rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1rem;margin-bottom:1.5rem}
.backup-providers .panel{margin:0}
.backup-steps{margin:0;padding-left:1.25rem;display:grid;gap:.5rem;font-size:calc(0.875rem * var(--panel-text-scale,1));line-height:1.6;color:var(--text-muted)}
.backup-steps code,.backup-page code{overflow-wrap:anywhere}
.backup-connect{padding-top:1rem;border-top:1px solid var(--border)}
.backup-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.backup-actions form{margin:0}
.stat__value.backup-stat{font-size:calc(1rem * var(--panel-text-scale,1));line-height:1.4;overflow-wrap:anywhere}
.backup-badge{margin-left:auto}
@media(max-width:640px){.backup-actions .btn{width:100%}.backup-actions form{flex:1 1 100%}}
/* Legal documents (public /legal/*) and panel "Dokumenty i dane". */
.legal-page{max-width:46rem;margin:0 auto;padding:2.5rem 1rem 3rem;background:var(--bg)}
body:has(.legal-page){background:var(--bg)}
.legal-page__brand{display:inline-flex;margin-bottom:1.5rem}
.legal-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.legal-nav a{padding:.4rem .75rem;border:1px solid var(--border);border-radius:999px;color:var(--text);text-decoration:none;font-size:calc(0.8125rem * var(--panel-text-scale,1))}
.legal-nav a[aria-current=page]{background:var(--accent);border-color:var(--accent);color:#fff}
.legal-doc{line-height:1.7;font-size:calc(0.9375rem * var(--panel-text-scale,1));overflow-wrap:anywhere}
.legal-doc h1{font-size:clamp(1.5rem, 1.2261rem + 1.1236vw, 2rem);letter-spacing:-.02em;margin:0 0 .25rem}
.legal-doc h2{font-size:calc(1.0625rem * var(--panel-text-scale,1));margin:2rem 0 .5rem}
.legal-doc__meta{color:var(--text-muted);margin:0 0 1.25rem}
.legal-doc ul{padding-left:1.25rem;display:grid;gap:.4rem}
.legal-doc table{width:100%;border-collapse:collapse;display:block;overflow-x:auto;margin:1rem 0}
.legal-doc th,.legal-doc td{text-align:left;vertical-align:top;padding:.6rem .75rem;border-bottom:1px solid var(--border)}
.legal-doc code{overflow-wrap:anywhere}
.legal-missing{background:var(--warning-bg,#fff4d6);color:inherit;padding:0 .2rem;border-radius:4px}
.legal-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin:1rem 0 0;font-size:calc(0.75rem * var(--panel-text-scale,1))}
.legal-footer a{color:var(--text-muted)}
.legal-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.legal-row p{margin:.2rem 0 0}
.signup-legal{align-items:flex-start;line-height:1.5}
@media(max-width:640px){.legal-row{flex-direction:column;gap:.25rem}}
.recurring-basis{border:0;padding:0;margin:0;display:grid;gap:.5rem}
.recurring-basis legend{font-weight:600;margin-bottom:.5rem;font-size:calc(0.875rem * var(--panel-text-scale,1))}
.signup-legal span,.legal-accept .check span{color:var(--text)}
.signup-legal a,.legal-accept a.text-link,.legal-doc a{color:var(--text);text-decoration:underline;text-underline-offset:3px}
@media(max-width:640px){
 .legal-doc table,.legal-doc tbody{display:block}
 .legal-doc thead{display:none}
 .legal-doc tr{display:grid;gap:.35rem;padding:.9rem 0;border-bottom:1px solid var(--border)}
 .legal-doc td{display:grid;grid-template-columns:7.5rem 1fr;gap:.75rem;padding:0;border:0}
 .legal-doc td::before{content:attr(data-label);color:var(--text-muted);font-size:calc(0.75rem * var(--panel-text-scale,1))}
 .legal-doc code{overflow-wrap:break-word;word-break:break-word}
}
/* Address suggestions (company profile, onboarding) - same look as the searchable selects. */
.address-field{position:relative}
.address-suggest{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:50;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--bg);box-shadow:0 8px 28px #0002}
.address-suggest__list{margin:0;padding:0;list-style:none;max-height:18rem;overflow:auto;overscroll-behavior:contain}
.address-suggest__list li{padding:.75rem;min-height:2.75rem;box-sizing:border-box;border-radius:4px;cursor:pointer;overflow-wrap:anywhere;font-size:calc(0.875rem * var(--panel-text-scale,1));line-height:1.5}
.address-suggest__list li:hover,.address-suggest__list li[aria-selected=true]{background:var(--bg-hover)}
.address-suggest__note{margin:.25rem .75rem .35rem;font-size:calc(0.75rem * var(--panel-text-scale,1))}
/* Informational booking collisions on reservation cards (never block saving). */
.res-collisions{margin:0 0 .75rem;padding:.75rem 1rem;border:1px solid var(--border);border-left:3px solid var(--warning);border-radius:8px;background:var(--warning-bg);color:var(--text);font-size:calc(0.8125rem * var(--panel-text-scale,1))}
.res-collisions strong{display:flex;align-items:center;gap:.4rem;margin-bottom:.35rem}
.res-collisions strong svg{width:1rem;height:1rem;flex:0 0 auto}
.res-collisions ul{margin:0;padding-left:1.1rem;display:grid;gap:.2rem}
.res-collisions a{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.res-collisions .hint{margin:.35rem 0 0}
.res-cancel{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem .75rem}
.res-cancel .check{margin:0;font-size:calc(0.8125rem * var(--panel-text-scale,1))}
.customer-late{color:var(--warning);font-weight:600}

/* Services: collapsed list, one edit form per service */
.service-add > summary h3{margin:0}
.service-add + .empty{margin-top:20px}
.service-list{overflow:visible}
.service-list > .panel__head .hint{font-variant-numeric:tabular-nums}
.service-item{border-top:1px solid var(--border)}
.service-list > .panel__head + .service-item{border-top:0}
.service-item > summary{display:flex;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;list-style:none}
.service-item > summary::-webkit-details-marker{display:none}
.service-item > summary::after{content:'';width:8px;height:8px;margin:-4px 4px 0 4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);flex-shrink:0;color:var(--text-muted);transition:transform var(--motion-fast,150ms) ease,margin var(--motion-fast,150ms) ease}
.service-item[open] > summary::after{transform:rotate(225deg);margin-top:4px}
.service-item > summary:hover{background:var(--bg-hover)}
.service-item:last-child > summary:hover{border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.service-item[open]:last-child > summary:hover{border-radius:0}
.service-item > summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.service-item__title{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.service-item__title strong{overflow-wrap:anywhere}
.service-item__title .hint{overflow-wrap:anywhere}
.service-item__body{padding:4px 20px 20px;display:grid;gap:16px}
.service-item__body .service-publication{margin:0}
.service-form{display:grid;gap:14px}
.service-form__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;align-items:end}
.service-form__grid .field{margin:0;min-width:0}
.service-form__grid .service-form__name{grid-column:span 2}
.service-form__grid input{min-height:2.75rem}
.service-form input[type=number]{appearance:textfield;-moz-appearance:textfield}
.service-form input[type=number]::-webkit-inner-spin-button,.service-form input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.service-form > .hint,.service-form .service-pricing-hint{margin:0}
.service-form__footer{display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:16px}
.service-form__footer .btn--danger-text{margin-right:auto;color:var(--danger)}
.service-add .service-form__footer .btn{margin-left:auto}
@media(max-width:720px){.service-form__grid{grid-template-columns:minmax(0,1fr)}.service-form__grid .service-form__name{grid-column:auto}.service-item > summary{padding:14px 16px}.service-item__body{padding:4px 16px 16px}.service-form__footer .btn--primary{flex:1}}

/* Back navigation above page titles */
.page-back{margin:-4px 0 16px}
.back-link{display:inline-flex;align-items:center;gap:10px;min-height:2.5rem;padding:4px 16px 4px 4px;border:1px solid var(--border);border-radius:999px;background:var(--bg);color:var(--text);font-size:calc(0.8438rem * var(--panel-text-scale,1));font-weight:600;text-decoration:none;transition:border-color var(--motion-fast,150ms) ease,background var(--motion-fast,150ms) ease}
.back-link__icon{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:999px;background:var(--bg-hover);color:var(--accent);transition:transform var(--motion-fast,150ms) ease}
.back-link__icon .icon{width:16px;height:16px}
.back-link:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--bg-hover)}
.back-link:hover .back-link__icon{transform:translateX(-2px);background:var(--bg)}
.back-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.back-link,.back-link__icon{transition:none}}

/* Person header: views about one employee */
.person-head__identity{display:flex;align-items:center;gap:18px;min-width:0}
.person-head__avatar{flex:none;display:grid;place-items:center;width:4rem;height:4rem;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--accent) 16%,var(--bg));color:var(--accent);font-weight:700;font-size:calc(1.25rem * var(--panel-text-scale,1));border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border))}
.person-head__avatar img{width:100%;height:100%;object-fit:cover}
.person-head__copy{min-width:0}
.page-head .person-head__section{margin:0 0 2px;font-size:calc(0.75rem * var(--panel-text-scale,1));font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.person-head__copy h1{overflow-wrap:anywhere}
.page-head .person-head__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:6px}
.person-head__meta .badge{font-size:calc(0.75rem * var(--panel-text-scale,1))}
@media(max-width:600px){.person-head__identity{gap:14px}.person-head__avatar{width:3.25rem;height:3.25rem}}

/* Team: list of people and one person's profile */
.team-list{overflow:visible}
.team-list > .panel__head{gap:12px}
.team-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:16px;padding:16px 20px;border-top:1px solid var(--border);color:var(--text);text-decoration:none;transition:background var(--motion-fast,150ms) ease}
.team-list > .panel__head + .team-card{border-top:0}
.team-card:hover{background:var(--bg-hover)}
.team-card:last-child{border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.team-card:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.team-card__avatar{display:grid;place-items:center;width:3rem;height:3rem;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--accent) 14%,var(--bg));color:var(--accent);font-weight:700;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border))}
.team-card__avatar img{width:100%;height:100%;object-fit:cover}
.team-card__identity{display:flex;flex-direction:column;gap:2px;min-width:0}
.team-card__identity strong,.team-card__identity .hint{overflow-wrap:anywhere}
.team-card__stats{display:flex;gap:14px;color:var(--text-muted);font-size:calc(0.8125rem * var(--panel-text-scale,1));white-space:nowrap}
.team-card__stats strong{color:var(--text);font-variant-numeric:tabular-nums}
.team-card__chevron{color:var(--text-muted);transition:transform var(--motion-fast,150ms) ease}
.team-card__chevron .icon{width:18px;height:18px}
.team-card:hover .team-card__chevron{transform:translateX(2px);color:var(--accent)}
@media(max-width:860px){.team-card{grid-template-columns:auto minmax(0,1fr) auto;row-gap:8px}.team-card__stats{grid-column:2/-1;grid-row:2;flex-wrap:wrap;white-space:normal}.team-card .badge{grid-column:2;grid-row:3;justify-self:start}.team-card__chevron{grid-column:3;grid-row:1}}
@media (prefers-reduced-motion:reduce){.team-card,.team-card__chevron{transition:none}}
.member-shortcuts{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:12px;margin-bottom:24px}
.member-shortcut{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);color:var(--text);text-decoration:none;transition:border-color var(--motion-fast,150ms) ease,background var(--motion-fast,150ms) ease}
.member-shortcut > span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.member-shortcut:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--bg-hover)}
.member-shortcut:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.member-shortcut__icon{flex:none;display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:10px;background:color-mix(in srgb,var(--accent) 12%,var(--bg));color:var(--accent)}
.member-details{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:start}
.member-details .member-photo{display:grid;gap:10px;max-width:18rem}
.member-details .member-photo .hint{margin:0}
.member-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.member-actions form{margin:0}
@media(max-width:720px){.member-details{grid-template-columns:minmax(0,1fr)}.member-details .member-photo{max-width:none}}
.filter-chip{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:10px 12px 10px 16px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:var(--radius-lg);background:color-mix(in srgb,var(--accent) 7%,var(--bg))}
.filter-chip a strong{color:var(--accent)}
@media(max-width:600px){.person-head__meta > span[aria-hidden]{display:none}}

/* Sidebar user card opens "Moje konto" */
.user-row__link{display:flex;align-items:center;gap:10px;flex:1;min-width:0;margin:-4px 0 -4px -4px;padding:4px;border-radius:var(--radius);color:inherit;text-decoration:none;transition:background var(--motion-fast,150ms) ease}
.user-row__link:hover,.user-row__link[aria-current=page]{background:var(--bg-hover)}
.user-row__link:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.user-row__link .user-row__avatar{width:2rem;height:2rem;overflow:hidden;background:color-mix(in srgb,var(--accent) 14%,var(--bg));color:var(--accent);border-color:color-mix(in srgb,var(--accent) 22%,var(--border))}
.user-row__link .user-row__avatar img{width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion:reduce){.user-row__link{transition:none}}

/* Tabs between the parts of one area (links, one page each) */
.page-tabs{display:flex;gap:4px;margin:-8px 0 24px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}
.page-tabs::-webkit-scrollbar{display:none}
.page-tabs a{flex:none;padding:10px 14px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--text-muted);font-weight:600;font-size:calc(0.875rem * var(--panel-text-scale,1));text-decoration:none;white-space:nowrap;transition:color var(--motion-fast,150ms) ease,border-color var(--motion-fast,150ms) ease}
.page-tabs a:hover{color:var(--text)}
.page-tabs a[aria-current=page]{color:var(--text);border-bottom-color:var(--accent)}
.page-tabs a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius-sm)}
@media (prefers-reduced-motion:reduce){.page-tabs a{transition:none}}
@media(max-width:600px){.page-tabs{flex-wrap:wrap;gap:0;overflow:visible}.page-tabs a{flex:1 1 auto;min-width:min-content;white-space:normal;text-align:center;padding:10px 6px;line-height:1.3;display:flex;align-items:center;justify-content:center}}

/* Company switcher (owner) in place of the company name at the top of the menu */
.sidebar .company-switcher{display:block;text-align:center}
.company-switcher > summary{display:flex;align-items:center;justify-content:center;gap:6px;list-style:none;cursor:pointer;padding:6px 8px;border-radius:var(--radius);transition:background var(--motion-fast,150ms) ease}
.company-switcher > summary::-webkit-details-marker{display:none}
.company-switcher > summary:hover{background:var(--bg-hover)}
.company-switcher > summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.company-switcher > summary .brand__name{width:auto}
.company-switcher > summary .icon{flex:none;width:16px;height:16px;color:var(--text-muted);transition:transform var(--motion-fast,150ms) ease}
.company-switcher[open] > summary .icon{transform:rotate(180deg)}
.company-switcher__menu{display:grid;gap:2px;margin-top:10px;padding:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);text-align:left}
.company-switcher__menu [data-company-list]{display:grid;gap:2px}
.company-switcher__menu .hint{margin:4px 8px;font-size:calc(0.75rem * var(--panel-text-scale,1))}
.company-switcher__menu form{margin:0}
.company-switcher__item{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:none;color:var(--text);font:inherit;font-size:calc(0.8438rem * var(--panel-text-scale,1));font-weight:600;text-align:left;cursor:pointer}
.company-switcher__item small{font-weight:500;color:var(--text-muted);font-size:calc(0.75rem * var(--panel-text-scale,1))}
button.company-switcher__item:hover{background:var(--bg-hover)}
.company-switcher__item.is-current{background:color-mix(in srgb,var(--accent) 10%,var(--bg));cursor:default}
.company-switcher__manage{display:flex;align-items:center;gap:8px;margin-top:4px;padding:8px 10px;border-top:1px solid var(--border);color:var(--text-muted);font-size:calc(0.8125rem * var(--panel-text-scale,1));font-weight:600;text-decoration:none}
.company-switcher__manage:hover{color:var(--text)}
.company-switcher__manage .icon{width:16px;height:16px}
@media (prefers-reduced-motion:reduce){.company-switcher > summary,.company-switcher > summary .icon{transition:none}}
/* Footer tools: theme and help side by side */
.sidebar__tools{display:flex;gap:4px}
.sidebar__tools .theme-toggle{flex:1;width:auto}
.help-link{text-decoration:none}
.help-link[aria-current=page]{background:var(--bg-hover);color:var(--text)}

/* Person filter above visit lists and the calendar */
.person-filter{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin:0 0 16px}
.person-filter .field{margin:0;min-width:min(100%,18rem)}
@media(max-width:600px){.person-filter .field{flex:1 1 100%}}

/* Calendar: one day of the whole team, a column per person */
.team-day{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(10rem,1fr);grid-template-columns:3.5rem;gap:0;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-subtle);margin-top:12px;overscroll-behavior-x:contain}
.team-day__column,.team-day__scale{display:grid;grid-template-rows:auto auto;border-left:1px solid var(--border);min-width:0}
.team-day__scale{border-left:0;position:sticky;left:0;z-index:2;background:var(--bg-subtle)}
.team-day__person{display:flex;align-items:center;gap:8px;min-height:3.5rem;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--bg)}
.team-day__scale .team-day__person{background:var(--bg-subtle)}
.team-day__person strong{display:block;font-size:calc(0.8438rem * var(--panel-text-scale,1));overflow-wrap:anywhere}
.team-day__person strong a{color:inherit;text-decoration:none}
.team-day__person strong a:hover{text-decoration:underline}
.team-day__person small{display:block;color:var(--text-muted);font-size:calc(0.75rem * var(--panel-text-scale,1))}
.team-day__avatar{flex:none;display:grid;place-items:center;width:2rem;height:2rem;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--accent) 14%,var(--bg));color:var(--accent);font-weight:700;font-size:calc(0.75rem * var(--panel-text-scale,1));text-decoration:none}
.team-day__avatar img{width:100%;height:100%;object-fit:cover}
.team-day__track{position:relative;height:calc(var(--team-minute) * var(--team-span));margin:10px 0 14px;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--team-minute) * 60 - 1px),var(--border-subtle) calc(var(--team-minute) * 60 - 1px),var(--border-subtle) calc(var(--team-minute) * 60))}
.team-day__scale .team-day__track{background:none}
.team-day__scale span{position:absolute;right:8px;transform:translateY(-50%);font-size:calc(0.6875rem * var(--panel-text-scale,1));color:var(--text-muted);font-variant-numeric:tabular-nums}
.team-day__work{position:absolute;left:6px;right:6px;border-radius:var(--radius-sm);background:var(--bg);box-shadow:inset 0 0 0 1px var(--border-subtle)}
.team-day__column.is-vacation .team-day__track{background:repeating-linear-gradient(135deg,var(--bg-muted) 0 8px,transparent 8px 16px)}
.team-day__note{position:absolute;top:8px;left:0;right:0;margin:0;text-align:center;font-weight:600;color:var(--text-muted);font-size:calc(0.8125rem * var(--panel-text-scale,1))}
.team-day__visit{position:absolute;left:calc(10px + (100% - 20px) * var(--lane,0) / var(--lanes,1));width:calc((100% - 20px) / var(--lanes,1) - 3px);display:flex;flex-direction:column;gap:1px;overflow:hidden;padding:4px 8px;border-radius:var(--radius-sm);border-left:3px solid var(--status-color);background:color-mix(in srgb,var(--status-color) 14%,var(--bg));color:var(--text);text-decoration:none;font-size:calc(0.75rem * var(--panel-text-scale,1));line-height:1.3;z-index:1}
.team-day__visit:hover{background:color-mix(in srgb,var(--status-color) 24%,var(--bg))}
.team-day__visit:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.team-day__visit time{color:var(--text-muted);font-variant-numeric:tabular-nums}
.team-day__visit strong,.team-day__visit span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team-day__visit.is-block{background:repeating-linear-gradient(135deg,var(--bg-muted) 0 6px,var(--bg) 6px 12px)}
.team-day__visit.is-collision{box-shadow:0 0 0 2px var(--warning);z-index:2}
.team-day__flag{align-self:flex-start;margin-top:2px;padding:0 6px;border-radius:999px;background:var(--warning);color:#fff;font-weight:700;font-size:calc(0.6875rem * var(--panel-text-scale,1))}
@media(max-width:600px){.team-day{grid-template-columns:2.75rem;grid-auto-columns:minmax(9rem,1fr)}}

/* Dashboard: "Pierwsze kroki" checklist */
.setup-guide{margin-bottom:24px}
.setup-guide__bar{height:6px;border-radius:999px;background:var(--bg-muted);overflow:hidden;margin-bottom:16px}
.setup-guide__bar span{display:block;height:100%;background:var(--accent);border-radius:inherit}
.setup-guide__steps{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.setup-guide__steps a{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);text-decoration:none;transition:border-color var(--motion-fast,150ms) ease,background var(--motion-fast,150ms) ease}
.setup-guide__steps a:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:var(--bg-hover)}
.setup-guide__steps a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.setup-guide__steps a > .icon{margin-left:auto;flex:none;color:var(--text-muted)}
.setup-guide__check{flex:none;display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:999px;border:2px solid var(--border);color:var(--accent-ink)}
.setup-guide__check .icon{width:14px;height:14px}
.is-done .setup-guide__check{background:var(--accent);border-color:var(--accent)}
.setup-guide__copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.setup-guide__copy small{font-weight:500;color:var(--text-muted)}
.is-done .setup-guide__copy strong{color:var(--text-muted);text-decoration:line-through;text-decoration-color:var(--border)}
.setup-guide__state{flex:none;margin-left:auto;font-size:calc(0.75rem * var(--panel-text-scale,1));color:var(--text-muted)}
.setup-guide__steps a > .setup-guide__state + .icon{margin-left:0}
.setup-guide__hide{margin-top:12px;display:flex;justify-content:flex-end}
@media(max-width:600px){.setup-guide__state{display:none}.setup-guide__steps a > .setup-guide__state + .icon{margin-left:auto}}
@media (prefers-reduced-motion:reduce){.setup-guide__steps a{transition:none}}

/* Employee: "Mój grafik" */
.my-schedule{margin:0;display:grid}
.my-schedule > div{display:flex;justify-content:space-between;gap:12px;padding:12px 24px;border-top:1px solid var(--border-subtle)}
.my-schedule > div:first-child{border-top:0}
.my-schedule dt{font-weight:600}
.my-schedule dd{margin:0;font-variant-numeric:tabular-nums}
.my-schedule .is-off dd,.my-schedule .is-off dt{color:var(--text-muted)}
@media(max-width:600px){.my-schedule > div{padding:12px 16px}}

/* Team: verified accounts and invitations waiting for activation */
.verified-mark{display:inline-flex;align-items:center;gap:3px;margin-left:4px;color:var(--success,#16a34a);font-weight:600;white-space:nowrap}
.verified-mark .icon{width:13px;height:13px}
.pending-invites{margin-bottom:20px}
.pending-invite{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 20px;border-top:1px solid var(--border)}
.pending-invites > .panel__head + .pending-invite{border-top:0}
.pending-invite form{margin:0}
.pending-invite__state{font-size:calc(0.75rem * var(--panel-text-scale,1));color:var(--text-muted)}
.pending-invite__state.is-expired{color:var(--warning);font-weight:600}
@media(max-width:600px){.pending-invite{grid-template-columns:auto minmax(0,1fr);padding:14px 16px}.pending-invite form{grid-column:1/-1}.pending-invite form .btn{width:100%}}

/* Configuration lists: one frame, numbered steps and explicit status text. */
.setup-guide > summary.panel__head{padding:20px 24px;margin:0;flex-wrap:wrap;background:transparent}
.setup-guide > summary h2{margin:0;margin-right:auto}
.setup-guide:not([open]) > summary{border-bottom:0}
.setup-guide__toggle{font-size:calc(.8125rem * var(--panel-text-scale,1));color:var(--text-muted)}
.setup-guide[open] .when-closed,.setup-guide:not([open]) .when-open{display:none}
.setup-guide__next,.setup-guide__restore{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.setup-guide__next{padding:16px 0 24px}
.setup-guide__next strong{display:block;margin-top:4px}
.setup-guide__steps{gap:0}
.setup-guide__steps li + li{border-top:1px solid var(--border)}
.setup-guide__steps a{border:0;border-radius:0;padding:16px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto}
.setup-guide__steps .is-next a{background:var(--warning-bg)}
.setup-guide__steps .is-next .setup-guide__check{border-color:var(--warning);color:var(--warning)}
.setup-guide__steps .is-done .setup-guide__check{background:var(--success-bg);color:var(--success);border-color:var(--success)}
.setup-guide__steps .is-done .setup-guide__copy strong{color:var(--text);text-decoration:none}
.setup-guide__steps .setup-guide__state{display:inline-flex;margin-left:0}
.setup-guide__steps .setup-guide__check{font-size:calc(.8125rem * var(--panel-text-scale,1))}
.readiness-person{padding:20px 24px;border-bottom:1px solid var(--border)}
.readiness-person:last-child{border-bottom:0}
.readiness-person__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.readiness-person__head h3{margin:0}
.readiness-person .setup-guide__steps{padding-block:4px}
.readiness-person .setup-guide__steps a{padding:20px}
@media(max-width:600px){
 .setup-guide > summary.panel__head,.readiness-person{padding:16px}
 .setup-guide > summary h2{flex-basis:100%}
 .setup-guide__steps a{grid-template-columns:auto minmax(0,1fr) auto;gap:8px 12px}
 .setup-guide__steps .setup-guide__state{grid-column:2;grid-row:2;justify-self:start}
 .setup-guide__steps a > .icon{grid-column:3;grid-row:1}
 .setup-guide__steps .setup-guide__check{align-self:start}
 .setup-guide__next .btn,.setup-guide__restore form,.setup-guide__restore .btn{width:100%}
}
.setup-guide__steps .setup-guide__check{color:var(--text-muted)}
.setup-guide__steps .setup-guide__state.badge--ok{color:var(--success)}
.setup-guide__steps .setup-guide__state.badge--warn{color:var(--warning)}
:root[data-theme='light'] .setup-guide,:root[data-theme='light'] .readiness-person{--success:#15803d}
@media(prefers-color-scheme:light){:root:not([data-theme='dark']) .setup-guide,:root:not([data-theme='dark']) .readiness-person{--success:#15803d}}

.setup-guide-settings{margin-top:24px}

/* Team readiness stays compact until a person is expanded. */
.readiness-person > summary.readiness-person__head{margin:0;padding:12px 0;background:transparent;border-radius:0}
.readiness-person > summary.readiness-person__head strong{flex:1;min-width:0}
.readiness-person > summary.readiness-person__head .badge{flex:none}
.readiness-person[open] > summary.readiness-person__head{margin-bottom:12px}
.readiness-person:not([open]){padding-block:8px}
.readiness-person .setup-guide__steps a[aria-disabled]{cursor:default}
.readiness-person .setup-guide__steps a[aria-disabled]:hover{background:transparent}
.readiness-person .setup-guide__steps a[aria-disabled] > .icon:last-child{visibility:hidden}

/* Separate team configuration from service coverage. */
.readiness-person__identity{display:grid;gap:4px;flex:1;min-width:0}
.readiness-person__identity .hint{margin:0;font-weight:400}
.readiness-panels{display:grid;gap:24px}
.readiness-panels > .panel{margin:0}
.readiness-coverage .panel__head{background:var(--bg-subtle);align-items:center}
.readiness-coverage .panel__head > div{flex:1;min-width:0}
.readiness-coverage h2{margin:0}
.readiness-coverage .hint{margin:6px 0 0}
.readiness-coverage__list{list-style:none;padding:0;margin:0}
.readiness-coverage__list > li{display:flex;align-items:center;gap:16px;padding:24px}
.readiness-coverage__list > li + li{border-top:1px solid var(--border-subtle)}
.readiness-coverage__list > li > div{flex:1;min-width:0}
.readiness-coverage__icon{color:var(--warning);flex:none;display:flex}
.readiness-visits{border-top:1px solid var(--border)}
@media(max-width:600px){
 .readiness-coverage__list > li{padding:20px 16px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start}
 .readiness-coverage__list .btn{grid-column:2;justify-self:start}
 .readiness-person > summary.readiness-person__head .badge{white-space:normal;max-width:55%}
}

.readiness-assigned{display:flex;align-items:center;gap:8px;color:var(--success);font-size:calc(.8125rem * var(--panel-text-scale,1));margin:10px 0}
.readiness-blockers{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:16px}
.readiness-blockers li{display:grid;gap:8px}
.readiness-blockers li > span{font-size:calc(.8125rem * var(--panel-text-scale,1));color:var(--text-muted);line-height:1.6}
.readiness-blockers .text-link{display:inline-flex;align-items:center;gap:4px;margin-left:4px;min-height:2.75rem}

/* Visit essentials and a full-width assignment section. */
.visit-title p { display:flex; flex-wrap:wrap; align-items:baseline; column-gap:.5rem; row-gap:.2rem; }
.visit-title .visit-service-label { flex-basis:100%; font-size:calc(.6875rem * var(--panel-text-scale,1)); margin-top:.35rem; }
.visit-title .visit-service { color:var(--text); font-size:calc(1rem * var(--panel-text-scale,1)); font-weight:650; min-width:0; overflow-wrap:anywhere; }
.visit-title .visit-duration { color:var(--text-muted); white-space:nowrap; }
.visit-title .visit-duration::before { content:'· '; }
.reservation-customer-link { min-height:2.75rem; padding:.65rem .9rem; justify-content:space-between; gap:1rem; text-align:left; }
.reservation-customer-link:hover { text-decoration:none; }
.assignment-editor { grid-column:1 / -1; padding:1.25rem 1.5rem; }
.assignment-editor > summary { min-height:2.75rem; }
.assignment-toggle { display:flex; align-items:center; gap:.6rem; color:var(--text-muted); font-size:calc(.8125rem * var(--panel-text-scale,1)); flex-shrink:0; }
.assignment-toggle__open, .assignment-editor[open] .assignment-toggle__closed { display:none; }
.assignment-editor[open] .assignment-toggle__open { display:inline; }
.assignment-editor[open] .assignment-toggle svg { transform:rotate(180deg); }
.assignment-editor > form { padding-top:1.25rem; border-top:1px solid var(--border); }
.assignment-save { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; }
.res-collisions { margin:0 1.5rem 1rem; }
.collision-range { font-variant-numeric:tabular-nums; }
@media(max-width:760px) {
 .assignment-editor { padding:1.25rem; }
 .assignment-editor > summary { flex-wrap:wrap; gap:.75rem; }
 .assignment-toggle { margin-left:auto; }
 .res-collisions { margin:0 1.25rem 1rem; }
 .reservation-customer-link { width:100%; }
}

/* Completed visits use the calendar's blue status, distinct from confirmed green. */
.badge--completed { color:#0369a1; background:#e0f2fe; }
:root[data-theme="dark"] .badge--completed { color:#7dd3fc; background:#102b3d; }
@media(prefers-color-scheme:dark) {
 :root:not([data-theme="light"]) .badge--completed { color:#7dd3fc; background:#102b3d; }
}

/* Booking field layout: order and width are edited in the same published draft. */
#fieldRows > .field-row { flex-wrap:wrap; }
.field-layout-controls { display:flex; align-items:flex-end; gap:.75rem; flex:0 0 100%; }
.field-layout-controls > .field { margin:0; flex:1; max-width:20rem; min-width:0; }
.field-layout-moves { display:flex; gap:.4rem; }
.field-layout-moves .btn { min-width:2.75rem; min-height:2.75rem; }

/* Optional assignment reminder, also visible while collapsed. */
.assignment-editor--attention {
 background:color-mix(in srgb, #f59e0b 7%, transparent);
 box-shadow:inset 3px 0 0 color-mix(in srgb, #f59e0b 55%, transparent);
}

/* Shared add, edit and delete controls. Text remains the accessible name. */
.btn.action-icon {
 width:2.75rem; min-width:2.75rem; min-height:2.75rem; padding:.625rem;
 flex:0 0 auto; gap:0; font-size:0; line-height:1;
 color:var(--action-color); background:var(--panel, transparent);
 border:1px solid var(--border); vertical-align:middle;
}
.btn.action-icon > svg { display:none; }
.btn.action-icon::before {
 content:""; display:block; width:1.25rem; height:1.25rem; flex:none;
 background:currentColor; mask:var(--action-mask) center / contain no-repeat;
 -webkit-mask:var(--action-mask) center / contain no-repeat; pointer-events:none;
}
.btn.action-icon:hover:not(:disabled) { background:color-mix(in srgb, var(--action-color) 12%, var(--panel, white)); border-color:var(--action-color); }
.action-icon--add { --action-color:#15803d; }
.action-icon--delete { --action-color:#dc2626; }
.action-icon--edit { --action-color:#c2410c; }
[data-theme="dark"] .action-icon--add { --action-color:#4ade80; }
[data-theme="dark"] .action-icon--delete { --action-color:#f87171; }
[data-theme="dark"] .action-icon--edit { --action-color:#fb923c; }
@media(prefers-color-scheme:dark) {
 :root:not([data-theme="light"]) .action-icon--add { --action-color:#4ade80; }
 :root:not([data-theme="light"]) .action-icon--delete { --action-color:#f87171; }
 :root:not([data-theme="light"]) .action-icon--edit { --action-color:#fb923c; }
}
.action-icon--add { --action-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%205v14M5%2012h14%22/%3E%3C/svg%3E"); }
.action-icon--delete { --action-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%207h16%22/%3E%3Cpath%20d%3D%22M6%207l1%2013a1.5%201.5%200%200%200%201.5%201.5h7A1.5%201.5%200%200%200%2017%2020l1-13%22/%3E%3Cpath%20d%3D%22M9.5%207V4.5A1.5%201.5%200%200%201%2011%203h2a1.5%201.5%200%200%201%201.5%201.5V7%22/%3E%3Cpath%20d%3D%22M10%2011v6M14%2011v6%22/%3E%3C/svg%3E"); }
.action-icon--edit { --action-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m15%205%204%204M4%2020l4-1%2012-12a2.8%202.8%200%200%200-4-4L4%2015z%22/%3E%3C/svg%3E"); }

/* Section headings follow the company accent in both sidebar variants. */
.sidebar .nav__label {
 display:flex; align-items:center; gap:.5rem;
 color:color-mix(in srgb, var(--accent) 55%, var(--text));
 font-weight:700;
}
.sidebar .nav__label::before {
 content:""; width:.1875rem; height:.875rem; flex:none;
 border-radius:999px; background:var(--accent);
}

/* Company mail usage shares the report controls and stat component. */
.mail-periods{display:flex;flex-wrap:wrap;gap:8px}
.mail-usage-stats{margin-top:24px}
.mail-usage-day{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media(max-width:600px){.mail-usage-day{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mail-usage-stats{grid-template-columns:1fr}}

/* Leave breathing room before both widget/API content and inquiry controls. */
[data-integration-legal]{margin-bottom:24px}
[data-integration-legal] .panel__body > :first-child{margin-top:0}
[data-integration-legal] .panel__body > :last-child{margin-bottom:0}
[data-integration-legal] li + li{margin-top:8px}

.integration-website-help{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.integration-website-help summary{cursor:pointer;font-weight:600}.integration-website-help li+li{margin-top:10px}.integration-website-help code{overflow-wrap:anywhere}

.support-banner { display:flex; align-items:center; justify-content:space-between; gap:var(--space-4, 16px); flex-wrap:wrap; margin-bottom:24px; padding:20px; }
.support-banner > div { flex:1; min-width:min(100%, 240px); }
.support-banner p { margin:8px 0 0; }

#integrationEditor [data-api-layout-help]{display:none}
#integrationEditor[data-integration-mode="api"] [data-api-layout-help]{display:block}
#integrationEditor[data-integration-mode="api"] [data-widget-layout-help],
#integrationEditor[data-integration-mode="api"] [data-field-layout-controls]{display:none}

/* Separate company context from login credentials. */
.login-company { margin-bottom: 12px; }
.login-company .field { margin-top: 0; }

.customer-notes-link { color: var(--warning, #b77900); border-color: currentColor; background: rgba(245,158,11,.1); margin-block: 8px; }
.customer-team-note { padding: 16px 0; border-bottom: 1px solid var(--border); }
.customer-team-note p { white-space: pre-wrap; overflow-wrap: anywhere; }

.customer-recurring-add { white-space: normal; }
.customer-recurring-add > svg { color: #86efac; flex-shrink: 0; }
