/* ==========================================================================
   1. CSS ЗМІННІ ТА КОЛЬОРОВІ ТЕМИ
   ========================================================================== */
:root[data-theme="light"] {
  --bg: #f1f5f9;
  --surface: #ffffff;
  --surface-subtle: #f8fafc;
  --border: #cbd5e1;
  --text: #0f172a;
  --muted: #64748b;
  --primary: #0284c7;
  --primary-hover: #0369a1;
  --card-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  --danger: #dc2626;
  --success: #16a34a;
  --warning: #d97706;
  --info: #2563eb;
}

:root[data-theme="dark"] {
  --bg: #0f172a;
  --surface: #1e293b;
  --surface-subtle: #334155;
  --border: #475569;
  --text: #f8fafc;
  --muted: #94a3b8;
  --primary: #38bdf8;
  --primary-hover: #0ea5e9;
  --card-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
  --danger: #ef4444;
  --success: #22c55e;
  --warning: #f59e0b;
  --info: #60a5fa;
}

/* ==========================================================================
   2. БАЗОВІ СТИЛІ ТА СКИДАННЯ
   ========================================================================== */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

body {
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  transition: background 0.2s ease, color 0.2s ease;
}

.hidden {
  display: none !important;
}

/* ==========================================================================
   3. КНОПКИ ТА ЕЛЕМЕНТИ ВВЕДЕННЯ
   ========================================================================== */
button {
  cursor: pointer;
  padding: 7px 13px;
  border: none;
  border-radius: 6px;
  background: var(--primary);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: opacity 0.15s, background 0.15s;
}

button:hover {
  opacity: 0.9;
}

button.secondary {
  background: var(--surface-subtle);
  color: var(--text);
  border: 1px solid var(--border);
}

button.secondary:hover {
  background: var(--border);
}

button.danger {
  background: var(--danger);
  color: #fff;
}

button.danger:hover {
  background: #b91c1c;
}

button.icon-btn {
  padding: 6px 10px;
  font-size: 1rem;
}

input,
select,
textarea {
  padding: 8px 11px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--surface);
  color: var(--text);
  font-size: 0.9rem;
  outline: none;
  transition: border-color 0.2s;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--primary);
}

/* ==========================================================================
   4. ВЕРХНЯ ПАНЕЛЬ (HEADER)
   ========================================================================== */
header {
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  padding: 12px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: sticky;
  top: 0;
  z-index: 40;
}

.brand {
  text-decoration: none;
  font-weight: 800;
  font-size: 1.15rem;
  color: var(--primary);
  display: flex;
  align-items: center;
  gap: 8px;
}

.brand-logo {
  display: block;
  width: auto;
  height: clamp(42px, 4.5vw, 54px);
  object-fit: contain;
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

#user-pill {
  font-size: 0.82rem;
  color: var(--muted);
  font-weight: 500;
}

/* ==========================================================================
   5. ЕКРАН ВХОДУ (LOGIN)
   ========================================================================== */
.login-container {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: 20px;
}

.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 24px;
  box-shadow: var(--card-shadow);
}

.login-card {
  max-width: 360px;
  width: 100%;
}

.login-card h2 {
  font-size: 1.25rem;
  margin-bottom: 6px;
}

.login-card p {
  font-size: 0.85rem;
  color: var(--muted);
  margin-bottom: 16px;
}

.error-alert {
  background: #fee2e2;
  color: #dc2626;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 0.82rem;
  margin-bottom: 14px;
}

/* ==========================================================================
   6. ПАНЕЛЬ УПРАВЛІННЯ ТА ФІЛЬТРИ
   ========================================================================== */
main {
  flex: 1;
  padding: 18px;
  max-width: 1400px;
  margin: 0 auto;
  width: 100%;
}

.control-panel {
  display: grid;
  gap: 10px;
  margin-bottom: 16px;
}

.search-filter-box {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.management-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.control-panel > * { width: 100%; }

/* ==========================================================================
   7. СТАТУСНІ БЕЙДЖІ
   ========================================================================== */
.badge {
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  display: inline-block;
  white-space: nowrap;
}

.badge-new { background: #fef3c7; color: #92400e; }
.badge-confirmed { background: #e0f2fe; color: #075985; }
.badge-checkedin { background: #e9d5ff; color: #6b21a8; }
.badge-completed { background: #dcfce7; color: #166534; }
.badge-cancelled { background: #fee2e2; color: #991b1b; }
.badge-no_show { background: #f3e8ff; color: #7e22ce; }
.child-badge { display: inline-block; padding: 2px 6px; border-radius: 4px; background: #fef08a; color: #854d0e; font-size: .72rem; font-weight: 700; white-space: nowrap; }

/* ==========================================================================
   8. ДЕСКТОПНА ТАБЛИЦЯ
   ========================================================================== */
.table-wrapper {
  max-width: 100%;
  overflow-x: auto;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: var(--card-shadow);
}

table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

th, td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
  font-size: 0.85rem;
  vertical-align: middle;
}

th {
  background: var(--surface-subtle);
  color: var(--muted);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  position: sticky;
  top: var(--app-header-height, 53px);
  z-index: 25;
  box-shadow: 0 1px 0 var(--border);
}

.column-sort { width: 100%; padding: 0; justify-content: flex-start; color: inherit; background: transparent; border: 0; border-radius: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; white-space: nowrap; }
.column-sort:hover, .column-sort:focus-visible { color: var(--primary); background: transparent; opacity: 1; }
.sort-indicator { display: inline-block; min-width: 1em; color: var(--primary); font-size: .9rem; }
th[aria-sort="ascending"] .sort-indicator::after { content: "↑"; }
th[aria-sort="descending"] .sort-indicator::after { content: "↓"; }

tr:last-child td {
  border-bottom: none;
}

tr:hover {
  background: var(--surface-subtle);
}

.orders-table-wrapper > table > thead th {
  position: static;
}

.profile-menu { position: relative; }
.profile-menu-trigger { display:flex;align-items:center;gap:8px;max-width:min(70vw,320px); }
.profile-menu-trigger #user-pill { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.profile-avatar { line-height:1; }
.profile-menu-panel { position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:200px;padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--card-shadow); }
.profile-menu-panel:not(.hidden) { display:grid;gap:4px; }
.profile-menu-panel button { width:100%;text-align:left;background:transparent;color:var(--text); }
.profile-menu-panel button:hover,.profile-menu-panel button:focus-visible { background:var(--bg); }
@media (max-width: 420px) { header{padding-inline:10px}.profile-menu-trigger{max-width:58vw}.profile-avatar{display:none} }
.order-row { cursor:pointer; }
.bulk-orders { display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface); }
.bulk-orders label { display:flex;align-items:center;gap:7px;font-weight:600; }
.bulk-orders select { width:auto;min-width:120px; }
.bulk-orders #orders-selection-count { margin-inline:8px;font-weight:700; }
.bulk-orders-hint { color:var(--muted);font-size:.82rem; }
.bulk-orders button { min-height:36px; }
.order-selection { width:18px;height:18px;cursor:pointer;accent-color:var(--primary); }
@media(max-width:700px) { .bulk-orders { align-items:stretch; } .bulk-orders button { flex:1 1 auto; } }
.order-row:focus-visible { outline:2px solid var(--primary);outline-offset:-2px; }
.empty-table { text-align:center;padding:20px;color:var(--muted); }
.patient-meta { color:var(--muted); }
.contrast-label { color:var(--danger);font-weight:600; }
.phone-copy { padding:0;border:0;background:transparent;color:var(--primary);font:inherit;font-weight:600;transition:color .18s ease; }
.phone-copy:hover { background:transparent;text-decoration:underline; }
.phone-copy.copied,.copy-feedback { color:#15803d; }
.copy-feedback { display:block;min-height:1.1em;margin-top:2px;font-size:.7rem;font-weight:700; }
.row-menu-button { min-width:36px;padding:5px 9px;font-size:1.1rem; }
.row-actions { position:relative;display:inline-block; }
.row-actions-menu { display:none;position:absolute;top:calc(100% + 5px);right:0;z-index:120;min-width:190px;padding:5px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 12px 28px rgba(15,23,42,.2); }
.row-actions.open .row-actions-menu { display:block; }
.row-actions.open-up .row-actions-menu { top:auto;bottom:calc(100% + 5px); }
.row-actions-menu button { display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:0;border-radius:5px;background:transparent;color:var(--text);text-align:left;font-weight:600;white-space:nowrap; }
.row-actions-menu button:hover:not(:disabled),.row-actions-menu button:focus-visible { background:var(--surface-subtle);color:var(--primary); }
.row-actions-menu button:disabled { cursor:not-allowed;color:var(--muted);opacity:.62; }
.row-actions-menu button small { font-size:.65rem;font-weight:600; }
.row-actions-menu .danger-menu-action { color:var(--danger); }
.result-status { display:inline-block;padding:3px 7px;border-radius:4px;font-size:.72rem;font-weight:700;white-space:nowrap; }
.result-not_ready { background:#f1f5f9;color:#475569; }.result-ready { background:#dbeafe;color:#1d4ed8; }.result-issued { background:#dcfce7;color:#166534; }

.quick-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.quick-actions a,
.quick-actions button {
  padding: 3px 7px;
  font-size: 0.75rem;
  border-radius: 4px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}

.btn-viber { background: #7360f2; color: #fff; }
.btn-tg { background: #229ed9; color: #fff; }

/* ==========================================================================
   9. МОБІЛЬНІ КАРТКИ
   ========================================================================== */
.mobile-cards {
  display: none;
  flex-direction: column;
  gap: 10px;
}

.order-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-shadow: var(--card-shadow);
  cursor: pointer;
}
.order-card:hover { border-color:var(--primary); }
.order-card:focus-visible { outline:2px solid var(--primary);outline-offset:2px; }

.order-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--border);
  padding-bottom: 8px;
  gap: 10px;
}

.order-card-header strong { min-width:0;overflow-wrap:anywhere; }
.order-card-fields { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px; }
.order-card-field { display:grid;gap:3px;min-width:0;overflow-wrap:anywhere;font-size:.85rem; }
.order-card-field-label { color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase; }
.order-card-footer { display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px solid var(--border); }

/* ==========================================================================
   10. ПАГІНАЦІЯ
   ========================================================================== */
.pagination-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
  font-size: 0.85rem;
  color: var(--muted);
  flex-wrap: wrap;
  gap: 10px;
}

/* ==========================================================================
   11. МОДАЛЬНЕ ВІКНО РЕДАГУВАННЯ / СТВОРЕННЯ
   ========================================================================== */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 60;
  padding: 12px;
}

.modal {
  background: var(--surface);
  border: 1px solid var(--border);
  width: 100%;
  max-width: 820px;
  max-height: 90vh;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  box-shadow: var(--card-shadow);
}

.modal-header {
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.modal-body {
  padding: 18px 20px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.modal-footer {
  padding: 12px 20px;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  background: var(--surface-subtle);
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
}

.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.form-grid-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 8px;
}

.form-group label {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--muted);
}
.duration-combobox { position:relative; }
.duration-combobox input { box-sizing:border-box;width:100%;padding-right:38px; }
.duration-toggle { position:absolute;top:1px;right:1px;width:36px;height:calc(100% - 2px);padding:0;border:0;border-left:1px solid var(--border);border-radius:0 5px 5px 0;background:transparent;color:var(--muted);font-size:1.25rem; }
.duration-toggle:hover,.duration-combobox.open .duration-toggle { background:var(--surface-subtle);color:var(--primary); }
.duration-options { position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:110;overflow:hidden;padding:4px;border:1px solid var(--border);border-radius:7px;background:var(--surface);box-shadow:0 10px 24px rgba(15,23,42,.18); }
.duration-options button { display:block;width:100%;padding:8px 10px;border:0;border-radius:4px;background:transparent;color:var(--text);text-align:left;font-weight:500; }
.duration-options button:hover,.duration-options button:focus-visible { background:var(--surface-subtle);color:var(--primary); }
#duration-help { color:var(--muted);font-size:.72rem;line-height:1.3; }

.fieldset {
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 12px;
  background: var(--surface-subtle);
}

.fieldset legend {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--primary);
  padding: 0 6px;
}
.price-field-group { position:relative; }
.price-info-button { display:inline;padding:0;border:0;background:transparent;color:var(--primary);font-size:1rem; }
.price-info-button:hover { background:transparent; }
.payment-section{align-items:start}.payment-section>.form-group{width:100%;height:100%;align-self:stretch}.payment-section>.form-group>label{display:flex;min-height:20px;align-items:center;line-height:20px}.payment-section>.form-group>input,.payment-section>.form-group>select{box-sizing:border-box;width:100%;height:40px}.payment-section .price-info-button{display:inline-flex;width:18px;height:18px;flex:0 0 18px;align-items:center;justify-content:center;line-height:1;vertical-align:middle}
.price-breakdown { position:absolute;left:0;bottom:calc(100% + 8px);z-index:100;box-sizing:border-box;width:max-content;min-width:300px;max-width:min(420px,calc(100vw - 48px));padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 10px 28px rgba(15,23,42,.2); }
.price-breakdown::after { content:"";position:absolute;left:28px;top:100%;border:7px solid transparent;border-top-color:var(--border); }
.price-breakdown div { display:flex;justify-content:space-between;gap:18px;padding:4px 0; }
.price-breakdown span { min-width:0;overflow-wrap:anywhere; }
.price-breakdown strong { flex:none;white-space:nowrap; }
.price-breakdown-total { margin-top:4px;border-top:1px solid var(--border); }

/* ==========================================================================
   12. АДАПТИВНІСТЬ ДЛЯ СМАРТФОНІВ (MEDIA QUERIES)
   ========================================================================== */
@media (max-width: 1120px) {
  .table-wrapper {
    display: none;
  }

  .mobile-cards {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  .control-panel > * { width:100%; }
  .search-filter-box { display:grid;grid-template-columns:repeat(4,minmax(0,1fr)); }
  .search-filter-box #filter-search { grid-column:span 2;min-width:0; }
  .search-filter-box > * { min-width:0;width:100%; }
  .management-actions { display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); }
  .management-actions > * { width:100%; }
}

@media (max-width: 860px) {

  .form-grid-2,
  .form-grid-3 {
    grid-template-columns: 1fr;
  }
  header {
    padding: 10px 14px;
  }

  .brand-logo {
    height: clamp(36px, 11vw, 44px);
  }

  main {
    padding: 12px;
  }

  .modal {
    max-height: 95vh;
  }
}

.page-size-control { display: inline-flex; align-items: center; gap: 8px; }
.page-size-control select { width: auto; min-width: 72px; padding: 7px 30px 7px 10px; }
.addons-section { margin-bottom: 20px; }
.egfr-section { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--border); }
.creatinine-row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.creatinine-row label { display:flex; gap:6px; align-items:center; white-space:nowrap; }
.creatinine-row input[type="number"] { width:145px; }
.creatinine-row select { width:130px; }
.egfr-inputs { margin-top:10px; }
.egfr-result { padding:10px 12px; border-radius:7px; background:var(--surface); border:1px solid var(--border); font-weight:700; }
.egfr-protocol { margin-top:10px; }
.egfr-protocol summary { cursor:pointer; color:var(--primary); font-weight:700; }
.egfr-protocol pre { margin-top:8px; padding:12px; border-radius:7px; background:var(--surface); white-space:pre-wrap; line-height:1.45; font:0.8rem/1.45 ui-monospace,Consolas,monospace; }
.egfr-badge { display:inline-block; margin-top:5px; padding:3px 7px; border-radius:5px; font-size:.72rem; font-weight:700; text-transform:none; }
.egfr-safe { background:#dcfce7; color:#166534; }.egfr-warning { background:#fef3c7; color:#92400e; }.egfr-critical { background:#fee2e2; color:#991b1b; }
.egfr-missing { background:#f1f5f9; color:#475569; animation:egfr-pulse 1.6s ease-in-out infinite; }
.egfr-scale-wrap { position:relative; margin:38px 8px 8px; }
.egfr-scale { display:grid; grid-template-columns:25% 25% 25% 25%; height:16px; overflow:hidden; border:1px solid rgba(15,23,42,.3); border-radius:999px; box-shadow:inset 0 1px 2px rgba(15,23,42,.2); }
.egfr-scale .g45 { background:#dc2626; }.egfr-scale .g3 { background:#f59e0b; }.egfr-scale .g2 { background:#a3e635; }.egfr-scale .g1 { background:#16a34a; }
.egfr-pointer { position:absolute; bottom:21px; transform:translateX(-50%); min-width:38px; padding:3px 6px; border-radius:5px; background:#172033; color:#fff; text-align:center; font-size:.72rem; font-weight:700; transition:left .2s ease; }
.egfr-pointer::after { content:''; position:absolute; left:50%; top:100%; transform:translateX(-50%); border:6px solid transparent; border-top-color:#172033; }
.egfr-scale-labels { display:flex; justify-content:space-between; margin-top:4px; color:var(--muted); font-size:.7rem; }
@keyframes egfr-pulse { 50% { opacity:.55; } }

.advanced-filters { margin: 0 0 16px; padding: 14px; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; }
.filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 10px; }
.advanced-filters .form-group { margin: 0; }
.flag-filters { display: flex; flex-wrap: wrap; gap: 10px 18px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); }
.flag-filters label { display: flex; gap: 6px; align-items: center; font-size: .85rem; cursor: pointer; }

.pagination-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.pagination-controls button {
  min-width: 38px;
  padding: 7px 10px;
}

.pagination-controls .pagination-direction {
  min-width: auto;
}

.pagination-controls .pagination-page.active {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
  cursor: default;
}

.pagination-controls button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.database-modal { width:min(1480px,calc(100vw - 32px));max-width:1480px; }
.services-modal { max-width: 1080px; }
.reports-modal { max-width: 920px; }
.users-modal { max-width: 1050px; }
.user-admin-section { border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px;background:var(--surface-subtle); }
.user-admin-section h4 { margin:0 0 12px; }
.user-create-grid { display:grid;grid-template-columns:2fr 2fr 1fr auto;gap:12px;align-items:end; }
.section-heading,.user-card-head,.user-controls,.user-actions { display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap; }
.section-heading h4 { margin-bottom:3px; }.section-heading small,.user-card small { display:block;color:var(--muted);margin-top:4px; }
.permission-grid { display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-top:12px; }
.permission-grid label,.inherit-toggle { display:flex;gap:7px;align-items:center; }
.users-list { display:grid;gap:12px; }.user-card { border:1px solid var(--border);border-radius:9px;padding:14px;background:var(--surface); }
.user-controls { justify-content:flex-start;margin:12px 0; }.user-controls label { display:flex;align-items:center;gap:8px; }
.status-badge { border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:800; }.status-badge.active { color:#166534;background:#dcfce7; }.status-badge.inactive { color:#991b1b;background:#fee2e2; }
.user-actions { justify-content:flex-end;margin-top:14px; }
.save-user-permissions { margin-top:12px; }
@media(max-width:760px){.user-create-grid,.permission-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start}.section-heading button{width:100%}}
.report-period { display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end; }
.report-period .form-group { margin-bottom:0; }
.report-period .form-group>input,
.report-period .form-group>select,
.report-period .form-group>.dpi,
.report-period .form-group>.dpi>.dpi__input { width:100%;height:42px; }
.report-toggle { display:flex;align-items:center;gap:8px;min-height:42px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface); }
.kpi-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0; }
.kpi-grid article { position:relative;overflow:hidden;border:1px solid var(--border);border-radius:14px;padding:18px;background:var(--surface);transition:opacity .2s ease; }
.kpi-grid small { display:block;color:var(--muted);margin-bottom:8px; }.kpi-grid strong { font-size:1.5rem;color:var(--primary); }
.kpi-grid.is-loading article { opacity:.68; }
.kpi-grid.is-loading article::after { content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);animation:report-shimmer 1.1s infinite; }
@keyframes report-shimmer { to { transform:translateX(100%); } }
.report-details { display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:14px;border-radius:12px;background:var(--surface); }.report-details h4 { grid-column:1/-1;margin:10px 0 0; }
.report-actions { display:flex;gap:10px;justify-content:flex-end;margin-top:18px; }.loading { cursor:wait;opacity:.75; }
@media(max-width:700px){.report-period,.kpi-grid,.report-details{grid-template-columns:1fr}.report-details h4{grid-column:auto}.report-actions{flex-direction:column}}
.service-check-list { display: grid; gap: 8px; }
.service-check { display: flex; align-items: flex-start; gap: 7px; padding: 8px; border-radius: 6px; background: var(--surface); cursor: pointer; }
.questionnaire-card { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle); }
.questionnaire-card.missing { background:#fefce8;border-color:#fde68a; }.questionnaire-card.generated { background:#eff6ff;border-color:#bfdbfe; }.questionnaire-card.signed { background:#f0fdf4;border-color:#bbf7d0; }
.questionnaire-card strong,.questionnaire-card span { display:block; }.questionnaire-card span { margin-top:6px; }
.questionnaire-card-signed-control { display:flex;align-items:center;gap:8px;margin-top:10px;font-weight:700;cursor:pointer; }
.questionnaire-status { display:inline-block;box-sizing:border-box;width:auto;max-width:100%;border-radius:12px;padding:5px 10px;font-size:.8rem;font-weight:800;line-height:1.2;text-align:center;white-space:normal; }
.questionnaire-status.missing { color:#854d0e;background:#fef9c3;border:1px solid #fde68a; }
.questionnaire-status.generated { color:#1e40af;background:#dbeafe;border:1px solid #bfdbfe; }
.questionnaire-status.signed { color:#166534;background:#dcfce7;border:1px solid #bbf7d0; }
.questionnaire-modal { max-width:1100px; }.questionnaire-modal-body { background:#e5e7eb;padding-bottom:22px; }.questionnaire-sheet { box-sizing:border-box;width:min(100%,210mm);margin:auto;padding:12mm;background:#fff;color:#111;box-shadow:0 4px 20px rgba(0,0,0,.12);font:14px/1.4 Arial,sans-serif; }
.questionnaire-sheet h1 { color:#000;text-align:center;font-size:18px;line-height:1.25;margin:0 0 24px; }.questionnaire-sheet p { text-align:justify; }
.questionnaire-fields { display:grid;grid-template-columns:1fr 1fr;gap:12px 22px; }.questionnaire-field { display:flex;align-items:flex-end;gap:10px;margin:10px 0;min-width:0; }.questionnaire-field>span { font-weight:700;white-space:nowrap; }.questionnaire-field input,.questionnaire-field textarea { flex:1;min-width:0;border:0;border-bottom:1px solid #111;border-radius:0;background:transparent;padding:3px; }.questionnaire-wide { grid-column:1/-1;flex-wrap:wrap; }.questionnaire-wide>span { white-space:normal; }.questionnaire-wide textarea { flex-basis:100%;resize:vertical;overflow-wrap:anywhere; }
.questionnaire-sheet table { width:100%;border-collapse:collapse;margin:18px 0;outline:1px solid #777;outline-offset:-1px; }.questionnaire-sheet th,.questionnaire-sheet td { border:1px solid #777;padding:7px; }.questionnaire-sheet th { position:static;box-shadow:none; }.questionnaire-sheet th:nth-child(n+2),.questionnaire-sheet td:nth-child(n+2) { width:48px;text-align:center; }.questionnaire-detail { display:flex;align-items:end;gap:8px;margin-top:5px;font-size:.9em; }.questionnaire-detail input { flex:1;border:0;border-bottom:1px solid #777; }
.questionnaire-inline-field { display:inline-block;width:240px;max-width:100%;border:0;border-bottom:1px solid #111;border-radius:0;background:transparent;padding:0 4px;font:inherit; }
.questionnaire-signature { display:flex;justify-content:space-between;gap:16px;margin-top:28px; }.questionnaire-footer { align-items:center; }.questionnaire-signed-control { display:flex;align-items:center;gap:8px;font-weight:800; }.footer-spacer { flex:1; }
.questionnaire-print-frame { position:fixed;width:0;height:0;border:0;visibility:hidden;pointer-events:none; }
@media(max-width:760px){.questionnaire-card,.questionnaire-signature{align-items:stretch;flex-direction:column}.questionnaire-fields{grid-template-columns:1fr}.questionnaire-wide{grid-column:auto}.questionnaire-footer{flex-wrap:wrap}.questionnaire-footer .footer-spacer{display:none}.questionnaire-footer button{flex:1}.questionnaire-sheet{padding:18px 12px}.questionnaire-field{align-items:stretch;flex-direction:column}}
.catalog-editor-intro { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:4px 2px 10px; }
.catalog-editor-intro strong,.catalog-editor-intro small { display:block; }.catalog-editor-intro strong { color:var(--primary); font-size:1.25rem; }.catalog-editor-intro small { color:var(--muted); margin-top:4px; }
.services-list { display:grid; gap:20px; }
.catalog-category { border:1px solid var(--border); border-radius:9px; overflow:hidden; background:var(--surface); transition:background .15s; }
.catalog-category-header { display:grid; grid-template-columns:minmax(240px,1fr) auto; gap:12px; align-items:center; padding:11px 14px; border-left:5px solid var(--primary); background:var(--surface-subtle); }
.catalog-category-name { border:0; padding:4px 6px; color:var(--primary); background:transparent; font-size:1rem; font-weight:800; text-transform:uppercase; }
.catalog-category-name:focus { background:var(--surface); }
.catalog-price-list { display:grid; }
.catalog-service-row { display:grid; grid-template-columns:minmax(260px,1fr) 130px 105px auto; gap:12px; align-items:center; padding:9px 14px; border-top:1px solid var(--border); transition:background .15s; }
.catalog-service-row>input { width:100%; border-color:transparent; background:transparent; }
.catalog-service-row>input:focus { border-color:var(--primary); background:var(--surface); }
.catalog-price-input,.catalog-duration-input { display:flex; align-items:center; gap:5px; margin:0; color:var(--muted); white-space:nowrap; }
.catalog-price-input input,.catalog-duration-input input { width:78px; text-align:right; font-weight:700; color:var(--primary); }
.catalog-duration-input input { width:58px; }
.catalog-row-actions { display:flex; gap:7px; justify-content:flex-end; }
.catalog-row-actions button { white-space:nowrap; }
.catalog-changed,.catalog-changed .catalog-category-header { background:#f4f1df; }
:root[data-theme="dark"] .catalog-changed,:root[data-theme="dark"] .catalog-changed .catalog-category-header { background:#3b3a31; }
.unsaved-label { margin-right:auto; color:var(--muted); font-weight:700; }
.confirm-overlay { z-index:80; }.confirm-modal { max-width:520px; }.confirm-modal p { line-height:1.5; }.confirm-modal .modal-footer { flex-wrap:wrap; }

/* Toast notifications */
.toast-container {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 100;
  width: min(380px, calc(100vw - 32px));
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}

.toast {
  position: relative;
  overflow: hidden;
  pointer-events: auto;
  color: #fff;
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .24);
  transition: opacity .2s ease, transform .2s ease;
}

.toast--success { background: #15803d; }
.toast--warning { background: #b45309; }
.toast--error { background: #b91c1c; }

.toast__message {
  padding: 14px 48px 17px 16px;
  line-height: 1.4;
  font-weight: 600;
}

.toast__close {
  position: absolute;
  top: 7px;
  right: 7px;
  display: grid;
  width: 32px;
  height: 32px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #fff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.toast__close:hover { background: rgba(255, 255, 255, .18); }
.toast__close:focus-visible { outline: 2px solid #fff; outline-offset: 1px; }

.toast__progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  background: rgba(255, 255, 255, .8);
  transform-origin: left center;
  animation-name: toast-countdown;
  animation-timing-function: linear;
  animation-fill-mode: forwards;
}

.toast--leaving { opacity: 0; transform: translateX(16px); }

@keyframes toast-countdown {
  from { transform: scaleX(1); }
  to { transform: scaleX(0); }
}

@media (prefers-reduced-motion: reduce) {
  .toast__progress { animation-timing-function: steps(10); }
  .toast { transition: none; }
}
.backup-notice { padding: 12px; border-left: 4px solid #d97706; background: var(--surface-subtle); line-height: 1.5; }
.backup-section { border: 1px solid var(--border); border-radius: 8px; padding: 16px; }
.backup-section h4 { margin: 0 0 6px; }
.backup-section p { color: var(--muted); margin: 0 0 14px; }
.backup-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.backup-summary { display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:12px 0; }
.backup-summary span { padding:10px;background:var(--surface-subtle);border-radius:6px; }
.backup-catalog { display:block!important;margin:12px 0;max-height:360px;overflow-y:auto;overflow-x:hidden; }
.backup-catalog table { width:100%;table-layout:auto;font-size:.82rem; }
.backup-catalog th,.backup-catalog td { padding:8px 6px;white-space:nowrap; }
.backup-catalog th { top:0;z-index:2;background:var(--surface-subtle); }
.backup-catalog th:nth-child(3),.backup-catalog td:nth-child(3) { white-space:normal;overflow-wrap:anywhere;min-width:190px; }
@media (max-width: 1000px) {
  .database-modal { width:calc(100vw - 16px);max-width:none; }
  .backup-catalog { max-height:55vh;border:0;background:transparent;box-shadow:none; }
  .backup-catalog table,.backup-catalog tbody { display:block;width:100%; }
  .backup-catalog thead { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap; }
  .backup-catalog tbody { display:grid;gap:12px; }
  .backup-catalog tr { position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--border);border-radius:9px;background:var(--surface);overflow:hidden; }
  .backup-catalog td { display:grid;grid-template-columns:minmax(86px,.8fr) minmax(0,1.2fr);gap:8px;padding:8px 10px;white-space:normal;overflow-wrap:anywhere; }
  .backup-catalog td::before { content:attr(data-label);color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase; }
  .backup-catalog td:nth-child(3) { min-width:0; }
  .backup-catalog .backup-select-cell { position:absolute;right:8px;top:8px;z-index:1;display:block;border:0;padding:4px; }
  .backup-catalog .backup-select-cell::before,.backup-catalog .backup-download-cell::before { content:none; }
  .backup-catalog .backup-download-cell { display:block;grid-column:1/-1;padding:10px; }
  .backup-catalog .backup-download-cell button { width:100%; }
}

@media (max-width: 650px) {
  .mobile-cards { grid-template-columns:minmax(0,1fr); }
  .search-filter-box { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .search-filter-box #filter-search { grid-column:1/-1; }
}

@media (max-width: 480px) {
  .search-filter-box { grid-template-columns:minmax(0,1fr); }
  .order-card-fields { grid-template-columns:minmax(0,1fr); }
  .order-card-header { align-items:flex-start; }
}
@media (max-width: 620px) {
  .backup-catalog tr { grid-template-columns:1fr; }
  .backup-catalog .backup-download-cell { grid-column:1; }
}
.backup-history { display:grid;gap:6px;margin-top:10px;font-size:.9rem; }
.backup-mode, .backup-confirm { display: block; margin: 12px 0; }
.danger-text { color: #b91c1c; }
.backup-status { min-height: 24px; margin-top: 12px; font-weight: 600; }
.backup-drop-zone { display:grid; gap:8px; place-items:center; padding:28px 16px; margin:12px 0; border:2px dashed var(--border); border-radius:8px; text-align:center; cursor:pointer; }
.backup-drop-zone.dragover { border-color:var(--primary); background:var(--surface-subtle); }
.backup-drop-zone strong { color:var(--primary); }
.button-spinner { display:inline-block; width:14px; height:14px; margin-right:7px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:spin .7s linear infinite; vertical-align:-2px; }
#database-import-progress { width:100%; margin-top:16px; }
.restore-preview { display:grid; gap:12px; margin-top:16px; }
.restore-modes { display:flex; gap:16px; flex-wrap:wrap; border:1px solid var(--border); border-radius:8px; }
.restore-table-head,.restore-table-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px; align-items:center; }
.restore-table-row { grid-template-columns:auto minmax(0,1fr) auto; padding:9px; border-bottom:1px solid var(--border); }
.restore-table-row small { color:var(--muted); text-align:right; }
.restore-table-list { max-height:280px; overflow:auto; border:1px solid var(--border); border-radius:8px; }
.restore-warnings:not(:empty),.restore-effective { padding:10px; border-radius:6px; background:var(--surface-subtle); }
.restore-warnings { color:#b45309; }
.restore-job-status { margin-top:8px; color:var(--muted); }
@keyframes spin { to { transform:rotate(360deg); } }

.pagination-ellipsis {
  min-width: 24px;
  text-align: center;
}

@media (max-width: 600px) {
  .catalog-editor-intro,.catalog-category-header { grid-template-columns:1fr; display:grid; }
  .catalog-service-row { grid-template-columns:1fr 1fr; }
  .catalog-service-row>input { grid-column:1/-1; }
  .catalog-row-actions { justify-content:flex-start; flex-wrap:wrap; }
  .pagination-bar {
    justify-content: center;
  }

  .pagination-controls {
    justify-content: center;
  }

  .pagination-controls .pagination-direction {
    order: 2;
  }
}
/* Audit log */
.audit-modal{position:relative;width:min(1500px,96vw);max-width:1500px;height:min(920px,94vh)}
.audit-export-actions{display:flex;justify-content:flex-end;gap:8px;margin:0 0 10px}
.audit-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));column-gap:18px;row-gap:16px;align-items:end;margin-bottom:18px}.audit-filters label{display:grid;gap:7px;min-width:0;margin:0;font-size:.82rem}.audit-filters label>input,.audit-filters label>select{width:100%;min-width:0}.audit-check{display:flex!important;align-items:center;gap:8px;padding:9px 0}.audit-check>input{width:auto}.audit-filter-actions{display:flex;gap:10px;padding-top:4px}.audit-status,.audit-empty{padding:12px;color:var(--text-muted,#64748b)}.audit-table-wrap{overflow:auto;max-height:48vh}.audit-table{min-width:1000px}.audit-table th{top:0;z-index:1}.audit-table tr.audit-warning{background:rgba(245,158,11,.1)}.audit-table tr.audit-critical{background:rgba(220,38,38,.14);border-left:4px solid #dc2626}.audit-result{font-weight:700}.audit-result-denied,.audit-result-failure{color:#dc2626}.audit-result-success,.audit-result-completed{color:#15803d}.audit-pagination{display:flex;justify-content:center;align-items:center;gap:14px;padding:14px}.audit-details{position:absolute;inset:3%;z-index:30;overflow:auto;padding:20px;border:1px solid var(--border,#cbd5e1);border-radius:12px;background:var(--surface,#fff);box-shadow:0 20px 50px rgba(0,0,0,.3)}.audit-details-head{display:flex;justify-content:space-between;align-items:center}.audit-meta,.audit-data dl{display:grid;grid-template-columns:minmax(130px,220px) 1fr;gap:6px 14px}.audit-meta dt,.audit-data dt{font-weight:700}.audit-meta dd,.audit-data dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.audit-data{padding:14px;border:1px solid var(--border,#cbd5e1);border-radius:9px}.audit-data-before{background:#fff1f2;border-color:#fecdd3}.audit-data-after{background:#f0fdf4;border-color:#bbf7d0}:root[data-theme="dark"] .audit-data-before{background:#451a1f;border-color:#881337}:root[data-theme="dark"] .audit-data-after{background:#142e1d;border-color:#166534}.audit-data,.audit-related{margin-top:18px}.audit-related{display:grid;gap:7px}.audit-related-item{text-align:left;background:transparent;color:inherit;border:1px solid var(--border,#cbd5e1)}
@media(max-width:700px){.audit-modal{width:100vw;height:100vh;border-radius:0}.audit-filters{grid-template-columns:1fr}.audit-details{inset:0;border-radius:0}.audit-meta,.audit-data dl{grid-template-columns:1fr}.audit-meta dd,.audit-data dd{margin-bottom:8px}}

/* Appointment calendar */
.calendar-list-hidden{display:none!important}.calendar-section{display:grid;gap:14px}.calendar-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-toolbar input[type=date]{width:auto}.calendar-toolbar input[type=search]{min-width:210px;flex:1}.calendar-view-switch{display:flex}.calendar-view-switch button{border-radius:0}.calendar-view-switch button:first-child{border-radius:7px 0 0 7px}.calendar-view-switch button:last-child{border-radius:0 7px 7px 0}.calendar-view-switch button.active{background:var(--primary);color:#fff}.calendar-status-filter{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--border);border-radius:10px}.calendar-status-filter legend{padding:0 6px;font-weight:700}.calendar-status-filter label{display:flex;align-items:center;gap:4px;margin:0}.calendar-status-filter input{accent-color:var(--primary)}#calendar-root{min-height:620px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.fc{--fc-border-color:var(--border);--fc-page-bg-color:var(--surface);--fc-neutral-bg-color:var(--surface-subtle);--fc-list-event-hover-bg-color:var(--surface-subtle);color:var(--text)}.fc .fc-timegrid-now-indicator-line{border-color:#ef4444;border-width:2px}.fc .fc-timegrid-now-indicator-arrow{border-left-color:#ef4444}.fc .fc-event-main{display:grid;gap:1px;padding:2px 4px;overflow:hidden}.fc .fc-event-main strong,.fc .fc-event-main span,.fc .fc-event-main small{display:block;overflow:hidden;text-overflow:ellipsis}.fc .fc-event-main small{font-size:.72rem}.fc .fc-bg-event{opacity:1}#calendar-unscheduled{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}#calendar-unscheduled h3{margin:0 0 10px}.calendar-unscheduled-item{width:100%;margin:4px 0;padding:10px 12px;text-align:left;background:var(--surface-subtle);color:var(--text);border:1px solid var(--border)}.calendar-empty{margin:0;color:var(--muted)}
@media(max-width:700px){.calendar-toolbar>*{flex:1 1 auto}.calendar-toolbar .icon-btn{flex:0 0 auto}.calendar-view-switch{order:3;width:100%}.calendar-view-switch button{flex:1}.calendar-status-filter{align-items:flex-start}.fc .fc-toolbar-title{font-size:1rem}#calendar-root{padding:4px;min-height:540px}.fc .fc-col-header-cell-cushion{font-size:.75rem}.fc .fc-timegrid-slot-label{font-size:.72rem}}
.calendar-day-summary{display:grid;gap:2px;margin:22px 3px 3px;padding:4px;border-radius:5px;background:color-mix(in srgb,var(--primary) 10%,transparent);font-size:.7rem;line-height:1.2}.calendar-day-summary span,.calendar-day-summary small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-day-summary.day-off{background:rgba(100,116,139,.18);color:var(--muted)}.calendar-day-summary.full{background:rgba(220,38,38,.16);color:#b91c1c}
.calendar-event-saving{opacity:.68;cursor:wait;pointer-events:none}
.calendar-event-outside{outline:3px solid #dc2626!important;outline-offset:-2px}.calendar-event-outside::after{content:'⚠';position:absolute;right:3px;top:1px}.fc-timeGridWeek-view .fc-scroller{overflow-x:auto!important}.fc-timeGridWeek-view .fc-timegrid-cols table,.fc-timeGridWeek-view .fc-col-header{min-width:760px}
.calendar-unscheduled-item{cursor:grab}.calendar-unscheduled-item:active{cursor:grabbing}
.calendar-section{min-height:520px;grid-template-rows:auto auto auto auto auto;overflow:visible}#calendar-root{min-height:320px;height:calc(100vh - 350px);overflow:auto;resize:none}.calendar-height-resizer{height:14px;display:grid;place-items:center;cursor:ns-resize;touch-action:none}.calendar-height-resizer span{width:72px;height:5px;border-radius:5px;background:var(--border)}.calendar-height-resizer:hover span,.calendar-height-resizer:focus-visible span{background:var(--primary)}.calendar-zoom{display:flex}.calendar-view-switch button.active{box-shadow:inset 0 0 0 2px #fff,0 0 0 2px var(--primary);font-weight:800}.fc-daygrid-day-frame{min-width:0;overflow:hidden}.fc-daygrid-day-events{max-width:100%;overflow:hidden}.fc-daygrid-event{max-width:100%;overflow:hidden}.fc-daygrid-event .fc-event-main{min-width:0}.fc-daygrid-event-harness{max-width:100%}.calendar-day-summary{max-width:calc(100% - 6px);overflow:hidden}.fc-bg-event .fc-event-main{display:none!important}.fc .fc-scrollgrid-section-header>*{position:sticky;top:0;z-index:8;background:var(--surface)}.fc .fc-col-header-cell{background:var(--surface);box-shadow:0 1px 0 var(--border)}
@media(max-width:700px){.calendar-section{min-height:480px}.fc-dayGridMonth-view .calendar-day-summary small{display:none}.fc-dayGridMonth-view .calendar-day-summary{margin-top:18px;padding:2px;font-size:.62rem}.fc-dayGridMonth-view .fc-daygrid-day-number{font-size:.72rem}}
#calendar-unscheduled-list{max-height:120px;overflow:auto}
.calendar-height-resizer{height:5px}.calendar-height-resizer span{width:40px;height:2px}#calendar-root{box-sizing:border-box}
.calendar-section{grid-template-columns:minmax(0,1fr) minmax(240px,300px)}.calendar-toolbar,.calendar-status-filter{grid-column:1/-1}#calendar-root{grid-column:1;grid-row:3}.calendar-height-resizer{grid-column:1;grid-row:4}#calendar-unscheduled{grid-column:2;grid-row:3/5;display:flex;min-height:0;max-height:1200px;flex-direction:column;overflow:hidden}#calendar-unscheduled-list{display:grid;gap:7px;max-height:none;overflow-y:auto;overscroll-behavior:contain}.calendar-unscheduled-item{display:grid;gap:4px;margin:0}.calendar-unscheduled-item strong,.calendar-unscheduled-item span,.calendar-unscheduled-item small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-unscheduled-item span{font-size:.82rem}.calendar-unscheduled-item small{color:var(--muted)}
@media(max-width:900px){.calendar-section{grid-template-columns:minmax(0,1fr)}.calendar-toolbar,.calendar-status-filter,#calendar-root,.calendar-height-resizer,#calendar-unscheduled{grid-column:1}#calendar-unscheduled{grid-row:auto;max-height:260px}}
#calendar-unscheduled-list{flex:1;min-height:0;align-content:start}
.calendar-unscheduled-item{grid-template-columns:minmax(0,1fr);justify-content:stretch;justify-items:start;text-align:left}.calendar-unscheduled-item strong,.calendar-unscheduled-item span,.calendar-unscheduled-item small{width:100%;text-align:left}
#calendar-unscheduled{grid-row:3;box-sizing:border-box}
@media(max-width:900px){#calendar-unscheduled{grid-row:5}}
.order-external-change{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px;border:1px solid #f59e0b;border-radius:8px;background:#fffbeb;color:#92400e}.order-external-change span{font-weight:700}:root[data-theme="dark"] .order-external-change{background:#451a03;color:#fde68a}

/* Schedule settings */
.schedule-settings-section{display:grid;gap:16px}.schedule-settings-body{display:grid;gap:26px}.schedule-settings-body>section{padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.schedule-numeric-settings,.schedule-period{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.schedule-numeric-settings label{max-width:130px}.schedule-weekdays{display:grid;gap:8px;margin:14px 0}.schedule-weekday{display:grid;grid-template-columns:minmax(145px,1fr) 110px 110px minmax(280px,2fr) auto;gap:8px;align-items:start;padding:10px;border:1px solid var(--border);border-radius:8px}.schedule-weekday label{margin:0}.schedule-day-toggle{padding-top:11px}.schedule-breaks{display:grid;gap:6px}.schedule-break{display:grid;grid-template-columns:95px 95px minmax(120px,1fr) 38px;gap:5px}.schedule-break input{min-width:0}.schedule-add-break{margin-top:25px;white-space:nowrap}.schedule-exception-form{display:grid;grid-template-columns:150px minmax(190px,1fr) 120px 120px minmax(180px,1fr) auto;gap:9px;align-items:end;margin:14px 0}.schedule-exception-form label{margin:0}.schedule-exception-actions{display:flex;gap:6px}.schedule-exceptions-list{display:grid;gap:7px}.schedule-exception{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:8px}.schedule-exception div{display:grid;gap:3px}.schedule-exception span{color:var(--muted)}
@media(max-width:900px){.schedule-weekday{grid-template-columns:1fr 1fr 1fr}.schedule-breaks{grid-column:1/-1}.schedule-add-break{margin:0}.schedule-exception-form{grid-template-columns:1fr 1fr}.schedule-exception-actions{grid-column:1/-1}}@media(max-width:560px){.schedule-weekday,.schedule-exception-form{grid-template-columns:1fr 1fr}.schedule-day-toggle,.schedule-breaks{grid-column:1/-1}.schedule-break{grid-template-columns:1fr 1fr 38px}.schedule-break [data-break-field="label"]{grid-column:1/3}.schedule-exception{grid-template-columns:1fr 1fr}.schedule-exception div{grid-column:1/-1}}

/* Calendar and schedule adapt to the available content width, including tablets. */
.calendar-section,.schedule-settings-section,.schedule-settings-body,.schedule-settings-body>section{min-width:0}
.calendar-toolbar>*{min-width:0}.calendar-toolbar input[type=search]{min-width:min(210px,100%)}
.schedule-settings-section .section-heading{flex-wrap:wrap;gap:12px}
.schedule-settings-body>section{overflow:hidden}
.schedule-weekday{grid-template-columns:minmax(125px,1fr) minmax(210px,1.2fr) minmax(230px,1fr);align-items:center;min-width:0}
.schedule-day-toggle{padding-top:0}.schedule-hours,.schedule-day-tools{display:flex;align-items:end;gap:8px;min-width:0}.schedule-hours label{flex:1;min-width:0}.schedule-hours input{width:100%;min-width:0}.schedule-day-tools{justify-content:flex-end;flex-wrap:wrap}.schedule-day-tools button{margin:0;white-space:normal}
.schedule-breaks{grid-column:2/-1;min-width:0}.schedule-break{grid-template-columns:minmax(90px,110px) minmax(90px,110px) minmax(100px,1fr) 38px}
.schedule-exception-form{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-exception-form>*{min-width:0}.schedule-exception-form input,.schedule-exception-form select{width:100%;min-width:0}.schedule-exception-actions{grid-column:1/-1}
@media(max-width:1050px){.schedule-weekday{grid-template-columns:minmax(110px,.7fr) minmax(200px,1fr)}.schedule-day-tools{grid-column:1/-1;justify-content:flex-start}.schedule-breaks{grid-column:1/-1}}
@media(max-width:650px){.calendar-toolbar input[type=search]{flex-basis:100%}.calendar-toolbar #calendar-new-order,.calendar-toolbar #calendar-schedule-settings{flex:1 1 45%}.schedule-settings-body>section{padding:12px}.schedule-numeric-settings{width:100%}.schedule-numeric-settings label{flex:1;max-width:none}.schedule-period{width:100%}.schedule-period input{flex:1;min-width:0}.schedule-weekday{grid-template-columns:minmax(0,1fr)}.schedule-day-toggle,.schedule-hours,.schedule-day-tools,.schedule-breaks{grid-column:1}.schedule-break{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 38px}.schedule-break [data-break-field="label"]{grid-column:1/3;grid-row:2}.schedule-break .schedule-remove-break{grid-column:3;grid-row:1}.schedule-exception-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(max-width:420px){.calendar-toolbar #calendar-back-to-list,.calendar-toolbar #calendar-today{flex:1}.calendar-toolbar #calendar-date{flex:1 1 100%}.schedule-exception-form{grid-template-columns:minmax(0,1fr)}.schedule-exception-actions{grid-column:1}.schedule-exception{grid-template-columns:minmax(0,1fr) auto auto}.schedule-exception div{grid-column:1/-1}}

/* Keep a full working week visible without turning each day into a tall card. */
.schedule-settings-section{gap:10px}
.schedule-settings-body{gap:16px}
.schedule-weekdays{gap:5px;margin:10px 0}
.schedule-weekday{grid-template-columns:minmax(135px,1fr) minmax(270px,320px) minmax(220px,1fr);gap:8px;padding:6px 10px;min-height:50px}
.schedule-day-toggle{white-space:nowrap;font-size:.9rem}
.schedule-hours{align-items:center;gap:12px}
.schedule-hours label{display:flex;align-items:center;gap:6px;font-size:.8rem;white-space:nowrap}
.schedule-hours input{height:34px;padding:4px 7px}
.schedule-day-tools{align-items:center;gap:6px}
.schedule-weekday .schedule-day-tools{grid-column:auto;justify-content:flex-end}
.schedule-day-tools button{min-height:32px;padding:4px 9px;font-size:.78rem}
.schedule-breaks:empty{display:none}
.schedule-breaks:not(:empty){grid-column:2/-1;padding:3px 0 2px}
.schedule-break input{height:32px;padding:4px 7px}
.schedule-break button{height:32px;padding:3px 9px}
.schedule-weekday:has([data-field="working"]:not(:checked)) .schedule-hours,.schedule-weekday:has([data-field="working"]:not(:checked)) .schedule-day-tools{display:none}
.schedule-weekday:has([data-field="working"]:not(:checked))::after{content:"Вихідний";grid-column:2/-1;color:var(--muted);font-size:.82rem}
@media(max-width:800px){.schedule-weekday{grid-template-columns:minmax(115px,1fr) minmax(220px,1.4fr)}.schedule-weekday .schedule-day-tools{grid-column:1/-1;justify-content:flex-start}.schedule-breaks:not(:empty){grid-column:1/-1}.schedule-weekday:has([data-field="working"]:not(:checked))::after{grid-column:2}}
@media(max-width:560px){.schedule-weekday{grid-template-columns:minmax(0,1fr);padding:8px}.schedule-day-toggle,.schedule-hours,.schedule-day-tools,.schedule-breaks:not(:empty){grid-column:1}.schedule-hours{justify-content:flex-start}.schedule-hours label{min-width:0}.schedule-hours input{width:100%}.schedule-weekday:has([data-field="working"]:not(:checked))::after{grid-column:1}.schedule-day-tools button{flex:1}}
