:root {
  --bs-body-font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bs-body-color: #171b24;
  --bs-body-bg: #ffffff;
  --bs-primary: #2b72d6;
  --bs-primary-rgb: 43, 114, 214;
  --bs-border-color: #e4e8ef;
  --ink: #171b24;
  --muted: #667085;
  --line: #e4e8ef;
  --blue: #2b72d6;
  --blue-soft: #eef4ff;
}

body { height:100vh; letter-spacing:-.012em; overflow:hidden; }
.public-body { height:auto; min-height:100vh; overflow:auto; }
main.container { max-width: 1180px; }
h1, h2, h3, h4, h5, h6 { color:var(--ink); font-weight:700; letter-spacing:-.04em; }
.app-header { min-height:72px; background:#fff; border-bottom:1px solid var(--line); }
.app-header-inner { min-height:72px; display:flex; align-items:center; gap:2rem; max-width:none; padding-left:2rem; padding-right:2rem; }
.topbar-actions { display:flex; align-items:center; gap:.5rem; margin-left:auto; }
.topbar-actions .btn { white-space:nowrap; }
.topbar-signout { flex:0 0 auto; }
.page-heading { margin-bottom:1.5rem; }
/* A few legacy manager pages still contain this redundant sidebar destination. */
.app-main > a[href="/dashboard"] { display:none; }
.app-main > a[href="/dashboard"] + h1 { margin-top:0 !important; }
.navbar-brand { color:var(--ink) !important; font-size:1.05rem; font-weight:800; letter-spacing:-.04em; }
.navbar-brand span, .workspace-name { color:var(--muted); font-weight:500; }
.workspace-name { font-size:.875rem; }
.shop-header-name { align-items:center; color:var(--ink); display:inline-flex; font-size:1.25rem; font-weight:650; gap:.7rem; }
.shop-header-icon { background:#fff; border:1px solid var(--line); border-radius:50%; height:42px; object-fit:contain; padding:3px; width:42px; }
.customer-details { border-top:1px solid var(--line); padding-top:1rem; }
.customer-details summary { color:var(--blue); cursor:pointer; font-size:.9rem; font-weight:700; list-style:none; width:max-content; }
.customer-details summary::-webkit-details-marker { display:none; }
.customer-details summary::before { content:"+"; display:inline-block; font-size:1.1rem; margin-right:.35rem; }
.customer-details[open] summary::before { content:"−"; }
.customer-details summary span { color:var(--muted); font-weight:400; margin-left:.35rem; }
.client-history-section + .client-history-section { border-top:1px solid var(--line); margin-top:1.25rem; padding-top:1.25rem; }
.client-history-booking { align-items:center; background:#fff; border:1px solid var(--line); border-radius:9px; color:var(--ink); display:flex; gap:1rem; justify-content:space-between; margin-top:.6rem; padding:.85rem .9rem; text-align:left; width:100%; }
.client-history-booking:hover { background:var(--blue-soft); border-color:#bdd3f5; }
.client-history-booking .status { font-size:.67rem; white-space:nowrap; }
.client-booking-chip { font-size:.7rem; letter-spacing:0; white-space:nowrap; }
.client-booking-chip--present { background:#ddf6ec; color:#176649; }
.client-booking-chip--upcoming { background:#e8f1ff; color:#2456a6; }
.top-dashboard { color:var(--muted); font-size:.875rem; font-weight:600; text-decoration:none; }
.top-dashboard:hover { color:var(--blue); }
.hero { background:#fff; color:var(--ink); border:0; border-bottom:1px solid var(--line); border-radius:0; padding-left:0 !important; }
.hero p { color:var(--muted); font-size:1.1rem; max-width:650px; }
.card { background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 1px 2px rgba(16,24,40,.025); transition:box-shadow .18s ease, transform .18s ease; }
.card:hover { box-shadow:0 8px 24px rgba(16,24,40,.06); }
.card .card-body { padding:1.5rem; }
.btn { border-radius:8px; font-weight:600; letter-spacing:-.01em; padding:.55rem .9rem; }
.btn-primary { background:var(--blue); border-color:var(--blue); }
.btn-primary:hover, .btn-primary:focus { background:#1f61bf; border-color:#1f61bf; }
.btn-outline-primary { color:var(--blue); border-color:#bdd3f5; }
.btn-link { color:var(--blue); font-weight:600; text-decoration:none; }
.form-control, .form-select { border-color:#d9dee8; border-radius:8px; padding:.6rem .75rem; }
.form-control:focus, .form-select:focus { border-color:#8db5ef; box-shadow:0 0 0 .2rem rgba(43,114,214,.12); }
.form-label { color:#344054; font-size:.875rem; font-weight:600; }
.app-main .form-check-input { border:2px solid #94a3b8; box-shadow:none; cursor:pointer; height:1.35em; margin-top:.08em; width:1.35em; }
.app-main .form-check-input:hover { border-color:var(--blue); }
.app-main .form-check-input:checked { background-color:var(--blue); border-color:var(--blue); }
.app-main .form-check-input:focus { border-color:var(--blue); box-shadow:0 0 0 .2rem color-mix(in srgb, var(--blue) 22%, transparent); }
.table { --bs-table-bg:transparent; --bs-table-color:var(--ink); }
.table > :not(caption) > * > * { border-bottom-color:var(--line); padding:1rem 1.25rem; }
.table thead th { color:var(--muted); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.price { color:var(--ink); font-size:1.2rem; font-weight:700; white-space:nowrap; }
.public-price-tiers { display:flex; flex-wrap:wrap; gap:.35rem; }
.public-price-tiers span { background:var(--blue-soft); border-radius:999px; color:var(--blue); font-size:.72rem; font-weight:700; padding:.3rem .5rem; }
.item-image { height:180px; width:100%; object-fit:cover; border-radius:13px 13px 0 0; }
.item-editor-image { border:1px solid var(--line); border-radius:10px; padding:.5rem; }
.item-editor-preview { align-items:center; background:#f7f9fc; border-radius:7px; color:var(--muted); display:flex; flex-direction:column; gap:.35rem; height:248px; justify-content:center; overflow:hidden; }
.item-image-dropzone { border:2px dashed transparent; cursor:copy; transition:background-color .15s ease, border-color .15s ease; }
.item-image-dropzone.is-dragging { background:var(--blue-soft); border-color:var(--blue); }
.item-editor-preview span { color:#98a2b3; font-size:2rem; line-height:1; }
.item-editor-preview small { font-size:.78rem; font-weight:600; }
.item-editor-preview img { height:100%; object-fit:cover; width:100%; }
.category-checkboxes { display:flex; flex-wrap:wrap; gap:.5rem; }
.category-checkbox { align-items:center; background:#f8faff; border:1px solid var(--line); border-radius:8px; cursor:pointer; display:inline-flex; gap:.5rem; margin:0; padding:.48rem .7rem; }
.category-checkbox:hover { background:var(--blue-soft); border-color:#bdd3f5; }
.category-checkbox .form-check-input { float:none; margin:0; }
.category-checkbox .form-check-label { color:var(--ink); font-size:.9rem; font-weight:600; }
.category-empty-state { background:#f8f9fb; color:var(--muted); }
.custom-pricing-card { background:#f8faff; border:1px solid #dfe8f7; border-radius:12px; padding:1rem; }
.custom-price-mode { border:0; margin:0; padding:0; }
.custom-price-mode legend { color:var(--muted); font-size:.72rem; font-weight:800; letter-spacing:.06em; margin-bottom:.4rem; text-transform:uppercase; }
.custom-price-mode-options { display:grid; gap:.5rem; grid-template-columns:repeat(2, minmax(0, 1fr)); }
.custom-price-mode-options label { cursor:pointer; margin:0; position:relative; }
.custom-price-mode-options input { opacity:0; position:absolute; }
.custom-price-mode-options span { background:#fff; border:1px solid #cbd9ee; border-radius:9px; display:block; min-height:66px; padding:.65rem .75rem; transition:border-color .15s ease, box-shadow .15s ease; }
.custom-price-mode-options strong, .custom-price-mode-options small { display:block; }
.custom-price-mode-options strong { color:var(--ink); font-size:.86rem; }
.custom-price-mode-options small { color:var(--muted); font-size:.74rem; margin-top:.12rem; }
.custom-price-mode-options input:checked + span { border-color:var(--blue); box-shadow:0 0 0 2px rgba(43,114,214,.12); }
.custom-price-mode-options input:checked + span strong { color:var(--blue); }
.custom-price-mode-options input:focus-visible + span { outline:2px solid #8db5ef; outline-offset:2px; }
.custom-price-head, .custom-price-row { align-items:center; display:grid; gap:.65rem; grid-template-columns:minmax(135px, .8fr) minmax(190px, 1fr) 34px; }
.custom-price-head { color:var(--muted); font-size:.72rem; font-weight:800; letter-spacing:.06em; padding:0 .1rem .35rem; text-transform:uppercase; }
#custom-price-rows { max-height:310px; overflow-y:auto; padding:.1rem .35rem .1rem .1rem; scrollbar-gutter:stable; }
#custom-price-rows::-webkit-scrollbar { width:8px; }
#custom-price-rows::-webkit-scrollbar-track { background:transparent; }
#custom-price-rows::-webkit-scrollbar-thumb { background:#cbd5e1; border-radius:999px; }
#custom-price-rows::-webkit-scrollbar-thumb:hover { background:#94a3b8; }
.custom-price-row + .custom-price-row { margin-top:.55rem; }
.custom-price-row .input-group-text { background:#fff; color:var(--muted); font-size:.8rem; font-weight:600; }
.custom-tier-remove { align-items:center; appearance:none; background:transparent; border:0; border-radius:7px; color:#98a2b3; display:flex; font-size:1.35rem; height:34px; justify-content:center; line-height:1; padding:0; width:34px; }
.custom-tier-remove:hover { background:#fff0f1; color:#c23d4d; }
.custom-price-summary { background:#fff; border:1px solid var(--line); border-radius:8px; color:#344054; font-size:.8rem; font-weight:600; padding:.65rem .75rem; }
.custom-price-validation { color:#b42318; font-size:.78rem; font-weight:600; padding:.45rem .15rem 0; }
.custom-price-validation[hidden] { display:none; }
.session-time-head, .session-time-row { align-items:center; display:grid; gap:.65rem; grid-template-columns:minmax(180px, 1fr) minmax(150px, 1fr) 34px; }
.session-time-head { color:var(--muted); font-size:.72rem; font-weight:800; letter-spacing:.06em; padding:0 .1rem .35rem; text-transform:uppercase; }
#session-time-rows { max-height:250px; overflow-y:auto; padding:.1rem .35rem .1rem .1rem; scrollbar-gutter:stable; }
.session-time-row + .session-time-row { margin-top:.55rem; }
.catalogue-search { flex:1 1 280px; margin-left:auto; max-width:420px; min-width:220px; }
.catalogue-category { background:var(--blue-soft); border-radius:999px; color:var(--blue); display:inline-block; font-size:.72rem; font-weight:700; margin:.1rem .2rem .1rem 0; padding:.22rem .48rem; }
.catalogue-filters { align-items:center; background:#f8faff; border:1px solid #dfe8f7; border-radius:12px; display:flex; flex-wrap:wrap; gap:.75rem; padding:.7rem .85rem; }
.catalogue-filter-label { color:var(--muted); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.catalogue-filter-chips { display:flex; flex-wrap:wrap; gap:.45rem; }
.report-category-filter { align-items:center; display:flex; flex-wrap:wrap; gap:.45rem; }
.report-category-filter > span { color:var(--muted); font-size:.72rem; font-weight:800; letter-spacing:.08em; margin-right:.15rem; text-transform:uppercase; }
.catalogue-filter-chip { appearance:none; background:#fff; border:1px solid #cbd9ee; border-radius:999px; color:#475467; cursor:pointer; font-family:inherit; font-size:.8rem; font-weight:700; line-height:1.2; padding:.42rem .78rem; transition:background .15s ease, border-color .15s ease, box-shadow .15s ease, color .15s ease, transform .15s ease; }
.catalogue-filter-chip:hover { background:var(--blue-soft); border-color:#94b9ef; color:var(--blue); transform:translateY(-1px); }
.catalogue-filter-chip.is-active { background:var(--blue); border-color:var(--blue); box-shadow:0 2px 5px rgba(43,114,214,.2); color:#fff; }
.catalogue-filter-chip.is-active:hover { background:#1f61bf; border-color:#1f61bf; color:#fff; }
.catalogue-filter-chip:focus-visible { outline:2px solid #8db5ef; outline-offset:2px; }
.catalogue-tag { background:#eef1f4; border-radius:999px; color:#4a5563; display:inline-block; font-size:.8rem; font-weight:700; padding:.3rem .65rem; }
.item-tag-picker { display:flex; flex-wrap:wrap; gap:.5rem; }
.item-tag-option { cursor:pointer; margin:0; }
.item-tag-option input { position:absolute; opacity:0; pointer-events:none; }
.item-tag-option span { background:#eef1f4; border:1px solid #d7dde3; border-radius:999px; color:#596573; display:block; font-size:.85rem; font-weight:700; padding:.42rem .8rem; transition:background .15s ease,border-color .15s ease,color .15s ease; }
.item-tag-option input:checked + span { background:var(--blue); border-color:var(--blue); color:#fff; }
.item-tag-option input:focus-visible + span { outline:2px solid #8db5ef; outline-offset:2px; }
.booking-filters { align-items:stretch; display:grid; gap:.7rem; }
.booking-filter-controls { align-items:center; display:flex; gap:.75rem; justify-content:flex-end; }
.booking-filter-controls .catalogue-search { flex:0 1 580px; margin-left:0; max-width:580px; }
.booking-item-filter { flex:0 1 360px; min-width:220px; }
.booking-filters-clear { color:var(--muted); flex:0 0 auto; padding-left:.15rem; padding-right:.15rem; text-decoration:none; }
.booking-filters-clear:hover { color:var(--blue); text-decoration:underline; }
.booking-filters-clear:disabled { color:#a8b0bb; opacity:1; text-decoration:none; }
.booking-table-card { overflow:visible; }
.table-status-filter { position:relative; }
.table-status-filter summary { align-items:center; background:#fff; border:1px solid #d5d9dd; border-radius:8px; color:#344054; cursor:pointer; display:inline-flex; font-family:"IBM Plex Sans", ui-sans-serif, sans-serif; font-size:.9rem; font-weight:600; gap:.45rem; letter-spacing:0; list-style:none; padding:.42rem .65rem; text-transform:none; white-space:nowrap; }
.table-status-filter summary::-webkit-details-marker { display:none; }
.table-status-filter summary svg { fill:none; height:15px; margin-left:.25rem; stroke:currentColor; stroke-linecap:round; stroke-width:1.8; width:15px; }
.table-status-filter[open] summary { border-color:#8db5ef; box-shadow:0 0 0 .15rem rgba(66,133,239,.13); }
.table-filter-menu { background:#fff; border:1px solid #d5d9dd; border-radius:10px; box-shadow:0 10px 24px rgba(15,23,42,.16); display:flex; flex-direction:column; gap:.15rem; min-width:200px; padding:.35rem; position:absolute; right:0; top:calc(100% + .35rem); z-index:5; }
.table-filter-menu button { align-items:center; appearance:none; background:#fff; border:0; border-radius:7px; color:#344054; cursor:pointer; display:flex; font-family:"IBM Plex Sans", ui-sans-serif, sans-serif; font-size:.9rem; font-weight:600; gap:.55rem; letter-spacing:0; padding:.45rem .55rem; text-align:left; text-transform:none; }
.table-filter-menu button.status::before { background:var(--filter-color,#94a3b8); border-radius:50%; content:""; flex:0 0 9px; height:9px; width:9px; }
.table-filter-menu button[data-booking-status="AWAITING_APPROVAL"] { --filter-color:#b45309; }.table-filter-menu button[data-booking-status="CONFIRMED"] { --filter-color:#1d8348; }.table-filter-menu button[data-booking-status="COMPLETED"] { --filter-color:#64748b; }.table-filter-menu button[data-booking-status="CANCELLED"] { --filter-color:#b91c1c; }.table-filter-menu button[data-booking-status="EXPIRED"] { --filter-color:#94a3b8; }.table-filter-menu button[data-payment-status="AWAITING_PAYMENT"] { --filter-color:#b45309; }.table-filter-menu button[data-payment-status="PARTIALLY_PAID"] { --filter-color:#6841a5; }.table-filter-menu button[data-payment-status="PAID"] { --filter-color:#1d8348; }.table-filter-menu button[data-payment-status="NOT_REQUIRED"] { --filter-color:#64748b; }
.table-filter-menu button:hover, .table-filter-menu button:focus-visible { background:#edf3ff; color:var(--blue); outline:none; }
.table-filter-menu .status { font-size:.7rem; letter-spacing:.06em; }
.booking-filter-row { align-items:center; display:flex; flex-wrap:wrap; gap:.75rem; }
.booking-filter-row .catalogue-filter-label { flex:0 0 110px; }
@media (max-width: 575px) { .catalogue-search { flex-basis:100%; max-width:none; } .booking-filters-clear { order:2; } }
@media (max-width: 700px) { .booking-filter-controls { align-items:stretch; flex-direction:column; } .booking-filter-controls .catalogue-search, .booking-item-filter { flex-basis:auto; max-width:none; min-width:0; width:100%; } .booking-filter-row { align-items:flex-start; flex-direction:column; gap:.45rem; } .booking-filter-row .catalogue-filter-label { flex-basis:auto; } }
@media (max-width: 575px) { .custom-price-head { display:none; } .custom-price-row { grid-template-columns:1fr 34px; } .custom-price-row .input-group:nth-child(2) { grid-column:1; } .custom-price-row .custom-tier-remove { grid-column:2; grid-row:1 / 3; } }
@media (max-width: 575px) { .custom-price-mode-options { grid-template-columns:1fr; } }
@media (max-width: 575px) { .session-time-head { display:none; } .session-time-row { grid-template-columns:1fr 34px; } .session-time-row input { grid-column:1; } .session-time-row .custom-tier-remove { grid-column:2; grid-row:1 / 3; } }
.status { display:inline-flex; align-items:center; align-self:flex-start; flex-shrink:0; height:fit-content; width:fit-content; max-width:100%; line-height:1.3; background:var(--blue-soft); color:var(--blue); font-size:.85rem; font-weight:800; letter-spacing:.08em; border-radius:999px; padding:.45rem .85rem; }
.text-muted { color:var(--muted) !important; }
.alert { border-radius:10px; }
.client-duplicate-alert { align-items:flex-start; display:flex; gap:1rem; justify-content:space-between; }
.client-duplicate-close { background:transparent; border:0; color:inherit; cursor:pointer; font-size:1.35rem; line-height:1; margin:-.1rem -.25rem 0 auto; padding:0 .25rem; }
.client-duplicate-close:hover { opacity:.7; }

@media (max-width: 575px) {
  .app-header { min-height:60px; }
  .workspace-name { display:none; }
  .hero { padding-top:1.5rem !important; padding-bottom:1.5rem !important; }
}

.app-shell { display:grid; grid-template-columns:190px minmax(0, 1fr); height:calc(100vh - 72px); max-width:none; min-height:0; overflow:hidden; padding-left:1rem; padding-right:1rem; }
.app-sidebar { border-right:1px solid var(--line); display:flex; flex-direction:column; padding:2rem 1rem 2rem 0; }
.sidebar-toggle { align-items:center; background:#fff; border:1px solid var(--line); border-radius:7px; color:var(--muted); display:flex; height:32px; justify-content:center; margin:0 .25rem 1rem auto; padding:0; transition:background .15s ease, color .15s ease; width:32px; }
.sidebar-toggle:hover { background:var(--blue-soft); color:var(--blue); }
.icon-sprite { height:0; left:0; overflow:hidden; pointer-events:none; position:absolute; top:0; width:0; }
.toggle-icon { fill:none; height:18px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; width:18px; }
.app-sidebar .nav-link { align-items:center; border-radius:8px; color:var(--ink); display:flex; font-weight:600; gap:.7rem; padding:.66rem .8rem; }
.nav-icon { fill:none; flex:0 0 20px; height:20px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; width:20px; }
.app-sidebar .nav-link:hover, .app-sidebar .nav-link.active { background:var(--blue-soft); color:var(--blue); }
.nav-heading { color:var(--muted); font-size:.7rem; font-weight:800; letter-spacing:.08em; margin:1.5rem .8rem .35rem; text-transform:uppercase; }
.app-sidebar .nav { flex:1 1 auto; }
.sidebar-user { align-items:center; border-top:1px solid var(--line); display:flex; gap:.75rem; margin-top:1.5rem; padding:.9rem .8rem 0; }
.sidebar-presence { background:#18a957; border-radius:50%; flex:0 0 10px; height:10px; width:10px; }
.sidebar-user-copy small { color:var(--muted); display:block; font-size:.75rem; font-weight:600; }
.sidebar-user-copy strong { color:var(--ink); display:block; font-size:1rem; margin-top:.1rem; }
.app-main { min-width:0; overflow-y:auto; padding:2.25rem 1rem max(7rem, env(safe-area-inset-bottom)) 3rem; scroll-padding-bottom:7rem; }
.account-page { max-width:940px; }
.platform-page { max-width:1180px; }
.stat-card { display:flex; flex-direction:column; gap:.25rem; padding:1.25rem; }
.stat-card-amber { border-left:5px solid #f3ad3d; }
.stat-card-green { border-left:5px solid #2da36f; }
.stat-card-blue { border-left:5px solid #2b72d6; }
.stat-card-violet { border-left:5px solid #7c5ce0; }
.stat-card-red { border-left:5px solid #d14b5a; }
.stat-card span, .stat-card small { color:var(--muted); font-size:.78rem; font-weight:600; }
.stat-card strong { color:var(--ink); font-size:1.8rem; letter-spacing:-.05em; line-height:1.1; }
.shop-insight-chart { align-items:end; display:flex; gap:.8rem; height:200px; margin-top:1.5rem; padding-top:1.5rem; }
.shop-insight-bar { align-items:center; display:flex; flex:1; flex-direction:column; height:100%; justify-content:end; min-width:0; }
.shop-insight-bar i { background:linear-gradient(180deg,#5d91ed,#2864dc); border-radius:6px 6px 2px 2px; display:block; min-height:8px; transition:height .2s ease; width:100%; }
.shop-insight-bar small { color:var(--muted); font-size:.75rem; margin-top:.5rem; }
.shop-insight-bar-value { color:var(--muted); font-size:.7rem; line-height:1; margin-bottom:.35rem; min-height:.7rem; overflow:hidden; text-align:center; text-overflow:ellipsis; white-space:nowrap; width:100%; }
.shop-insight-list { display:grid; gap:.75rem; margin:0; }
.shop-insight-list div { align-items:baseline; border-bottom:1px solid #edf0f3; display:flex; gap:1rem; justify-content:space-between; padding-bottom:.75rem; }
.shop-insight-list div:last-child { border:0; padding-bottom:0; }
.shop-insight-list dt { color:var(--muted); font-size:.85rem; font-weight:600; }
.shop-insight-list dd { color:var(--ink); font-size:.95rem; font-weight:800; margin:0; text-align:right; }
.action-card { background:#fff; border:1px solid var(--line); border-radius:14px; display:block; min-height:170px; padding:1.25rem; position:relative; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.action-card:hover { border-color:#b9d1f5; box-shadow:0 8px 24px rgba(16,24,40,.06); transform:translateY(-1px); }
.action-card-icon { align-items:center; background:var(--blue-soft); border-radius:9px; color:var(--blue); display:flex; font-size:1.6rem; font-weight:400; height:40px; justify-content:center; line-height:1; position:absolute; right:1.25rem; top:1.25rem; width:40px; }
.action-card > span:last-child { display:block; padding-top:72px; }
.action-card strong { color:var(--ink); display:block; font-size:1rem; }
.action-card small { color:var(--muted); display:block; font-size:.82rem; font-weight:400; margin-top:.2rem; }
.app-modal[hidden] { display:none; }
.app-modal { align-items:center; display:flex; inset:0; justify-content:center; padding:1rem; position:fixed; z-index:1050; }
.app-modal-backdrop { background:rgba(16,24,40,.42); inset:0; position:absolute; }
.app-modal-dialog { background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 24px 64px rgba(16,24,40,.2); max-height:calc(100vh - 2rem); max-width:760px; overflow:auto; padding:1.5rem; position:relative; width:100%; }
.availability-block-dialog { max-width:680px; }
.app-modal-header { align-items:flex-start; display:flex; gap:1rem; justify-content:space-between; }
.modal-close { align-items:center; background:#fff; border:1px solid var(--line); border-radius:7px; color:var(--muted); display:flex; font-size:1.4rem; height:32px; justify-content:center; line-height:1; padding:0 0 .15rem; width:32px; }
.modal-close:hover { background:var(--blue-soft); color:var(--blue); }
body.modal-open { overflow:hidden; }
.payment-mode { align-items:flex-start; border:1px solid var(--line); border-radius:10px; cursor:pointer; display:flex; gap:.7rem; height:100%; padding:1rem; transition:border-color .15s ease, background .15s ease; }
.payment-mode:hover, .payment-mode.selected { background:var(--blue-soft); border-color:#9fc2f5; }
.payment-mode input { accent-color:var(--blue); margin-top:.23rem; }
.payment-mode strong { color:var(--ink); display:block; font-size:.9rem; }
.payment-mode small { color:var(--muted); display:block; line-height:1.4; margin-top:.2rem; }
.booking-settings-tabs { border-bottom:1px solid var(--line); display:flex; gap:.25rem; overflow-x:auto; }
.booking-settings-tab { background:transparent; border:0; border-bottom:2px solid transparent; color:var(--muted); font-weight:700; padding:.75rem 1rem; white-space:nowrap; }
.booking-settings-tab:hover { color:var(--ink); }
.booking-settings-tab.is-active { border-bottom-color:var(--blue); color:var(--blue); }
.booking-settings-tab:focus-visible { outline:2px solid var(--blue); outline-offset:-2px; }
.booking-calendar-card { min-height:660px; }
.booking-calendar-toolbar { align-items:center; display:flex; gap:1rem; justify-content:space-between; }
.calendar-view-switch { display:flex; gap:.35rem; }
.booking-calendar-navigation { display:flex; gap:.45rem; }
.booking-calendar-legend { align-items:center; display:flex; flex-wrap:wrap; font-size:.8rem; font-weight:700; gap:.6rem; margin-bottom:1rem; }
.booking-calendar-status-filter { align-items:center; appearance:none; background:#fff; border:1px solid #d5d9dd; border-radius:999px; box-shadow:inset 6px 0 0 var(--status-color); color:#344054; cursor:pointer; display:flex; font:inherit; font-weight:700; line-height:1.2; padding:.46rem .76rem; transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.booking-calendar-status-filter:hover { border-color:color-mix(in srgb, var(--status-color) 65%, #d5d9dd); box-shadow:inset 7px 0 0 var(--status-color), 0 2px 5px color-mix(in srgb, var(--status-color) 16%, transparent); transform:translateY(-1px); }
.booking-calendar-status-filter.is-active { background:color-mix(in srgb, var(--status-color) 18%, white); border-color:var(--status-color); box-shadow:inset 7px 0 0 var(--status-color), inset 0 0 0 1px var(--status-color), 0 2px 6px color-mix(in srgb, var(--status-color) 20%, transparent); color:#1d2939; font-size:1.08em; font-weight:800; padding:.65rem 1rem; }
.booking-calendar-status-filter.is-active::before { content:"✓"; font-size:1em; margin-right:.4rem; }
.booking-calendar-status-filter:focus-visible { outline:2px solid #8db5ef; outline-offset:2px; }
.booking-calendar-status-filter[data-status=""] { --status-color:#2864dc; }
.booking-calendar-status-filter[data-status="COMPLETED"] { --status-color:#64748b; }
.booking-calendar-status-filter[data-status="EXPIRED"] { --status-color:#94a3b8; }
.booking-calendar-status-filter[data-status="AVAILABLE"] { --status-color:#0f766e; }
.booking-calendar-legend i { display:none; }
.booking-calendar-status-filter:has(.calendar-legend-hold) { --status-color:#2563eb; }
.booking-calendar-status-filter:has(.calendar-legend-payment) { --status-color:#b45309; }
.booking-calendar-status-filter:has(.calendar-legend-confirmed) { --status-color:#1d8348; }
.booking-calendar-status-filter:has(.calendar-legend-cancelled) { --status-color:#b91c1c; }
.calendar-legend-hold { background:#2563eb; }.calendar-legend-payment { background:#b45309; }.calendar-legend-confirmed { background:#1d8348; }.calendar-legend-cancelled { background:#b91c1c; }
.booking-calendar-card .catalogue-filters { gap:.6rem; }
.calendar-filter-dropdowns { align-items:end; display:flex; flex-wrap:wrap; gap:.6rem; }
.calendar-filter-dropdown, .calendar-filter-label { color:#30558a; display:grid; font-family:"IBM Plex Mono", monospace; font-size:.68rem; font-weight:600; gap:.25rem; letter-spacing:.075em; text-transform:uppercase; }
.calendar-filter-dropdown .form-select { min-width:170px; }
.calendar-custom-dropdown { min-width:170px; position:relative; text-transform:none; }
.booking-calendar-card .catalogue-search > .calendar-custom-dropdown { min-width:0; width:100%; }
.calendar-custom-dropdown summary { align-items:center; background:#fff; border:1px solid #d5d9dd; border-radius:8px; color:#344054; cursor:pointer; display:flex; font-family:"IBM Plex Sans", ui-sans-serif, sans-serif; font-size:.95rem; font-weight:600; gap:.55rem; justify-content:space-between; list-style:none; min-height:38px; padding:.45rem .65rem; }
.calendar-custom-dropdown summary::-webkit-details-marker { display:none; }
.calendar-custom-dropdown summary::after { border:solid currentColor; border-width:0 2px 2px 0; content:""; height:7px; margin-left:auto; transform:rotate(45deg) translateY(-2px); width:7px; }
.calendar-custom-dropdown summary > i, .calendar-custom-dropdown-menu i { background:var(--filter-color); border-radius:50%; display:inline-block; flex:0 0 9px; height:9px; width:9px; }
.calendar-custom-dropdown-menu { background:#fff; border:1px solid #d5d9dd; border-radius:10px; box-shadow:0 10px 24px rgba(15,23,42,.16); display:flex; flex-direction:column; gap:.15rem; left:0; min-width:100%; padding:.35rem; position:absolute; top:calc(100% + .35rem); z-index:10; }
.calendar-custom-dropdown:not([open]) .calendar-custom-dropdown-menu { display:none; }
.calendar-custom-dropdown.is-disabled { opacity:.62; pointer-events:none; }
.calendar-custom-dropdown-menu button { align-items:center; appearance:none; background:transparent; border:0; border-radius:7px; color:#344054; cursor:pointer; display:flex; font:inherit; font-size:.9rem; font-weight:600; gap:.55rem; padding:.45rem .55rem; text-align:left; white-space:nowrap; }
.calendar-custom-dropdown-menu button:hover, .calendar-custom-dropdown-menu button:focus-visible { background:#edf3ff; color:#2053bc; outline:none; }
.booking-calendar-card .catalogue-filters .booking-calendar-legend { flex:1 1 520px; margin:0; }
.booking-calendar-card .catalogue-filters .catalogue-search { flex:0 1 230px; margin-left:0; max-width:250px; min-width:170px; }
.booking-calendar-card .catalogue-filters .catalogue-search:has(#calendar-search) { flex:1 1 280px; max-width:none; }
.booking-calendar-card .catalogue-filters .catalogue-search { align-self:end; }
.booking-calendar-card .catalogue-filters .catalogue-search:has(.calendar-filter-label) { display:grid; gap:.25rem; }
.booking-calendar-card .catalogue-filters .form-control, .booking-calendar-card .catalogue-filters .form-select { font-size:.88rem; padding:.45rem .65rem; }
@media (max-width: 900px) { .booking-calendar-card .catalogue-filters .booking-calendar-legend { flex-basis:100%; } .calendar-filter-dropdowns { flex-basis:100%; } }
.booking-month-calendar { min-height:560px; }
.booking-day-layout { display:grid; gap:1.25rem; grid-template-columns:minmax(220px, 1fr) minmax(0, 2fr); margin-top:1rem; }
.booking-day-all-day { border:1px solid #e2e4e7; border-radius:12px; min-width:0; padding:1rem; }
.booking-day-all-day > h3 { margin-top:0 !important; }
.booking-day-hourly, .booking-day-layout .booking-day-grid { min-width:0; }
@media (max-width: 900px) { .booking-day-layout { grid-template-columns:1fr; } }
.calendar-closed-cell { background:repeating-linear-gradient(-45deg,#edf0f2,#edf0f2 5px,#e4e8eb 5px,#e4e8eb 10px) !important; }
#booking-detail-modal .booking-detail-dialog { background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 24px 64px rgba(16,24,40,.2); display:flex; flex-direction:column; max-width:860px; overflow:hidden; padding:0; }
#booking-detail-modal #booking-detail-content { min-height:0; overflow:auto; }
#booking-detail-modal .booking-record-summary { border:0; border-radius:0; margin:0; }
#booking-detail-modal .booking-card-statuses { margin-right:3rem; }
.booking-detail-close { position:absolute; right:1rem; top:1rem; z-index:2; }
.booking-modal-actions { background:#fff; border-top:1px solid var(--line); display:flex; flex-shrink:0; flex-wrap:wrap; gap:.5rem; padding:1rem; }
.booking-modal-records { margin-left:auto; }
@media (max-width:575px) { .booking-calendar-card { padding:1rem !important; }.booking-calendar-toolbar { align-items:flex-start; flex-wrap:wrap; }.booking-calendar-list-link { display:none; }.booking-month-calendar { min-height:500px; } }
.profile-row { align-items:center; display:flex; gap:1rem; justify-content:space-between; }
.profile-row > .d-flex { flex:0 0 auto; }
@media (max-width: 575px) { .profile-row { align-items:flex-start; flex-direction:column; } }
.price-profile-summary { align-items:center; color:var(--muted); display:flex; gap:.5rem; min-width:0; }
.price-profile-summary small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.price-profile-info { align-items:center; background:#fff; border:1px solid #b9c9df; border-radius:50%; color:var(--blue); display:inline-flex; flex:0 0 20px; font-family:Georgia,serif; font-size:.75rem; font-style:italic; font-weight:700; height:20px; justify-content:center; line-height:1; padding:0; width:20px; }
.price-profile-info:hover, .price-profile-info:focus-visible { background:var(--blue); border-color:var(--blue); color:#fff; }
.price-structure-dialog { background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 20px 55px rgba(16,24,40,.18); max-width:430px; padding:1.25rem; position:relative; width:100%; }
.price-structure-list { border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.price-structure-row { align-items:center; display:flex; gap:1rem; justify-content:space-between; padding:.7rem .8rem; }
.price-structure-row + .price-structure-row { border-top:1px solid var(--line); }
.price-structure-row span { color:var(--muted); font-size:.85rem; }
.price-structure-row strong { color:var(--ink); font-size:.85rem; }
.profile-management-row { align-items:flex-start; border-top:1px solid var(--line); display:flex; gap:1rem; justify-content:space-between; padding:.85rem 0; }
.profile-management-row details { flex:1 1 auto; min-width:0; }
.profile-management-row summary { cursor:pointer; list-style:none; padding:.15rem 0; }
.profile-management-row summary::-webkit-details-marker { display:none; }
.profile-management-row summary strong, .profile-management-row summary small { display:block; }
.profile-management-row summary small { color:var(--muted); font-size:.78rem; margin-top:.15rem; }
.profile-editor { background:#f8faff; border:1px solid #dfe8f7; border-radius:10px; margin-top:.8rem; padding:1rem; }
.new-profile-panel { text-align:right; width:100%; }
.new-profile-panel > summary { display:inline-block; list-style:none; }
.new-profile-panel > summary::-webkit-details-marker { display:none; }
.new-profile-panel > form { text-align:left; }
.profile-tier-head, .profile-tier-row, .profile-time-head, .profile-time-row { align-items:center; display:grid; gap:.65rem; grid-template-columns:minmax(150px,.8fr) minmax(180px,1fr) 34px; }
.profile-tier-head, .profile-time-head { color:var(--muted); font-size:.72rem; font-weight:800; letter-spacing:.06em; padding:0 .1rem .35rem; text-transform:uppercase; }
.profile-tier-rows, .profile-time-rows { max-height:280px; overflow-y:auto; padding:.1rem .35rem .1rem .1rem; scrollbar-gutter:stable; }
.profile-tier-row + .profile-tier-row, .profile-time-row + .profile-time-row { margin-top:.55rem; }
@media (max-width:575px) { .profile-management-row { flex-direction:column; } .profile-tier-head, .profile-time-head { display:none; } .profile-tier-row, .profile-time-row { grid-template-columns:1fr 34px; } .profile-tier-row > :nth-child(2), .profile-time-row > :nth-child(2) { grid-column:1; } .profile-tier-row .custom-tier-remove, .profile-time-row .custom-tier-remove { grid-column:2; grid-row:1 / 3; } }
.dashboard-columns { max-width:1180px; }
.dashboard-today { max-width:1180px; }
.dashboard-eyebrow { color:var(--blue); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.today-arrivals-card { overflow:hidden; }
.today-card-heading { align-items:flex-start; display:flex; justify-content:space-between; padding:1.25rem 1.25rem 1rem; }
.today-count { align-items:center; background:var(--blue-soft); border-radius:999px; color:var(--blue); display:inline-flex; font-size:.82rem; font-weight:800; height:28px; justify-content:center; min-width:28px; padding:0 .55rem; }
.today-arrival { align-items:center; border-left:4px solid var(--category-accent, #9aa0a6); color:var(--ink); display:grid; gap:1rem; grid-template-columns:minmax(0, 1fr) minmax(150px, .8fr); padding:.9rem 1.25rem; text-decoration:none; transition:background .15s ease; }
.today-arrival + .today-arrival { border-top:1px solid var(--line); }
.today-arrival:hover { background:var(--blue-soft); color:var(--ink); }
.today-arrival small { color:var(--muted); display:block; font-size:.78rem; margin-top:.18rem; }
.today-arrival-category { color:var(--muted); font-size:.78rem; }
.today-clients-card { background:linear-gradient(135deg, #f4f8ff 0%, #fff 75%); padding:1.5rem; }
.today-clients-number { color:var(--blue); display:block; font-size:3.25rem; letter-spacing:-.06em; line-height:1; }
.shop-selector-list { display:grid; gap:.75rem; }
.shop-selector-card { align-items:center; display:flex; justify-content:space-between; padding:1.25rem; }
.shop-accent-amber { border-left:5px solid #f3ad3d; }
.shop-accent-green { border-left:5px solid #2da36f; }
.shop-accent-blue { border-left:5px solid #2b72d6; }
.shop-accent-violet { border-left:5px solid #7c5ce0; }
.shop-open-button { align-items:center; background:var(--blue-soft); border:0; border-radius:8px; color:var(--blue); display:flex; height:36px; justify-content:center; padding:0; transition:background .15s ease, color .15s ease; width:36px; }
.shop-open-button:hover, .shop-open-button[aria-expanded="true"] { background:var(--blue); color:#fff; }
.shop-open-icon { height:18px; width:18px; }
.shop-actions-panel { margin-top:.75rem; }
.shop-actions-card { padding:1.5rem; }
.shop-action-grid { display:grid; gap:.5rem; grid-template-columns:repeat(2, minmax(0, 1fr)); }
.booking-list-card { overflow:hidden; }
.dashboard-booking-header { align-items:center; background:#eaf2ff; border-bottom:1px solid #d5e4fb; color:#30558a; display:grid; font-family:"IBM Plex Mono", monospace; font-size:.68rem; font-weight:600; gap:1rem; grid-template-columns:minmax(0, 1fr) auto auto; letter-spacing:.075em; padding:.8rem 1.25rem; text-transform:uppercase; }
.dashboard-booking { align-items:center; border-left:4px solid var(--category-accent, #9aa0a6); color:var(--ink); display:grid; gap:1rem; grid-template-columns:minmax(0, 1fr) auto auto; padding:1rem 1.25rem; text-decoration:none; transition:background .15s ease; }
.dashboard-booking + .dashboard-booking { border-top:1px solid var(--line); }
.dashboard-booking:hover { background:var(--blue-soft); color:var(--ink); }
.dashboard-booking small { color:var(--muted); display:block; font-size:.78rem; margin-top:.15rem; }
.dashboard-booking .dashboard-booking-date { color:var(--blue); font-weight:700; margin:0 0 .3rem; }
.dashboard-booking-customer { color:var(--muted); display:block; margin-top:.15rem; }
tr[data-booking-url] { cursor:pointer; }
@media (max-width: 575px) { .shop-action-grid { grid-template-columns:1fr; } .dashboard-booking, .dashboard-booking-header { grid-template-columns:minmax(0, 1fr) auto; } .dashboard-booking > .status { grid-column:1 / -1; justify-self:start; } .dashboard-booking-header > :nth-child(2) { display:none; } .today-arrival { grid-template-columns:1fr; gap:.4rem; } }
.app-shell.sidebar-collapsed { grid-template-columns:56px minmax(0, 1fr); }
.app-shell.sidebar-collapsed .app-sidebar { padding-right:.5rem; }
.app-shell.sidebar-collapsed .sidebar-toggle { margin-right:auto; }
.app-shell.sidebar-collapsed .nav-link { justify-content:center; padding:.66rem; }
.app-shell.sidebar-collapsed .nav-label,
.app-shell.sidebar-collapsed .nav-heading,
.app-shell.sidebar-collapsed .sidebar-user-copy { display:none; }
.app-shell.sidebar-collapsed .sidebar-user { justify-content:center; padding-left:0; padding-right:0; }
@media (max-width: 767px) { body { height:auto; overflow:auto; } .app-header-inner { gap:1rem; } .topbar-actions { order:3; margin-left:0; } .app-shell, .app-shell.sidebar-collapsed { display:block; height:auto; overflow:visible; } .app-sidebar, .app-shell.sidebar-collapsed .app-sidebar { border-right:0; border-bottom:1px solid var(--line); padding:1rem 0; } .sidebar-toggle { display:none; } .app-sidebar .nav { flex-direction:row !important; flex-wrap:wrap; } .app-sidebar .nav-link, .app-shell.sidebar-collapsed .nav-link { justify-content:flex-start; padding:.66rem .8rem; } .app-shell.sidebar-collapsed .nav-label, .app-shell.sidebar-collapsed .nav-heading { display:inline; } .nav-heading { width:100%; margin:1rem 0 .2rem; } .app-main { overflow:visible; padding:1.5rem 0 3rem; } .sidebar-user { display:none; } }

/* Field-log body theme from TEMPLATE.html. Header and sidebar intentionally keep
   their existing styles; only the application workspace is restyled below. */
.app-header, .app-sidebar { font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.app-main {
  --ink:#24334b;
  --muted:#66748a;
  --line:#e3eaf3;
  --blue:#2864dc;
  --blue-soft:#edf3ff;
  background-color:#f7f9fd;
  background-image:none;
  color:var(--ink);
  font-family:"IBM Plex Sans", ui-sans-serif, sans-serif;
  padding:3.25rem 3.5rem 4.5rem;
}
.app-main h1, .app-main h2, .app-main h3, .app-main h4, .app-main h5, .app-main h6 {
  color:#12313f;
  font-family:"Big Shoulders Display", Impact, sans-serif;
  font-weight:700;
  letter-spacing:.015em;
}
.app-main h1.h2, .app-main .h2 { font-size:3rem; line-height:.95; }
.app-main h1.h3, .app-main .h3 { font-size:2.35rem; line-height:.98; }
.app-main .h4 { font-size:2rem; }
.app-main .h5 { font-size:1.55rem; }
.app-main .h6 { font-family:"IBM Plex Sans", ui-sans-serif, sans-serif; font-size:.9rem; letter-spacing:0; }
.app-main a:not(.btn):not(.booking-settings-tab) { color:#2864dc; font-weight:600; }
.app-main .text-muted { color:#6c7075 !important; }
.app-main .card {
  background:#fff;
  border:1px solid #e2e4e7;
  border-radius:12px;
  box-shadow:none;
}
.app-main .card:hover { box-shadow:none; transform:none; }
.app-main .card .card-body { padding:1.5rem; }
.app-main .btn { border-radius:8px; font-family:"IBM Plex Sans", ui-sans-serif, sans-serif; }
.app-main .btn-primary { background:#2864dc; border-color:#2864dc; }
.app-main .btn-primary:hover, .app-main .btn-primary:focus { background:#2053bc; border-color:#2053bc; }
.app-main .btn-outline-primary { border-color:#b9cff8; color:#2864dc; }
.app-main .btn-outline-primary:hover { background:#edf3ff; border-color:#2864dc; color:#2053bc; }
.app-main .btn-link { color:#2864dc; }
.app-main .form-control, .app-main .form-select { border-color:#d5d9dd; border-radius:3px; }
.app-main .form-control:focus, .app-main .form-select:focus { border-color:#3e7c74; box-shadow:0 0 0 .2rem rgba(62,124,116,.13); }
.app-main .form-label { color:#38454a; }
.app-main .status { background:#ddf6ec; border-radius:999px; color:#176649; font-family:"IBM Plex Mono", monospace; font-size:.85rem; letter-spacing:.055em; }
.booking-card-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:.5rem 1rem; margin-bottom:.5rem; }
.booking-card-statuses { align-items:flex-end; display:flex; flex-direction:column; gap:.5rem; }
.booking-overdue-alert { background:#fff1f1; border:1px solid #f0b4b4; border-left:5px solid #c93737; border-radius:12px; color:#9f2222; margin-bottom:1rem; padding:1rem 1.15rem; }
.booking-overdue-alert span { display:block; font-family:"IBM Plex Mono",monospace; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.booking-overdue-alert strong { display:block; font-size:1.35rem; line-height:1.2; margin-top:.2rem; }
.booking-overdue-alert p { margin:.3rem 0 0; }
.booking-card-reference { color:var(--muted); font-family:"IBM Plex Sans", sans-serif; font-size:.9rem; font-weight:400; }
.booking-card-item { display:block; font-size:1.25rem; }
.booking-card-period { color:#59636d; font-size:1.05rem; margin-top:.3rem; }
.booking-confirmation-card { padding:2.5rem !important; }
.booking-confirmation-shop { align-items:center; display:flex; gap:.65rem; margin-bottom:1.5rem; }
.booking-confirmation-shop img, .booking-confirmation-shop-mark { align-items:center; background:#eef5ff; border-radius:50%; display:inline-flex; height:2.4rem; justify-content:center; object-fit:cover; width:2.4rem; }
.booking-confirmation-shop strong { color:#17394b; font-size:1.05rem; }
.booking-confirmation-reference { align-items:center; display:flex; gap:1rem; justify-content:space-between; margin-bottom:.35rem; }
.booking-payment-card { background:#f5f7fa; border:1px solid #dfe5ec; border-radius:1.25rem; color:#344054; padding:1.75rem 2rem; }
.booking-payment-card-head, .booking-payment-amount { align-items:center; display:flex; gap:1rem; justify-content:space-between; }
.booking-payment-card-head > span:first-child { font-family:"IBM Plex Mono", monospace; font-size:.82rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.booking-payment-card .status { background:#fde8c6; color:#96500b; }
.booking-payment-amount { margin-top:1.25rem; }
.booking-payment-amount strong, .booking-payment-amount small { display:block; }
.booking-payment-amount strong { font-size:1.05rem; font-weight:500; }
.booking-payment-amount small { color:#667085; margin-top:.25rem; }
.booking-payment-amount b { color:#344054; font-size:2.4rem; letter-spacing:-.04em; white-space:nowrap; }
.booking-payment-card hr { border-color:#dfe5ec; opacity:1; }
.booking-payment-card p { font-size:1rem; line-height:1.55; }
.booking-payment-card p:not(.booking-payment-warning) { color:#1d2732; }
.booking-payment-card p + p { color:#667085; }
.booking-payment-iban { background:#fffbf3; border:1px solid #efd3a4; border-radius:.5rem; color:#6f4015 !important; padding:.7rem .85rem; }
.booking-payment-iban strong, .booking-payment-iban span { display:block; }
.booking-payment-iban strong { color:#1d2732; margin-bottom:.25rem; }
.booking-payment-iban span { color:#6f4015; font-family:"IBM Plex Mono", monospace; letter-spacing:.02em; }
.booking-payment-warning { color:#9b2020; font-weight:700; }
@media (max-width:575px) { .booking-payment-card { padding:1.25rem; } .booking-payment-amount { align-items:flex-start; flex-direction:column; gap:.4rem; } .booking-payment-amount b { font-size:2rem; } }
@media (max-width:575px) { .booking-confirmation-card { padding:1.5rem !important; } .booking-confirmation-reference { align-items:flex-start; flex-direction:column; } }
.booking-period-edit { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:2rem; height:2rem; border:1px solid #d5d9dd; border-radius:6px; background:#fff; color:#2864dc; }
.booking-period-edit:hover { background:#edf3ff; border-color:#2864dc; }
.booking-period-edit:focus-visible { outline:2px solid #2864dc; outline-offset:2px; }
.booking-period-dialog { max-width:640px; }
.booking-period-note { background:#f3f6fb; border-left:3px solid #8ba4ca; border-radius:4px; padding:.75rem 1rem; font-size:.9rem; }
.status[data-booking-status="AWAITING_APPROVAL"] { background:#fff1dc; color:#96500b; }
.status[data-payment-status="AWAITING_PAYMENT"] { background:#fff1dc; color:#96500b; }
.status[data-booking-status="CONFIRMED"], .status[data-payment-status="PAID"] { background:#ddf6ec; color:#176649; }
.status[data-booking-status="COMPLETED"], .status[data-payment-status="NOT_REQUIRED"] { background:#eaf0f5; color:#475569; }
.status[data-booking-status="CANCELLED"] { background:#fde8e8; color:#a52626; }
.status[data-booking-status="EXPIRED"] { background:#f0f1f3; color:#646b76; }
.status[data-payment-status="PARTIALLY_PAID"] { background:#eee8ff; color:#6841a5; }
.app-main .catalogue-filters { background:#fff; border-color:#e2e4e7; border-radius:6px; }
.app-main .catalogue-filter-label, .app-main .dashboard-eyebrow { color:#2864dc; font-family:"IBM Plex Mono", monospace; }
.app-main .catalogue-filter-chip { border-color:#d5d9dd; border-radius:3px; }
.app-main .catalogue-filter-chip:hover { background:#dceae6; border-color:#8db6ae; color:#12313f; }
.app-main .catalogue-filter-chip.is-active { background:#2864dc; border-color:#2864dc; }
.app-main .catalogue-category { background:color-mix(in srgb, var(--category-color, #66748a) 15%, white); border-left:3px solid var(--category-color, #66748a); border-radius:6px; color:#24334b; }
.app-main .catalogue-filter-chip[data-category-id] { border-color:var(--category-color); background:color-mix(in srgb, var(--category-color) 12%, white); color:#24334b; }
.app-main .catalogue-filter-chip[data-category-id]:hover { border-color:var(--category-color); background:color-mix(in srgb, var(--category-color) 25%, white); color:#24334b; box-shadow:inset 0 0 0 1px var(--category-color); }
.app-main .catalogue-filter-chip[data-category-id].is-active { background:var(--category-color); border-color:var(--category-color); box-shadow:0 0 0 2px #fff,0 0 0 4px var(--category-color); color:#17394b; font-weight:800; position:relative; z-index:1; }

/* Tables use the template's paper-and-ledger treatment across every view. */
.app-main .table { --bs-table-bg:#fff; --bs-table-color:#1b1d1f; font-size:.92rem; margin-bottom:0; }
.app-main .table > :not(caption) > * > * { border-bottom-color:#e2e4e7; padding:1rem 1.25rem; vertical-align:middle; }
.app-main .table thead th { background:#eaf2ff; border-bottom:1px solid #d5e4fb; color:#30558a; font-family:"IBM Plex Mono", monospace; font-size:.68rem; font-weight:600; letter-spacing:.075em; padding:.8rem 1.25rem; text-transform:uppercase; }
.app-main .booking-table-card .table thead th { font-size:1rem; }
.app-main .booking-table-card tbody tr { cursor:pointer; }
.app-main .table tbody tr { transition:background .15s ease; }
.app-main .table tbody tr:hover > * { --bs-table-bg:#f4f8ff; }
.app-main .table tbody tr:last-child > * { border-bottom:0; }
.app-main .table a:not(.btn) { color:#12313f; font-family:"IBM Plex Mono", monospace; font-size:.82rem; }
.app-main .table small { font-size:.76rem; }
.app-main .table-responsive { border-radius:6px; }
.app-main .stat-card { border-left:4px solid #35b78b; background:#effbf6; }
.app-main .stat-card-blue { border-left-color:#4285ef; background:#eef5ff; }
.app-main .stat-card-amber { border-left-color:#efb43e; background:#fff8e7; }
.app-main .stat-card-red { border-left-color:#ef7b65; background:#fff1ec; }
.app-main .stat-card-violet { border-left-color:#9872e8; background:#f5f0ff; }
.app-main .stat-card strong { color:#12313f; font-family:"Big Shoulders Display", Impact, sans-serif; font-size:2.35rem; letter-spacing:.015em; }
.app-main .action-card { border-radius:6px; }
.app-main .action-card-icon { background:#dceae6; border-radius:3px; color:#28645d; }
.app-main .booking-settings-tabs { border-bottom-color:#12313f; }
.app-main .booking-settings-tab { font-family:"IBM Plex Sans", ui-sans-serif, sans-serif; }
.app-main .booking-settings-tab.is-active { border-bottom-color:#2864dc; color:#2864dc; background:#edf3ff; }
.app-main a.booking-settings-tab:not(.btn) { color:var(--muted); font-weight:700; }
.app-main a.booking-settings-tab:not(.btn):hover { color:var(--ink); }
.app-main a.booking-settings-tab.is-active:not(.btn) { color:#2864dc; }
.app-main .today-clients-card { background:#fff8e7; border-color:#f3dfae; border-top:4px solid #efb43e; }
.app-main .today-clients-card .dashboard-eyebrow { color:#956514; }
.app-main .today-clients-number { color:#a66316; }
.app-main .today-count { background:#dceaff; color:#235ec8; }
.app-main .today-card-heading { background:#edf5ff; border-bottom:1px solid #dce8f9; }
.app-main .today-arrivals-card { border-top:4px solid #4285ef; }
.app-main a.today-arrival, .app-main a.dashboard-booking { color:#24334b; }
.app-main .today-arrival:hover, .app-main .dashboard-booking:hover { background:#f1f7ff; }
.app-main .form-control, .app-main .form-select { border-radius:8px; }
.app-main .form-control:focus, .app-main .form-select:focus { border-color:#4285ef; box-shadow:0 0 0 .2rem rgba(66,133,239,.13); }
.app-main .catalogue-filter-chip { border-radius:999px; box-shadow:none; }
.app-main .catalogue-filter-chip:hover { background:#edf3ff; border-color:#b9cff8; color:#2053bc; }
.app-main .catalogue-filter-chip.is-active:hover { background:#2053bc; border-color:#2053bc; color:#fff; }
.category-color-swatch { border:2px solid #fff; border-radius:50%; box-shadow:0 0 0 1px #d5d9dd; display:inline-block; height:18px; width:18px; }
.category-calendar-preview { background:color-mix(in srgb, var(--category-color) 24%, white); border-left:7px solid var(--category-color); border-radius:8px; color:#24334b; flex:1 1 260px; font-size:1rem; font-weight:700; line-height:1.25; max-width:440px; padding:.7rem .85rem; }
.appearance-schemes { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:12px; }
.appearance-scheme { cursor:pointer; position:relative; }
.appearance-scheme input { position:absolute; top:12px; left:12px; accent-color:#2864dc; }
.appearance-scheme span { display:block; padding:42px 12px 16px; border-radius:10px; color:#24334b; font-weight:600; }
.appearance-scheme:has(input:checked) span { outline:2px solid #2864dc; outline-offset:2px; }
.appearance-scheme:has(input:focus-visible) span { outline:3px solid #2864dc; outline-offset:3px; }
.category-color-button { align-items:center; display:inline-flex; gap:.5rem; }
.category-color-grid { display:grid; gap:.75rem; grid-template-columns:repeat(5, 1fr); }
.category-color-option { appearance:none; background:var(--category-color); border:3px solid transparent; border-radius:50%; box-shadow:0 0 0 1px #d5d9dd; cursor:pointer; height:42px; padding:0; transition:box-shadow .15s ease, transform .15s ease; width:42px; }
.category-color-option:hover, .category-color-option:focus-visible { box-shadow:0 0 0 3px rgba(62,124,116,.25); outline:0; transform:scale(1.08); }
.category-color-option.is-selected { border-color:#fff; box-shadow:0 0 0 3px #12313f; }

@media (max-width:767px) {
  .app-main { padding:2rem 1rem 3rem; }
  .app-main h1.h2, .app-main .h2 { font-size:2.5rem; }
  .app-main .table > :not(caption) > * > * { padding:.8rem .9rem; }
}
