/* Mr Duck partner theme — Modernist design system mapped onto Bootstrap 5.3.
   Source of truth for the partner look; loaded after Bootstrap. */

:root {
  --md-bg: #f3f2f2;
  --md-surface: #fbfafa;
  --md-ink: #201e1d;
  --md-sidebar: #1d1c1b;
  --md-n100: #f8f4f4;
  --md-n200: #eae7e7;
  --md-n300: #d7d3d3;
  --md-n400: #bab6b6;
  --md-n500: #9b9797;
  --md-n700: #605d5d;
  --md-n800: #444141;
  --md-n900: #2d2b2b;
  --md-divider: color-mix(in srgb, #201e1d 40%, transparent);
  --md-yellow: oklch(0.86 0.15 88);
  --md-yellow-hover: oklch(0.81 0.15 85);
  --md-yellow-mark: oklch(0.85 0.16 88);
  --md-danger: #ae1800;
  --md-danger-dark: #7c1405;
  --md-danger-tint: #fff2ef;
  --md-shadow-md: 0 3px 10px color-mix(in srgb, #2d2b2b 16%, transparent);
  --md-shadow-lg: 0 12px 32px color-mix(in srgb, #2d2b2b 22%, transparent);

  /* Bootstrap globals */
  --bs-body-font-family: "Archivo", system-ui, sans-serif;
  --bs-body-font-size: 15px;
  --bs-body-line-height: 1.55;
  --bs-body-color: var(--md-ink);
  --bs-body-bg: var(--md-bg);
  --bs-emphasis-color: var(--md-ink);
  --bs-secondary-color: var(--md-n700);
  --bs-border-color: var(--md-n300);
  --bs-border-radius: 0;
  --bs-border-radius-sm: 0;
  --bs-border-radius-lg: 0;
  --bs-border-radius-xl: 0;
  --bs-border-radius-xxl: 0;
  --bs-border-radius-pill: 0;
  --bs-primary: #201e1d;
  --bs-primary-rgb: 32, 30, 29;
  --bs-primary-bg-subtle: var(--md-n200);
  --bs-primary-border-subtle: var(--md-n300);
  --bs-primary-text-emphasis: var(--md-ink);
  --bs-link-color: var(--md-ink);
  --bs-link-color-rgb: 32, 30, 29;
  --bs-link-hover-color: var(--md-n700);
  --bs-link-hover-color-rgb: 96, 93, 93;
  --bs-focus-ring-color: color-mix(in srgb, #201e1d 25%, transparent);
}

body { font-family: var(--bs-body-font-family); background: var(--md-bg); }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--bs-body-font-family); font-weight: 800; letter-spacing: -0.015em; line-height: 1.12;
}
a { text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--md-ink); outline-offset: 2px; }
::selection { background: color-mix(in srgb, var(--md-yellow) 45%, transparent); }
.shadow, .shadow-sm, .shadow-lg { box-shadow: none !important; }
.bg-gradient { background-image: none !important; }

/* ── Buttons ───────────────────────────────────────────── */
.btn {
  --bs-btn-font-weight: 600;
  --bs-btn-font-size: 14px;
  --bs-btn-padding-x: 12px;
  --bs-btn-padding-y: 7px;
  --bs-btn-focus-box-shadow: none;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
.btn-sm { --bs-btn-font-size: 13px; --bs-btn-padding-x: 10px; --bs-btn-padding-y: 5px; }
.btn-lg { --bs-btn-font-size: 15px; --bs-btn-padding-x: 16px; --bs-btn-padding-y: 10px; }
.btn:focus-visible { outline: 2px solid var(--md-ink); outline-offset: 2px; }
.btn:disabled, .btn.disabled { opacity: 0.45; }

.btn-primary, .btn-warning {
  --bs-btn-color: var(--md-ink); --bs-btn-bg: var(--md-yellow); --bs-btn-border-color: var(--md-yellow);
  --bs-btn-hover-color: var(--md-ink); --bs-btn-hover-bg: var(--md-yellow-hover); --bs-btn-hover-border-color: var(--md-yellow-hover);
  --bs-btn-active-color: var(--md-ink); --bs-btn-active-bg: var(--md-yellow-hover); --bs-btn-active-border-color: var(--md-yellow-hover);
  --bs-btn-disabled-color: var(--md-ink); --bs-btn-disabled-bg: var(--md-yellow); --bs-btn-disabled-border-color: var(--md-yellow);
}
.btn-dark, .btn-success, .btn-info {
  --bs-btn-color: var(--md-n100); --bs-btn-bg: var(--md-ink); --bs-btn-border-color: var(--md-ink);
  --bs-btn-hover-color: var(--md-n100); --bs-btn-hover-bg: var(--md-n800); --bs-btn-hover-border-color: var(--md-n800);
  --bs-btn-active-color: var(--md-n100); --bs-btn-active-bg: var(--md-n900); --bs-btn-active-border-color: var(--md-n900);
  --bs-btn-disabled-color: var(--md-n100); --bs-btn-disabled-bg: var(--md-ink); --bs-btn-disabled-border-color: var(--md-ink);
}
.btn-danger {
  --bs-btn-color: #fff; --bs-btn-bg: var(--md-danger); --bs-btn-border-color: var(--md-danger);
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--md-danger-dark); --bs-btn-hover-border-color: var(--md-danger-dark);
  --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--md-danger-dark); --bs-btn-active-border-color: var(--md-danger-dark);
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: var(--md-danger); --bs-btn-disabled-border-color: var(--md-danger);
}
/* Strong ink outline — the page-level secondary action */
.btn-outline-primary, .btn-outline-dark {
  --bs-btn-border-width: 2px;
  --bs-btn-color: var(--md-ink); --bs-btn-bg: transparent; --bs-btn-border-color: var(--md-ink);
  --bs-btn-hover-color: var(--md-n100); --bs-btn-hover-bg: var(--md-ink); --bs-btn-hover-border-color: var(--md-ink);
  --bs-btn-active-color: var(--md-n100); --bs-btn-active-bg: var(--md-ink); --bs-btn-active-border-color: var(--md-ink);
  --bs-btn-disabled-color: var(--md-ink); --bs-btn-disabled-border-color: var(--md-ink);
}
/* Neutral outline — everyday actions */
.btn-secondary, .btn-light, .btn-outline-secondary, .btn-outline-success, .btn-outline-warning, .btn-outline-info, .btn-outline-light {
  --bs-btn-color: var(--md-n900); --bs-btn-bg: transparent; --bs-btn-border-color: var(--md-n500);
  --bs-btn-hover-color: var(--md-ink); --bs-btn-hover-bg: var(--md-n200); --bs-btn-hover-border-color: var(--md-n500);
  --bs-btn-active-color: var(--md-ink); --bs-btn-active-bg: var(--md-n300); --bs-btn-active-border-color: var(--md-n500);
  --bs-btn-disabled-color: var(--md-n900); --bs-btn-disabled-bg: transparent; --bs-btn-disabled-border-color: var(--md-n500);
}
.btn-outline-danger {
  --bs-btn-color: var(--md-danger); --bs-btn-bg: transparent; --bs-btn-border-color: var(--md-danger);
  --bs-btn-hover-color: var(--md-danger-dark); --bs-btn-hover-bg: var(--md-danger-tint); --bs-btn-hover-border-color: var(--md-danger);
  --bs-btn-active-color: var(--md-danger-dark); --bs-btn-active-bg: var(--md-danger-tint); --bs-btn-active-border-color: var(--md-danger);
}
.btn-link { --bs-btn-color: var(--md-n800); --bs-btn-hover-color: var(--md-ink); text-decoration-color: var(--md-n400); }

/* Brand buttons used by the guest/auth pages */
.btn-jd365-primary { background: var(--md-yellow) !important; color: var(--md-ink) !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; font-weight: 600; }
.btn-jd365-primary:hover { background: var(--md-yellow-hover) !important; transform: none !important; }
.btn-outline-jd365 { background: transparent !important; color: var(--md-ink) !important; border: 2px solid var(--md-ink) !important; border-radius: 0 !important; }
.btn-outline-jd365:hover { background: var(--md-ink) !important; color: var(--md-n100) !important; }

/* ── Cards ─────────────────────────────────────────────── */
.card {
  --bs-card-bg: var(--md-surface); --bs-card-border-color: var(--md-n300);
  --bs-card-cap-bg: transparent; --bs-card-box-shadow: none;
}
.card-header { border-bottom: 2px solid var(--md-divider); font-weight: 800; }
.card-footer { background: transparent; }
.card-stat { background: var(--md-sidebar); color: var(--md-n100); border: 0; box-shadow: none; }
.card-stat.equipment { background: var(--md-yellow); color: var(--md-ink); }
.card-stat.income { background: var(--md-ink); color: var(--md-n100); }
.card-stat.maintenance { background: oklch(0.95 0.05 85); color: oklch(0.42 0.08 65); }
/* Legacy jd365 cards still used by finances/transactions (jd365-brand.css is not loaded here) */
.stat-card { background: var(--md-sidebar); color: var(--md-n100); border: 0; }
.stat-card-income { background: var(--md-ink); }
.stat-card-equipment { background: var(--md-yellow); color: var(--md-ink); }
.card-jd365-header { padding: 12px 16px; border-bottom: 2px solid var(--md-divider); font-weight: 800; }

/* ── Badges ────────────────────────────────────────────── */
.badge { font-weight: 600; font-size: 12px; padding: 4px 8px; }
.badge.bg-success, .text-bg-success, .badge-jd365-success { background: oklch(0.95 0.035 150) !important; color: oklch(0.38 0.08 150) !important; }
.badge.bg-warning, .text-bg-warning, .badge-jd365-warning { background: oklch(0.95 0.05 85) !important; color: oklch(0.42 0.08 65) !important; }
.badge.bg-danger, .text-bg-danger { background: var(--md-danger-tint) !important; color: var(--md-danger-dark) !important; }
.badge.bg-primary, .badge.bg-info, .text-bg-primary, .text-bg-info, .badge-jd365-primary { background: oklch(0.94 0.03 250) !important; color: oklch(0.40 0.08 250) !important; }
.badge.bg-secondary, .badge.bg-light, .badge.bg-dark, .text-bg-secondary, .text-bg-light, .text-bg-dark { background: var(--md-n200) !important; color: var(--md-n800) !important; }

/* ── Forms ─────────────────────────────────────────────── */
.form-label { font-size: 13px; font-weight: 600; color: var(--md-n800); }
.form-control, .form-select { font-size: 15px; padding: 9px 12px; border-color: var(--md-n500); background-color: var(--md-n100); color: var(--md-ink); }
.form-select { padding-right: 36px; }
.form-control:focus, .form-select:focus { border-color: var(--md-ink); box-shadow: 0 0 0 1px var(--md-ink); }
.form-control-sm, .form-select-sm { font-size: 13px; padding: 5px 10px; }
.form-check-input { border-color: var(--md-n500); }
.form-check-input:checked { background-color: var(--md-ink); border-color: var(--md-ink); }
.form-check-input:focus { border-color: var(--md-ink); box-shadow: none; }
.form-switch .form-check-input { border-radius: 2em; }
.input-group-text { background: var(--md-n200); border-color: var(--md-n500); }
.form-text { color: var(--md-n700); }

/* ── Tables ────────────────────────────────────────────── */
.table {
  --bs-table-bg: transparent; --bs-table-color: var(--md-ink);
  --bs-table-border-color: var(--md-n300);
  --bs-table-striped-bg: color-mix(in srgb, #201e1d 3%, transparent);
  --bs-table-hover-bg: color-mix(in srgb, #201e1d 4%, transparent);
  font-size: 14px;
}
.table > thead th, .table > thead td {
  font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--md-n700); border-bottom: 2px solid var(--md-divider);
}
.table-light, .table-dark { --bs-table-bg: transparent; --bs-table-color: var(--md-n700); --bs-table-border-color: var(--md-n300); }

/* ── Modal / dropdown / alert ──────────────────────────── */
.modal { --bs-modal-border-color: var(--md-n300); --bs-modal-box-shadow: var(--md-shadow-lg); --bs-modal-header-border-color: var(--md-n200); --bs-modal-footer-border-color: var(--md-n200); --bs-modal-bg: var(--md-surface); }
.modal-content { box-shadow: var(--md-shadow-lg); }
.modal-title { font-weight: 800; }
.dropdown-menu {
  --bs-dropdown-border-color: var(--md-n400); --bs-dropdown-link-hover-bg: var(--md-n200);
  --bs-dropdown-link-active-bg: var(--md-ink); --bs-dropdown-link-active-color: var(--md-n100);
  --bs-dropdown-bg: var(--md-surface); --bs-dropdown-font-size: 14px;
  box-shadow: var(--md-shadow-md);
}
.alert { border-width: 0 0 0 3px; font-size: 14px; }
.alert-success { --bs-alert-bg: oklch(0.95 0.035 150); --bs-alert-color: oklch(0.38 0.08 150); --bs-alert-border-color: oklch(0.58 0.12 150); }
.alert-warning { --bs-alert-bg: oklch(0.95 0.05 85); --bs-alert-color: oklch(0.42 0.08 65); --bs-alert-border-color: oklch(0.7 0.14 70); }
.alert-danger { --bs-alert-bg: var(--md-danger-tint); --bs-alert-color: var(--md-danger-dark); --bs-alert-border-color: var(--md-danger); }
.alert-info, .alert-primary, .alert-secondary, .alert-light { --bs-alert-bg: var(--md-n200); --bs-alert-color: var(--md-n900); --bs-alert-border-color: var(--md-ink); }

/* ── Navs, pagination, misc ────────────────────────────── */
.nav-tabs { --bs-nav-tabs-border-color: var(--md-divider); --bs-nav-tabs-border-width: 2px; --bs-nav-tabs-link-active-color: var(--md-ink); --bs-nav-tabs-link-active-bg: var(--md-bg); --bs-nav-tabs-link-active-border-color: var(--md-divider) var(--md-divider) var(--md-bg); --bs-nav-link-color: var(--md-n800); --bs-nav-link-hover-color: var(--md-ink); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--md-ink); --bs-nav-pills-link-active-color: var(--md-n100); --bs-nav-link-color: var(--md-n800); --bs-nav-link-hover-color: var(--md-ink); }
.pagination { --bs-pagination-color: var(--md-ink); --bs-pagination-bg: transparent; --bs-pagination-border-color: var(--md-n300); --bs-pagination-hover-color: var(--md-ink); --bs-pagination-hover-bg: var(--md-n200); --bs-pagination-hover-border-color: var(--md-n300); --bs-pagination-focus-box-shadow: none; --bs-pagination-active-bg: var(--md-ink); --bs-pagination-active-border-color: var(--md-ink); --bs-pagination-active-color: var(--md-n100); }
.progress { --bs-progress-bg: var(--md-n200); --bs-progress-bar-bg: var(--md-ink); }
.list-group { --bs-list-group-bg: var(--md-surface); --bs-list-group-border-color: var(--md-n300); --bs-list-group-active-bg: var(--md-ink); --bs-list-group-active-border-color: var(--md-ink); --bs-list-group-action-hover-bg: var(--md-n200); }
.breadcrumb { --bs-breadcrumb-divider-color: var(--md-n500); --bs-breadcrumb-item-active-color: var(--md-n700); font-size: 13px; }
.border-bottom { border-bottom-color: var(--md-n300) !important; }

/* ── Shell: sidebar, header, footer ────────────────────── */
.sidebar {
  position: fixed; top: 0; left: 0; bottom: 0; width: 232px; z-index: 1000; overflow-y: auto;
  display: flex; flex-direction: column; gap: 24px; padding: 24px 0;
  background: var(--md-sidebar); color: var(--md-n300);
}
.sidebar-brand { display: flex; flex-direction: column; gap: 12px; padding: 0 24px; }
.sidebar-wordmark { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; color: var(--md-n100); text-decoration: none; }
.sidebar-wordmark span { color: var(--md-yellow-mark); }
.sidebar-wordmark:hover { color: var(--md-n100); }
.sidebar-company { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--md-n400); }
.sidebar-company::before { content: ""; width: 6px; height: 6px; flex: none; background: var(--md-yellow-mark); }
.sidebar .nav-link { display: flex; align-items: center; gap: 12px; padding: 10px 24px; font-size: 15px; color: var(--md-n400); text-decoration: none; }
.sidebar .nav-link:hover { color: var(--md-n100); background: #262423; }
.sidebar .nav-link.active { color: var(--md-n100); background: var(--md-n900); box-shadow: inset 3px 0 0 var(--md-yellow-mark); }

.main-content { margin-left: 232px; min-height: 100vh; display: flex; flex-direction: column; }
.top-nav {
  display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 12px 32px; border-bottom: 1px solid var(--md-n300);
}
.top-nav-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-left: auto; }
.top-nav .btn { --bs-btn-font-weight: 400; --bs-btn-padding-y: 6px; }
.top-nav .btn-user { --bs-btn-font-weight: 600; }
.lang-switch { display: flex; border: 1px solid var(--md-n400); }
.lang-switch a { font-size: 13px; padding: 4px 10px; color: var(--md-n800); text-decoration: none; }
.lang-switch a:hover { background: var(--md-n200); }
.lang-switch a.active { background: var(--md-ink); color: var(--md-n100); font-weight: 600; }
.page-body { padding: 32px; width: 100%; }
.md-footer { margin-top: auto; padding: 24px 32px; background: var(--md-sidebar); color: var(--md-n400); font-size: 13px; }
.md-footer strong { color: var(--md-n100); }
.md-footer a { color: var(--md-yellow-mark); text-decoration: none; }
.md-footer hr { border-color: var(--md-n800); opacity: 1; }

@media (max-width: 767.98px) {
  .sidebar { transform: translateX(-100%); transition: transform 0.3s; }
  .sidebar.show { transform: none; }
  .main-content { margin-left: 0; }
  .top-nav, .page-body, .md-footer { padding-left: 16px; padding-right: 16px; }
}

@media print {
  .sidebar, .top-nav, .md-footer { display: none !important; }
  .main-content { margin-left: 0 !important; }
}

/* ── Page pattern + equipment overview ─────────────────── */
.md-page { display: flex; flex-direction: column; gap: 32px; }
.md-page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.md-page-head h1 { margin: 0; font-size: 34px; }
.md-page-subtitle { font-size: 15px; color: var(--md-n700); }
.md-toolbar { display: flex; align-items: flex-end; gap: 24px; flex-wrap: wrap; padding-bottom: 16px; border-bottom: 2px solid var(--md-divider); }
.md-field { display: flex; flex-direction: column; gap: 6px; font-size: 13px; font-weight: 600; color: var(--md-n800); flex: 1 1 320px; max-width: 460px; }
.md-field .form-select { font-weight: 400; }
.md-check { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--md-n900); padding-bottom: 10px; cursor: pointer; }
.md-check .form-check-input { width: 16px; height: 16px; margin: 0; }
.md-toolbar-actions { display: flex; gap: 8px; margin-left: auto; padding-bottom: 2px; }
.md-groups { display: flex; flex-direction: column; gap: 32px; }
.md-group { display: flex; flex-direction: column; gap: 16px; }
.md-group-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.md-group-title { margin: 0; font-size: 20px; }
.md-group-meta { font-size: 14px; color: var(--md-n700); }
.md-group-actions { display: flex; gap: 8px; align-items: center; }
.md-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 16px; }
.md-item { display: flex; flex-direction: column; gap: 16px; padding: 16px; background: var(--md-surface); border: 1px solid var(--md-n300); }
.md-item:hover { border-color: var(--md-n500); }
.md-item.is-selected { border-color: var(--md-ink); box-shadow: inset 0 0 0 1px var(--md-ink); }
.md-item-head { display: flex; align-items: flex-start; gap: 12px; }
.md-item-head .form-check-input { width: 16px; height: 16px; margin: 3px 0 0; flex: none; }
.md-item-title { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; cursor: pointer; }
.md-item-name { font-size: 16px; font-weight: 600; color: var(--md-ink); }
.md-item-type { font-size: 13px; color: var(--md-n700); }
.md-item-usage { font-size: 14px; color: var(--md-n800); padding-left: 28px; }
.md-item-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; padding-top: 12px; border-top: 1px solid var(--md-n200); }
.md-link-btn {
  font: inherit; font-size: 14px; padding: 7px 4px; border: 0; background: transparent; cursor: pointer;
  color: var(--md-n800); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--md-n400);
}
.md-link-btn:hover { color: var(--md-ink); text-decoration-color: var(--md-ink); }
.md-link-btn:disabled, .md-link-btn.is-disabled { opacity: 0.45; cursor: not-allowed; text-decoration: none; }
.md-status { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; padding: 3px 8px; white-space: nowrap; }
.md-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--dot); }
.md-status--available { background: oklch(0.95 0.035 150); color: oklch(0.38 0.08 150); --dot: oklch(0.58 0.12 150); }
.md-status--maintenance { background: oklch(0.95 0.05 85); color: oklch(0.42 0.08 65); --dot: oklch(0.7 0.14 70); }
.md-status--in-use { background: oklch(0.94 0.03 250); color: oklch(0.40 0.08 250); --dot: oklch(0.58 0.12 250); }
.md-status--broken { background: var(--md-danger-tint); color: var(--md-danger-dark); --dot: var(--md-danger); }
.md-status--unknown { background: var(--md-n200); color: var(--md-n800); --dot: var(--md-n500); }
.md-empty { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 24px; border: 1px dashed var(--md-n400); color: var(--md-n700); }
