:root {
  --primary: #0d2c5a;
  --primary-dark: #071b3d;
  --accent: #d72638;
  --accent-soft: #ffdfe3;
  --text: #1b2535;
  --muted: #5f6d82;
  --surface: #ffffff;
  --surface-alt: #f5f7fb;
  --border: #dfe8f3;
  --success: #0d8a4b;
  --warning: #f5b700;
  --danger: #d72638;
  --shadow: 0 20px 50px rgba(9, 30, 66, 0.12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Inter', sans-serif;
  color: var(--text);
  background: linear-gradient(180deg, #f9fafc 0%, #eef3fb 100%);
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.container { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; }

.topbar {
  position: sticky; top: 0; z-index: 20;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(18, 48, 83, 0.08);
}
.nav-wrap {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1rem 0;
  gap: 1rem;
}
.brand { display: flex; align-items: center; flex: 0 1 190px; min-width: 130px; }
.brand-logo { width: 100%; max-height: 78px; object-fit: contain; }
.brand-mark {
  display: inline-flex; width: 42px; height: 42px; border-radius: 12px;
  align-items: center; justify-content: center; background: linear-gradient(135deg, var(--primary), var(--accent));
  color: #fff; font-weight: 800;
}
.brand strong { display: block; font-size: 1rem; }
.brand small { color: var(--muted); }
.main-nav { display: flex; align-items: center; gap: 1.2rem; font-weight: 600; }
.main-nav a { color: var(--muted); }
.main-nav a.active, .main-nav a:hover { color: var(--primary); }
.nav-actions { display: flex; align-items: center; gap: 0.75rem; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; border: none;
  border-radius: 10px; padding: 0.8rem 1.2rem; font-weight: 700; cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: linear-gradient(135deg, var(--accent), #ef4f5d); color: #fff; box-shadow: 0 10px 24px rgba(215, 38, 56, 0.25); }
.btn-outline { background: transparent; border: 1px solid rgba(13, 44, 90, 0.15); color: var(--primary); }
.btn.block { width: 100%; }

.hero {
  padding: 6rem 0 4rem; background: radial-gradient(circle at top left, rgba(215,38,56,0.12), transparent 26%), linear-gradient(135deg, rgba(13,44,90,0.98), rgba(12, 31, 75, 0.9));
  color: #fff;
}
.inner-hero { padding-top: 4.5rem; }
.hero-grid {
  display: grid; grid-template-columns: 1.4fr 0.8fr; gap: 2rem; align-items: center;
}
.eyebrow {
  display: inline-block; padding: 0.35rem 0.7rem; border-radius: 999px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.12); font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase;
  margin-bottom: 1rem;
}
.hero h1 { font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1.1; margin: 0 0 1rem; }
.hero p { color: #e7eefb; line-height: 1.7; max-width: 60ch; }
.cta-row { display: flex; gap: 1rem; margin: 1.6rem 0; flex-wrap: wrap; }
.mini-stats { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.2rem; }
.mini-stats div {
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.08); border-radius: 14px; padding: 1rem 1.2rem; min-width: 120px;
}
.mini-stats strong { display: block; font-size: 1.3rem; }
.mini-stats span { color: #dfe7f8; font-size: 0.8rem; }
.hero-card {
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 24px; padding: 2rem; box-shadow: var(--shadow);
}
.hero-card h3 { margin-top: 0; }
.hero-card ul { list-style: none; padding: 0; margin: 1rem 0 1.8rem; color: #edf5ff; }
.hero-card li { padding: 0.8rem 0; border-bottom: 1px solid rgba(255,255,255,0.08); }

.section-space { padding: 4rem 0 1rem; }
.section-heading { margin-bottom: 2rem; }
.section-heading h2 { font-size: clamp(2rem, 4vw, 2.8rem); margin: 0.4rem 0 0; }

.cards-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.service-cards { margin-top: 2rem; }
.service-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: 18px; overflow: hidden; box-shadow: 0 12px 30px rgba(15, 35, 61, 0.06);
}
.service-card img { height: 220px; object-fit: cover; width: 100%; }
.image-attribution { margin: 0.35rem 1rem; color: var(--muted); font-size: 0.72rem; line-height: 1.4; }
.image-attribution a { color: inherit; text-decoration: underline; }
.detail-media .image-attribution { margin-left: 0; }
.document-service-photo + .image-attribution { margin: -0.5rem 0 0.85rem; }
.card-body { padding: 1.25rem; }
.card-body h3 { margin: 0.7rem 0 0.6rem; }
.card-body p { color: var(--muted); margin: 0 0 1rem; line-height: 1.6; }
.category-chip {
  display: inline-flex; padding: 0.35rem 0.7rem; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-weight: 700; font-size: 0.72rem; text-transform: uppercase;
}
.card-actions { display: flex; justify-content: space-between; gap: 0.75rem; }
.link-btn { color: var(--primary); font-weight: 700; }

.feature-strip, .info-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.feature-box {
  background: var(--surface); border: 1px solid var(--border); border-radius: 18px; padding: 1.4rem; box-shadow: 0 14px 32px rgba(13, 44, 90, 0.05);
}
.feature-box h3 { margin-top: 0; }

.review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.review-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: 18px; padding: 1.5rem; 
}
.review-card p { color: var(--muted); line-height: 1.7; }
.stars { color: #ffbf29; letter-spacing: 0.15em; margin-bottom: 0.8rem; }

.form-shell {
  padding: 2rem 0 4rem;
}
.booking-form, .track-card, .contact-box, .feature-box, .panel, .admin-card {
  background: var(--surface); border: 1px solid var(--border); border-radius: 22px; box-shadow: var(--shadow);
}
.booking-form { padding: 2rem; }
.form-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem;
}
.form-grid.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
label { display: grid; gap: 0.55rem; font-weight: 600; color: var(--text); }
input, select, textarea {
  width: 100%; border: 1px solid var(--border); border-radius: 12px; padding: 0.85rem 0.95rem; background: var(--surface-alt); color: var(--text);
}
textarea { resize: vertical; }
.full-width { grid-column: 1 / -1; }
.submit-row { display: flex; justify-content: flex-start; margin-top: 1.5rem; }

.track-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 1.5rem; align-items: start; }
.track-card { padding: 1.5rem; }
.status-pill {
  display: inline-flex; align-items: center; padding: 0.35rem 0.7rem; border-radius: 999px; font-size: 0.75rem; font-weight: 700;
}
.bg-light { background: #eef2f8; color: var(--text); }
.bg-primary-subtle { background: rgba(13,44,90,0.12); color: var(--primary); }
.bg-info { background: #dff1ff; color: #0068b7; }
.bg-warning { background: #fff1c5; color: #7a5700; }
.bg-secondary { background: #edf0f5; color: #4c596d; }
.bg-success { background: #dff7ea; color: var(--success); }
.bg-danger { background: #ffe1e5; color: var(--danger); }
.bg-dark { background: #202d3f; color: #fff; }
.text-primary { color: var(--primary); }
.text-white { color: #fff; }
.text-dark { color: var(--text); }

.contact-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 1.5rem; padding-bottom: 4rem; }
.contact-list { list-style: none; padding: 0; display: grid; gap: 0.8rem; }
.contact-box { padding: 1.5rem; }
.contact-box .btn { margin-bottom: 0.8rem; }

.prose { padding: 2rem 0 4rem; max-width: 900px; line-height: 1.8; color: var(--muted); }
.faq-list { display: grid; gap: 1rem; padding-bottom: 4rem; }
.faq-item { background: var(--surface); border: 1px solid var(--border); border-radius: 18px; padding: 1.5rem; }

.site-footer {
  background: #0d1627; color: #edf5ff; padding-top: 2.5rem; margin-top: 2rem; border-top: 1px solid rgba(255,255,255,0.06);
}
.footer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.site-footer h4 { margin-top: 0; }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.6rem; color: #cfe0f8; }
.site-footer a { color: #dfeeff; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.08); margin-top: 1.5rem; padding: 1rem 0 1.5rem; display: flex; justify-content: space-between; gap: 1rem; color: #dfeeff;
}

.alert { padding: 0.9rem 1rem; border-radius: 12px; margin: 1rem 0; }
.alert-success { background: #dff7ea; color: var(--success); border: 1px solid rgba(13,138,75,0.2); }
.alert-danger { background: #ffe1e5; color: var(--danger); border: 1px solid rgba(215,38,56,0.18); }
.flash-wrap { padding-top: 1rem; }

.admin-body { background: #f5f7fb; }
.admin-auth {
  min-height: 100vh; display: grid; place-items: center; padding: 2rem;
}
.admin-card { max-width: 480px; width: 100%; padding: 2rem; }
.admin-card h1 { margin-top: 0; }
.login-logo-link { display: block; width: min(100%, 300px); margin: 0 auto 1.25rem; }
.login-logo { width: 100%; height: auto; }
.small-muted { color: var(--muted); font-size: 0.82rem; }
.admin-topbar { background: var(--primary); color: #fff; padding: 1rem 0; }
.admin-nav { display: flex; justify-content: space-between; align-items: center; }
.admin-brand { display: flex; align-items: center; gap: 1rem; }
.admin-brand small { display: block; color: #dce9ff; margin-top: 0.25rem; }
.admin-logo { display: block; width: 170px; height: 70px; padding: 0.2rem; border-radius: 8px; background: #fff; object-fit: contain; }
.admin-actions { display: flex; gap: 0.8rem; }
.admin-actions .btn { white-space: nowrap; }
.admin-topbar .admin-actions .btn-outline {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.55);
  background: rgba(255, 255, 255, 0.08);
}
.admin-topbar .admin-actions .btn-outline:hover,
.admin-topbar .admin-actions .btn-outline:focus-visible {
  color: #fff;
  border-color: #fff;
  background: rgba(255, 255, 255, 0.18);
}
.admin-shell { width: min(1440px, calc(100% - 2rem)); padding: 2.25rem 0 4rem; }
.admin-topbar-label { color: #c6d8f4; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.1em; }
.dashboard-layout { display: grid; grid-template-columns: 232px minmax(0, 1fr); align-items: start; gap: 1.25rem; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.dashboard-sidebar {
  position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto;
  padding: 1rem; border: 1px solid var(--border); border-radius: 20px;
  background: rgba(255,255,255,0.94); box-shadow: 0 12px 32px rgba(9, 30, 66, 0.08);
}
.sidebar-user { display: flex; align-items: center; gap: 0.75rem; padding: 0.35rem 0.25rem 1rem; border-bottom: 1px solid var(--border); }
.sidebar-avatar {
  display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center;
  border-radius: 14px; color: #fff; font-weight: 800;
  background: linear-gradient(135deg, var(--primary), #2864a3);
}
.sidebar-user strong, .sidebar-user small { display: block; }
.sidebar-user strong { max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.88rem; }
.sidebar-user small { margin-top: 0.2rem; color: var(--muted); font-size: 0.75rem; }
.dashboard-menu { display: grid; gap: 0.25rem; padding-top: 0.9rem; }
.menu-group-title { padding: 0.5rem 0.65rem 0.35rem; color: #8290a4; font-size: 0.66rem; font-weight: 800; letter-spacing: 0.12em; }
.menu-group-account { margin-top: 0.75rem; border-top: 1px solid var(--border); padding-top: 1rem; }
.dashboard-menu-link {
  display: flex; min-height: 42px; align-items: center; gap: 0.65rem; padding: 0.45rem 0.6rem;
  border-radius: 11px; color: #526176; font-size: 0.84rem; font-weight: 650;
  transition: color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}
.dashboard-menu-link:hover { color: var(--primary); background: #f1f5fb; transform: translateX(2px); }
.dashboard-menu-link.active { color: #fff; background: linear-gradient(110deg, var(--primary), #1c4f88); box-shadow: 0 7px 16px rgba(13,44,90,0.16); }
.menu-icon { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 9px; background: #edf2f8; color: #61718a; font-size: 0.58rem; font-weight: 800; }
.dashboard-menu-link.active .menu-icon { background: rgba(255,255,255,0.17); color: #fff; }
.menu-count { margin-left: auto; padding: 0.15rem 0.45rem; border-radius: 999px; background: #edf2f8; color: #54647b; font-size: 0.7rem; }
.dashboard-menu-link.active .menu-count { color: #fff; background: rgba(255,255,255,0.17); }
.dashboard-menu-link.menu-logout { color: var(--danger); }
.dashboard-menu-link:focus-visible, .stat-card-link:focus-visible, .dashboard-shortcuts .btn:focus-visible {
  outline: 3px solid #78aef0;
  outline-offset: 3px;
}
.dashboard-content, .dashboard-content > section, .admin-panels, .admin-panels > .panel { min-width: 0; }
.dashboard-content > section[id] { scroll-margin-top: 1rem; }
.dashboard-top-actions { align-items: center; }
.admin-topbar .dashboard-top-actions .btn-outline {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.07);
}
.admin-topbar .dashboard-top-actions .btn-outline:hover,
.admin-topbar .dashboard-top-actions .btn-outline:focus-visible {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.8);
  background: rgba(255, 255, 255, 0.16);
}
.dashboard-heading {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem;
  min-height: 180px; margin-bottom: 1.5rem; padding: 1.75rem 2rem; border: 1px solid rgba(255,255,255,0.12);
  border-radius: 22px; color: #fff; background:
    radial-gradient(circle at 90% 10%, rgba(255,255,255,0.13), transparent 28%),
    linear-gradient(120deg, #0d2c5a, #174681);
  box-shadow: 0 16px 36px rgba(13, 44, 90, 0.16);
}
.dashboard-heading h1 { margin: 0.35rem 0; font-size: clamp(1.7rem, 3vw, 2.2rem); }
.dashboard-heading p { margin: 0; color: #dce9ff; }
.dashboard-date {
  display: inline-flex; margin-top: 1rem; padding: 0.38rem 0.65rem; border: 1px solid rgba(255,255,255,0.22);
  border-radius: 999px; color: #e2edff; background: rgba(255,255,255,0.08); font-size: 0.76rem; font-weight: 650;
}
.dashboard-eyebrow, .section-kicker {
  color: #8ea9d0; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em;
}
.dashboard-eyebrow { color: #c6d8f4; }
.dashboard-shortcuts { display: flex; flex-direction: column; align-items: stretch; gap: 0.65rem; min-width: 210px; }
.dashboard-shortcuts .btn { width: 100%; white-space: nowrap; }
.dashboard-shortcuts .btn-outline {
  color: #fff; border-color: rgba(255,255,255,0.5); background: rgba(255,255,255,0.08);
}
.dashboard-shortcuts .btn-outline:hover { background: rgba(255,255,255,0.16); }
.stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.5rem; }
.stat-card {
  position: relative; overflow: hidden; min-height: 132px;
  background: linear-gradient(135deg, #fff, #f7faff); color: var(--primary);
  border: 1px solid var(--border); border-radius: 18px; padding: 1.15rem 1.3rem;
  display: flex; flex-direction: column; gap: 0.35rem;
  box-shadow: 0 8px 24px rgba(9, 30, 66, 0.06);
}
.stat-card-link { display: flex; color: inherit; }
.stat-card-link:hover { transform: translateY(-3px); border-color: #c5d6ec; box-shadow: 0 14px 30px rgba(9, 30, 66, 0.11); }
.stat-card-link small { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.stat-card-link small b { color: #3b6fa9; font-size: 1rem; transition: transform 0.15s ease; }
.stat-card-link:hover small b { transform: translateX(3px); }
.stat-card::after {
  content: ""; position: absolute; width: 74px; height: 74px; right: -21px; top: -21px;
  border-radius: 50%; background: rgba(34, 103, 184, 0.08);
}
.stat-card span { color: var(--muted); font-size: 0.88rem; font-weight: 700; }
.stat-card strong { font-size: 2rem; line-height: 1.1; }
.stat-card small { color: var(--muted); font-size: 0.75rem; }
.admin-panels { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.2rem; margin-bottom: 1.2rem; }
.dashboard-content > .panel, .dashboard-editor-panel {
  border-color: #e1e8f1;
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(22, 43, 74, 0.055);
}
.dashboard-content > .panel { margin-bottom: 1.2rem; padding: 1.5rem; }
.admin-page-heading {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem;
  margin-bottom: 1.2rem; padding: 0.2rem 0.1rem;
}
.admin-page-heading h1 { margin: 0.25rem 0 0; color: var(--primary); font-size: clamp(1.55rem, 2.7vw, 2rem); }
.admin-page-date { color: var(--muted); font-size: 0.82rem; font-weight: 600; }
.dashboard-content-panel {
  border-color: #e1e8f1; border-radius: 18px;
  box-shadow: 0 10px 28px rgba(22, 43, 74, 0.055);
}
.dashboard-overview-panel { margin-bottom: 1.2rem; padding: 1.35rem; }
.admin-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.admin-overview-grid > .panel { min-width: 0; }
.overview-list { display: grid; }
.overview-list > a { display: flex; justify-content: space-between; gap: 1rem; padding: 0.85rem 0.15rem; border-bottom: 1px solid var(--border); }
.overview-list > a:last-child { border-bottom: 0; }
.overview-list > a:hover strong { color: #2864a3; }
.overview-list strong, .overview-list small { display: block; }
.overview-list strong { font-size: 0.9rem; }
.overview-list small { margin-top: 0.2rem; color: var(--muted); font-size: 0.77rem; }
.overview-value { color: var(--primary); font-size: 0.88rem; font-weight: 750; text-align: right; white-space: nowrap; }
.table-subtext { display: block; margin-top: 0.25rem; color: var(--muted); font-size: 0.74rem; }
.bookings-table { min-width: 1080px; }
.booking-quote-actions, .booking-quote-form { display: flex; align-items: center; gap: 0.45rem; flex-wrap: wrap; }
.booking-quote-form input[type="number"] { width: 115px; min-height: 40px; padding: 0.5rem 0.6rem; }
.booking-quote-actions > .document-action-link { flex: 0 0 auto; }
.notification-summary { margin: -0.3rem 0 1rem; color: var(--muted); font-size: 0.82rem; }
.notification-list { display: grid; gap: 0.8rem; }
.notification-card {
  display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 1rem;
  padding: 1rem; border: 1px solid var(--border); border-radius: 14px; background: #fff;
}
.notification-card.notification-unread { border-color: #c8dbf3; background: linear-gradient(105deg, #f2f7ff, #fff 60%); }
.notification-type { display: inline-flex; padding: 0.32rem 0.58rem; border-radius: 999px; background: #eaf1fb; color: var(--primary); font-size: 0.7rem; font-weight: 800; }
.notification-content { min-width: 0; }
.notification-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.notification-heading h3 { margin: 0; font-size: 0.98rem; }
.notification-heading time { color: var(--muted); font-size: 0.74rem; white-space: nowrap; }
.notification-content > p { margin: 0.5rem 0; color: #526176; font-size: 0.88rem; line-height: 1.55; }
.notification-content form { display: flex; justify-content: flex-end; }
.notification-read-button { padding: 0.4rem 0; border: 0; color: var(--primary); background: transparent; font-size: 0.78rem; font-weight: 750; cursor: pointer; }
.notification-read-button:hover { text-decoration: underline; }
.notification-read-label { display: block; color: var(--success); font-size: 0.76rem; font-weight: 700; text-align: right; }
.admin-shell > .panel, .admin-panels > .panel { padding: 1.5rem; margin-bottom: 1.2rem; }
.admin-panels > .panel { margin-bottom: 0; }
.dashboard-editor-panel form:not(.inline-form) {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 1rem;
}
.dashboard-editor-panel form > input[type="hidden"] { display: none; }
.dashboard-editor-panel form label:last-of-type { grid-column: span 2; }
.dashboard-editor-panel form .inline-actions { align-self: end; padding-bottom: 0.15rem; }
.dashboard-bookings-panel { scroll-margin-top: 1.5rem; }
.panel h3 { margin-top: 0; }
.section-title { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: 1rem; }
.section-title h2 { margin: 0.3rem 0 0; font-size: 1.25rem; }
.section-title > p { max-width: 34rem; margin: 0; color: var(--muted); font-size: 0.88rem; text-align: right; }
.panel-heading-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.panel-heading-row .section-title { flex: 1; }
.panel form { display: grid; gap: 0.8rem; }
.panel table { width: 100%; border-collapse: collapse; }
.panel th, .panel td { text-align: left; padding: 0.85rem 0.75rem; border-bottom: 1px solid var(--border); vertical-align: middle; }
.panel th { color: var(--muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.045em; background: #f7f9fc; white-space: nowrap; }
.panel thead th { border-bottom-color: #d9e3ef; }
.panel tbody tr:hover { background: #f8faff; }
.panel td.empty-state-cell { padding: 1.5rem; color: var(--muted); text-align: center; }
.catalogue-list > .empty-state-cell { margin: 0; padding: 1.5rem; color: var(--muted); text-align: center; }
.table-wrap { width: 100%; overflow-x: auto; }
.dashboard-bookings-panel .table-wrap { border: 1px solid var(--border); border-radius: 14px; }
.dashboard-bookings-panel table { min-width: 1050px; }
.dashboard-bookings-panel .inline-actions { min-width: 280px; }
.dashboard-bookings-panel td:first-child { font-weight: 700; color: var(--primary); white-space: nowrap; }
.panel details { margin-top: 0.35rem; }
.panel details summary { color: var(--primary); cursor: pointer; font-size: 0.8rem; font-weight: 700; }
.panel details p { color: var(--muted); font-size: 0.8rem; line-height: 1.5; }
.panel input, .panel select, .panel textarea { min-width: 0; }
.panel .inline-form input[type="number"] { width: 105px; min-height: 42px; padding: 0.55rem 0.65rem; }
.settings-form { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
.settings-form > button { justify-self: start; }
.admin-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1.5rem; }
.customer-stats { margin: 0 0 1rem; }
.customer-search-form { max-width: 620px; margin-bottom: 1rem; }
.customer-search-form .inline-actions { width: 100%; }
.customer-search-form input { flex: 1; min-height: 44px; padding: 0.6rem 0.8rem; border: 1px solid var(--border); border-radius: 9px; }
.customer-table { min-width: 850px; }
.customer-table td:first-child small { display: block; margin-top: 0.2rem; color: var(--muted); }
.customer-status { display: inline-flex; padding: 0.3rem 0.55rem; border-radius: 20px; font-size: 0.76rem; font-weight: 750; }
.customer-status.is-active { color: #087647; background: #e6f7ef; }
.customer-status.is-disabled { color: #a32331; background: #ffedef; }
.customer-status.is-guest { color: #566276; background: #eef2f7; }
.customer-edit-form { min-width: 230px; margin: 0.7rem 0; }
.customer-edit-form input { min-height: 38px; padding: 0.5rem; border: 1px solid var(--border); border-radius: 8px; }
.customer-admin-note { margin: 1rem 0 0; color: var(--muted); font-size: 0.85rem; }
.customer-admin-note a { color: var(--primary); font-weight: 700; }
.profile-panel { max-width: 760px; margin: 0 auto; }
.profile-panel form { max-width: 560px; }
.report-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 1.2rem 0 2rem; }
.catalogue-list { display: grid; gap: 0.8rem; }
.catalogue-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.8rem 0; border-bottom: 1px solid var(--border); }
.catalogue-item small { display: block; color: var(--muted); }
.inline-actions { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
.inline-form { display: inline-block; }
.panel form.inline-form { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.inline-delete { margin-left: auto; }
.text-delete {
  border: none; background: transparent; color: var(--danger); font-weight: 700; cursor: pointer; padding: 0;
}
.catalogue-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.catalogue-actions > span { font-size: 0.8rem; color: var(--muted); }
.document-action-link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 38px;
  padding: 0.5rem 0.75rem; border: 1px solid var(--border); border-radius: 9px;
  color: var(--primary); background: #f5f8fd; font-size: 0.8rem; font-weight: 750; white-space: nowrap;
}
.document-action-link:hover { color: #fff; border-color: var(--primary); background: var(--primary); }
.document-shell { max-width: 960px; padding: 2rem 0 4rem; }
.document-actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 0.75rem; }
.document-actions > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.65rem; }
.document-send-note { margin: 0 0 1.25rem; color: var(--muted); font-size: 0.84rem; }
.document-phone-warning { align-self: center; color: var(--danger); font-size: 0.8rem; }
.printable-document { padding: clamp(1.25rem, 4vw, 2.5rem); }
.printable-document-header { display: flex; align-items: center; gap: 1.5rem; padding-bottom: 1.5rem; border-bottom: 2px solid var(--primary); }
.printable-document-header img { width: 185px; height: 76px; object-fit: contain; }
.printable-document-header h1 { margin: 0 0 0.4rem; color: var(--primary); font-size: 1.45rem; }
.printable-document-header p { margin: 0.2rem 0; color: var(--muted); font-size: 0.82rem; line-height: 1.5; }
.document-title-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin: 1.7rem 0; }
.document-title-row h2 { margin: 0.35rem 0 0; color: var(--primary); font-size: 1.8rem; }
.document-title-row > strong { color: var(--primary); font-size: 0.95rem; }
.document-details-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-bottom: 1.5rem; }
.document-details-grid > div:first-child { display: grid; align-content: start; gap: 0.35rem; }
.document-details-grid > div:first-child > strong { font-size: 1.05rem; }
.document-details-grid > div:first-child > span:not(.document-label) { color: var(--muted); font-size: 0.88rem; line-height: 1.5; }
.document-label { color: var(--muted); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.1em; }
.document-details-grid p { margin: 0 0 0.55rem; line-height: 1.45; }
.document-service-photo { display: block; width: min(100%, 260px); max-height: 150px; margin: 0.5rem 0 0.85rem; border-radius: 12px; object-fit: cover; }
.document-lines { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.document-lines th, .document-lines td { padding: 0.85rem 1rem; border-bottom: 1px solid var(--border); text-align: left; }
.document-lines th:last-child, .document-lines td:last-child { text-align: right; white-space: nowrap; }
.document-lines .document-total th { color: var(--primary); background: #f2f6fc; font-size: 1.05rem; }
.document-lines .document-balance th { color: var(--danger); background: #fff6f6; }
.document-footer { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--border); color: var(--muted); font-size: 0.84rem; }

@media (max-width: 860px) {
  .main-nav, .nav-actions { display: none; }
  .hero-grid, .feature-strip, .cards-grid, .review-grid, .track-grid, .contact-grid, .admin-panels, .footer-grid { grid-template-columns: 1fr; }
  .admin-nav { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .admin-actions { flex-wrap: wrap; }
  .dashboard-top-actions { width: 100%; }
  .admin-shell { width: min(calc(100% - 1rem), 760px); padding-top: 1rem; }
  .dashboard-layout { grid-template-columns: minmax(0, 1fr); gap: 0.8rem; }
  .dashboard-sidebar { position: static; max-height: none; padding: 0.65rem; overflow: visible; }
  .sidebar-user { display: none; }
  .dashboard-menu { display: flex; gap: 0.35rem; overflow-x: auto; padding: 0.1rem 0.1rem 0.4rem; }
  .menu-group-title { display: none; }
  .dashboard-menu-link { flex: 0 0 auto; min-height: 40px; padding: 0.35rem 0.5rem; }
  .dashboard-menu-link > span:nth-child(2) { white-space: nowrap; }
  .menu-count { display: none; }
  .dashboard-menu-link:hover { transform: none; }
  .dashboard-menu-link.menu-logout { margin-left: auto; }
  .settings-form, .admin-create-form, .report-grid { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-editor-panel form:not(.inline-form) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-heading { align-items: flex-start; flex-direction: column; }
  .admin-overview-grid { grid-template-columns: 1fr; }
  .admin-page-heading { align-items: flex-start; flex-direction: column; }
  .notification-heading { align-items: flex-start; flex-direction: column; gap: 0.35rem; }
  .section-title { align-items: flex-start; flex-direction: column; }
  .section-title > p { text-align: left; }
  .panel-heading-row { align-items: flex-start; flex-direction: column; }
  .form-grid { grid-template-columns: 1fr; }
  .cta-row { flex-direction: column; }
  .brand small { display: none; }
}

@media (max-width: 520px) {
  .stats-grid, .dashboard-editor-panel form:not(.inline-form) { grid-template-columns: 1fr; }
  .dashboard-editor-panel form label:last-of-type { grid-column: auto; }
  .dashboard-heading { padding: 1.35rem; }
  .dashboard-heading { min-height: 0; }
  .dashboard-overview-panel { padding: 1rem; }
  .admin-page-date { font-size: 0.76rem; }
  .notification-card { grid-template-columns: 1fr; gap: 0.55rem; }
  .dashboard-shortcuts { width: 100%; }
  .dashboard-shortcuts .btn { flex: 1; padding-inline: 0.8rem; }
  .admin-shell > .panel, .admin-panels > .panel { padding: 1rem; }
  .document-actions { align-items: stretch; flex-direction: column; }
  .document-actions > div { justify-content: stretch; }
  .document-actions .btn { flex: 1; padding-inline: 0.7rem; font-size: 0.82rem; }
  .printable-document-header { align-items: flex-start; flex-direction: column; gap: 0.75rem; }
  .document-title-row { align-items: flex-start; flex-direction: column; }
  .document-details-grid { grid-template-columns: 1fr; gap: 0.9rem; }
}

@media print {
  body { background: #fff; color: #111; }
  body > header, body > footer, .flash-wrap, .invoice-actions, .document-actions, .document-send-note { display: none !important; }
  .invoice-document, .printable-document { max-width: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; }
  .invoice-document table, .invoice-document th, .invoice-document td, .printable-document th, .printable-document td { color: #111 !important; }
  .document-shell { width: 100% !important; max-width: none !important; padding: 0 !important; }
  .printable-document-header, .document-title-row, .document-details-grid, .document-lines tr { break-inside: avoid; }
}
