/**
 * Rapid.lk – Sri Lanka's automotive marketplace
 * Developed by Shamath Udakara – ICT ASYST PTY LTD (https://ictasyst.com.au)
 *
 * public/assets/css/app.css
 *
 * Site styles on top of Bootstrap 5.3. Brand colours come from CSS variables (--rl-accent,
 * --rl-asphalt) set by the layout from Admin › Settings › Branding. Run php
 * bin/build-assets.php after editing to refresh app.min.css.
 */
/* Colour theme "Lagoon & Laterite".
 * - Lagoon night (--rl-asphalt): deep blue-teal for header, footer, hero and admin sidebar.
 *   Calm and trustworthy for a marketplace where people hand over money and keys.
 * - Laterite orange (--rl-accent): the colour of Sri Lanka's red-earth roads, used ONLY for
 *   the main action (Post an Ad, Search, Book) and for paid "Featured" placements.
 * - Status colours are separate and never reused for branding: green = verified/available,
 *   red = errors/booked, amber = warnings/pending, blue = links/information.
 * The two brand colours can be changed in Admin › Settings › Branding; the layout then
 * overrides these variables with values from brand_palette() (app/Helpers/functions.php),
 * which also derives readable text and hover shades. All pairs below meet WCAG AA. */
:root {
  --rl-asphalt: #0F3446;       /* lagoon night: header, footer, hero */
  --rl-asphalt-2: #274859;     /* raised surfaces on lagoon night */
  --rl-asphalt-deep: #0B2431;  /* top bar */
  --rl-asphalt-rgb: 15,52,70;  /* for the hero overlay */
  --rl-accent: #E8701C;        /* laterite orange: primary action, featured */
  --rl-accent-ink: #13222B;    /* text on laterite (5.2:1) */
  --rl-accent-hover: #EB8137;
  --rl-accent-deep: #BA5A16;   /* laterite as text/icons on white (4.6:1) */
  --rl-accent-soft: #FCEEE4;   /* tinted background */
  --rl-paper: #F3F5F6;
  --rl-ink: #13222B;
  --rl-muted: #55636D;         /* 5.7:1 on paper */
  --rl-line: #D8DEE2;
  --rl-link: #0B6890;          /* lagoon blue links: 6.2:1 on white */
  --rl-warn: #B42318;          /* errors, booked */
  --rl-ok: #1B7A4B;            /* verified, available */
  --rl-amber: #8A5300;         /* warnings, pending (text) */
  --rl-amber-bg: #FFF3D6;
  --rl-radius: 10px;
  --rl-radius-sm: 6px;
  --bs-body-font-family: "Barlow", "Noto Sans Sinhala", "Noto Sans Tamil", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-body-color: var(--rl-ink);
  --bs-body-bg: var(--rl-paper);
  --bs-link-color-rgb: 11, 104, 144;
  --bs-link-hover-color-rgb: 8, 78, 108;
  --bs-border-color: var(--rl-line);
}
html[lang="si"] { --bs-body-font-family: "Noto Sans Sinhala", "Barlow", system-ui, sans-serif; }
html[lang="ta"] { --bs-body-font-family: "Noto Sans Tamil", "Barlow", system-ui, sans-serif; }
body { font-size: 1rem; line-height: 1.55; background: var(--rl-paper); }
h1, h2, h3, h4, .display-font, .price {
  font-family: "Barlow Semi Condensed", "Noto Sans Sinhala", "Noto Sans Tamil", var(--bs-body-font-family);
  letter-spacing: -.01em;
}
h1, .h1 { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem); font-weight: 700; line-height: 1.12; }
h2, .h2 { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.75rem); font-weight: 700; line-height: 1.2; }
h3, .h3 { font-size: 1.25rem; font-weight: 600; }
a { text-decoration-thickness: 1px; text-underline-offset: 2px; }
:focus-visible { outline: 3px solid var(--rl-link); outline-offset: 2px; }
.skip-link { position: absolute; left: -999px; top: 0; z-index: 2000; background: #fff; padding: .5rem 1rem; }
.skip-link:focus { left: .5rem; top: .5rem; }

/* Buttons */
.btn { border-radius: var(--rl-radius-sm); font-weight: 600; }
.btn-accent { background: var(--rl-accent); color: var(--rl-accent-ink); border: 1px solid var(--rl-accent); }
.btn-accent:hover, .btn-accent:focus { background: var(--rl-accent-hover); color: var(--rl-accent-ink); border-color: var(--rl-accent-hover); }
.btn-accent:active { background: var(--rl-accent); color: var(--rl-accent-ink); }
.btn-asphalt { background: var(--rl-asphalt); color: #fff; border: 1px solid var(--rl-asphalt); }
.btn-asphalt:hover, .btn-asphalt:focus { background: var(--rl-asphalt-2); color: #fff; }
.btn-whatsapp { background: #1f8f4e; border-color: #1f8f4e; color: #fff; }
.btn-whatsapp:hover { background: #187540; color: #fff; }
.form-control, .form-select { border-radius: var(--rl-radius-sm); }
.form-label { font-weight: 600; margin-bottom: .3rem; }
.form-text { color: var(--rl-muted); }

/* Header */
.site-header { background: var(--rl-asphalt); color: #fff; }
.site-header .navbar-brand { font-family: "Barlow Semi Condensed", sans-serif; font-weight: 800; font-size: 1.6rem; color: #fff; letter-spacing: -.02em; }
.site-header .navbar-brand .dot { color: var(--rl-accent); }
.site-header .brand-logo { max-height: 40px; width: auto; }
.site-header .nav-link { color: rgba(255,255,255,.82); font-weight: 500; padding: .5rem .6rem; white-space: nowrap; }
.site-header .nav-link:hover, .site-header .nav-link.active { color: #fff; }
.site-header .nav-link.active { box-shadow: inset 0 -3px 0 var(--rl-accent); }
.site-header .navbar-toggler { border-color: rgba(255,255,255,.3); }
.site-header .navbar-toggler-icon { filter: invert(1); }
.topbar { background: var(--rl-asphalt-deep); font-size: .85rem; color: rgba(255,255,255,.7); }
.topbar a { color: rgba(255,255,255,.8); text-decoration: none; }
.mobile-actions { position: sticky; bottom: 0; z-index: 1020; background: var(--rl-asphalt); padding: .5rem; display: none; gap: .5rem; }
@media (max-width: 1199.98px) { .site-header .nav-link.active { box-shadow: inset 3px 0 0 var(--rl-accent); } }
@media (max-width: 991.98px) { .mobile-actions { display: flex; } .site-header .nav-link.active { box-shadow: inset 3px 0 0 var(--rl-accent); } }

/* Hero */
.hero { background: var(--rl-asphalt) center/cover no-repeat; color: #fff; position: relative; }
.hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(var(--rl-asphalt-rgb),.94) 0%, rgba(var(--rl-asphalt-rgb),.80) 55%, rgba(var(--rl-asphalt-rgb),.50) 100%); }
.hero > .container { position: relative; }
.hero h1 { font-size: clamp(2rem, 1.3rem + 3vw, 3.25rem); max-width: 18ch; }
.hero .lead { color: rgba(255,255,255,.82); max-width: 52ch; }
.lane { position: relative; height: 6px; background: repeating-linear-gradient(90deg, var(--rl-accent) 0 44px, transparent 44px 72px); }
.search-panel { background: #fff; color: var(--rl-ink); border-radius: var(--rl-radius); box-shadow: 0 12px 32px rgba(6,22,30,.30); }
.search-tabs { display: flex; gap: .25rem; overflow-x: auto; padding: .5rem .5rem 0; scrollbar-width: none; }
.search-tabs::-webkit-scrollbar { display: none; }
.search-tabs button { border: 0; background: transparent; padding: .6rem .9rem; font-weight: 600; color: var(--rl-muted); border-radius: var(--rl-radius-sm) var(--rl-radius-sm) 0 0; white-space: nowrap; }
.search-tabs button[aria-selected="true"] { color: var(--rl-ink); background: var(--rl-paper); box-shadow: inset 0 3px 0 var(--rl-accent); }
.search-body { background: var(--rl-paper); border-radius: 0 0 var(--rl-radius) var(--rl-radius); padding: 1rem; }

/* Sections */
.section { padding: 2.5rem 0; }
.section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.section-head h2 { margin: 0; }
.section-head a { white-space: nowrap; font-weight: 600; }
.surface { background: #fff; border: 1px solid var(--rl-line); border-radius: var(--rl-radius); }

/* Listing cards */
.lcard { background: #fff; border: 1px solid var(--rl-line); border-radius: var(--rl-radius); overflow: hidden; height: 100%; display: flex; flex-direction: column; position: relative; }
.lcard:hover { border-color: #AEB9C0; }
.lcard .ph { aspect-ratio: 4/3; background: #E6EBEE; position: relative; overflow: hidden; }
.lcard .ph img { width: 100%; height: 100%; object-fit: cover; }
.lcard .body { padding: .75rem .85rem .9rem; display: flex; flex-direction: column; gap: .2rem; flex: 1; }
.lcard .title { font-weight: 600; color: var(--rl-ink); text-decoration: none; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.lcard .title::after { content: ""; position: absolute; inset: 0; }
.lcard .price { font-size: 1.3rem; font-weight: 700; color: var(--rl-ink); }
.lcard .specs { font-size: .875rem; color: var(--rl-muted); }
.lcard .meta { font-size: .8rem; color: var(--rl-muted); margin-top: auto; padding-top: .35rem; }
.lcard .fav { position: absolute; top: .5rem; right: .5rem; z-index: 2; }
.lcard.is-featured { border-color: var(--rl-accent); box-shadow: 0 0 0 1px var(--rl-accent); }
.lcard.is-premium { border-color: #94A2AB; }
.tag { display: inline-block; font-size: .72rem; font-weight: 700; padding: .15rem .45rem; border-radius: 4px; background: var(--rl-accent); color: var(--rl-accent-ink); }
.tag-dark { background: var(--rl-asphalt); color: #fff; }
.tag-ok { background: #E2F2E9; color: var(--rl-ok); }
.tag-muted { background: #E9EDEF; color: var(--rl-muted); }
.ph .tags { position: absolute; left: .5rem; top: .5rem; display: flex; gap: .25rem; z-index: 1; }
.list-view .lcard { flex-direction: row; }
.list-view .lcard .ph { width: 38%; max-width: 260px; aspect-ratio: auto; min-height: 160px; flex-shrink: 0; }
@media (max-width: 575.98px) { .list-view .lcard .ph { width: 40%; min-height: 120px; } .list-view .lcard .price { font-size: 1.1rem; } }

/* Directory cards */
.dcard { background: #fff; border: 1px solid var(--rl-line); border-radius: var(--rl-radius); padding: 1rem; height: 100%; position: relative; display: flex; gap: .85rem; }
.dcard .logo { width: 64px; height: 64px; border-radius: 8px; object-fit: cover; background: #E6EBEE; flex-shrink: 0; }
.dcard .name { font-weight: 700; color: var(--rl-ink); text-decoration: none; font-size: 1.05rem; }
.dcard .name::after { content: ""; position: absolute; inset: 0; }
.open-now { color: var(--rl-ok); font-weight: 600; }
.closed-now { color: var(--rl-warn); font-weight: 600; }

/* Brand chips / districts */
.chip { display: inline-flex; align-items: center; gap: .35rem; padding: .4rem .75rem; border: 1px solid var(--rl-line); background: #fff; border-radius: 999px; color: var(--rl-ink); text-decoration: none; font-weight: 500; font-size: .92rem; }
.chip:hover { border-color: var(--rl-asphalt); }
.brand-tile { display: flex; align-items: center; justify-content: center; height: 64px; background: #fff; border: 1px solid var(--rl-line); border-radius: var(--rl-radius-sm); font-family: "Barlow Semi Condensed", sans-serif; font-weight: 700; font-size: 1.05rem; color: var(--rl-ink); text-decoration: none; }
.brand-tile:hover { border-color: var(--rl-asphalt); }
.cat-tile { display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; padding: .9rem; background: #fff; border: 1px solid var(--rl-line); border-radius: var(--rl-radius-sm); color: var(--rl-ink); text-decoration: none; height: 100%; font-weight: 600; }
.cat-tile i { font-size: 1.5rem; color: var(--rl-asphalt); }
.cat-tile:hover { border-color: var(--rl-asphalt); }

/* Filters */
.filters .form-label { font-size: .85rem; }
.filters-sticky { position: sticky; top: 1rem; }
.result-bar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: space-between; }
.active-filters .chip { font-size: .8rem; padding: .2rem .55rem; }

/* Detail page */
.gallery-main { aspect-ratio: 4/3; background: #111; border-radius: var(--rl-radius); overflow: hidden; position: relative; }
.gallery-main img { width: 100%; height: 100%; object-fit: contain; cursor: zoom-in; }
.gallery-thumbs { display: flex; gap: .5rem; overflow-x: auto; padding-top: .5rem; }
.gallery-thumbs button { border: 2px solid transparent; padding: 0; border-radius: 6px; overflow: hidden; flex: 0 0 84px; height: 63px; background: #E6EBEE; }
.gallery-thumbs button[aria-current="true"] { border-color: var(--rl-accent); }
.gallery-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.spec-table th { width: 42%; color: var(--rl-muted); font-weight: 500; }
.contact-box { position: sticky; top: 1rem; }
.price-xl { font-size: clamp(1.8rem, 1.4rem + 1.5vw, 2.4rem); font-weight: 700; line-height: 1; }
.lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.92); z-index: 2000; display: none; align-items: center; justify-content: center; }
.lightbox.open { display: flex; }
.lightbox img { max-width: 94vw; max-height: 88vh; object-fit: contain; transition: transform .2s; }
.lightbox img.zoomed { transform: scale(1.8); cursor: zoom-out; }
.lightbox .lb-btn { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; width: 48px; height: 48px; border-radius: 50%; font-size: 1.4rem; }
.lightbox .lb-close { top: 1rem; right: 1rem; }
.lightbox .lb-prev { left: 1rem; top: 50%; }
.lightbox .lb-next { right: 1rem; top: 50%; }
.safety-note { background: var(--rl-amber-bg); border: 1px solid #EBC66E; border-radius: var(--rl-radius-sm); padding: .75rem .9rem; font-size: .9rem; }

/* Account / dashboard */
.account-nav .list-group-item { border: 0; border-radius: var(--rl-radius-sm) !important; padding: .55rem .8rem; color: var(--rl-ink); }
.account-nav .list-group-item.active { background: var(--rl-asphalt); color: #fff; }
.account-nav .list-group-item i { width: 1.4rem; display: inline-block; }
.stat { background: #fff; border: 1px solid var(--rl-line); border-radius: var(--rl-radius); padding: 1rem; }
.stat .n { font-family: "Barlow Semi Condensed", sans-serif; font-size: 1.9rem; font-weight: 700; line-height: 1; }
.stat .l { color: var(--rl-muted); font-size: .9rem; }
.steps { display: flex; gap: .5rem; counter-reset: step; flex-wrap: wrap; }
.steps li { list-style: none; counter-increment: step; color: var(--rl-muted); font-weight: 600; font-size: .9rem; }
.steps li::before { content: counter(step); display: inline-flex; width: 1.6rem; height: 1.6rem; border-radius: 50%; align-items: center; justify-content: center; background: #E2E7EA; margin-right: .35rem; }
.steps li.done::before { background: var(--rl-ok); color: #fff; }
.steps li.current { color: var(--rl-ink); }
.steps li.current::before { background: var(--rl-accent); color: var(--rl-accent-ink); }

/* Uploader */
.dropzone { border: 2px dashed #AEB9C0; border-radius: var(--rl-radius); padding: 1.5rem; text-align: center; background: #fff; cursor: pointer; }
.dropzone.drag { border-color: var(--rl-accent); background: var(--rl-accent-soft); }
.thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: .6rem; margin-top: .75rem; }
.thumbs .t { position: relative; border-radius: 8px; overflow: hidden; border: 2px solid var(--rl-line); background: #E6EBEE; aspect-ratio: 4/3; cursor: grab; }
.thumbs .t.main { border-color: var(--rl-accent); }
.thumbs .t img { width: 100%; height: 100%; object-fit: cover; }
.thumbs .t .acts { position: absolute; bottom: 0; left: 0; right: 0; display: flex; justify-content: space-between; background: rgba(0,0,0,.55); }
.thumbs .t .acts button { background: none; border: 0; color: #fff; padding: .2rem .45rem; font-size: .85rem; }
.thumbs .t.uploading { opacity: .6; }

/* Calendar */
.cal { width: 100%; border-collapse: separate; border-spacing: 2px; table-layout: fixed; }
.cal th { font-size: .75rem; color: var(--rl-muted); text-align: center; font-weight: 600; }
.cal td { background: #fff; border: 1px solid var(--rl-line); border-radius: 4px; height: 2.4rem; text-align: center; font-size: .85rem; vertical-align: middle; }
.cal td.busy { background: #FCE4E1; color: var(--rl-warn); }
.cal td.pending { background: var(--rl-amber-bg); color: var(--rl-amber); }
.cal td.blocked { background: #E6EBEE; color: var(--rl-muted); text-decoration: line-through; }
.cal td.past { opacity: .45; }
.fleet-cal { overflow-x: auto; }
.fleet-cal table { border-collapse: collapse; font-size: .78rem; min-width: 900px; }
.fleet-cal th, .fleet-cal td { border: 1px solid var(--rl-line); padding: 0; height: 2rem; min-width: 28px; text-align: center; }
.fleet-cal td.v { text-align: left; padding: .25rem .5rem; min-width: 180px; background: #fff; position: sticky; left: 0; }
.fleet-cal .b-confirmed { background: #D3E6F0; }
.fleet-cal .b-active { background: #CDEBDB; }
.fleet-cal .b-pending { background: #FDE9B5; }
.fleet-cal .b-block { background: #E1E5E8; }
.fleet-cal .today { outline: 2px solid var(--rl-accent); outline-offset: -2px; }

/* Footer */
.site-footer { background: var(--rl-asphalt); color: rgba(255,255,255,.75); font-size: .93rem; }
.site-footer h3 { color: #fff; font-size: 1rem; font-weight: 700; }
.site-footer a { color: rgba(255,255,255,.8); text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer .legal { border-top: 1px solid rgba(255,255,255,.12); font-size: .85rem; }

/* Misc */
.empty { text-align: center; padding: 2.5rem 1rem; background: #fff; border: 1px dashed var(--rl-line); border-radius: var(--rl-radius); color: var(--rl-muted); }
.empty i { font-size: 2rem; display: block; margin-bottom: .5rem; color: #94A2AB; }
.prose { max-width: 72ch; }
.prose h2 { margin-top: 1.75rem; }
.prose img { max-width: 100%; height: auto; border-radius: var(--rl-radius-sm); }
.badge-verified { background: #E2F2E9; color: var(--rl-ok); font-weight: 700; }
.badge-selfdeclared { background: #E9EDEF; color: var(--rl-muted); font-weight: 600; }
.stars { color: #D99A00; letter-spacing: 1px; }
.table-responsive-cards td { vertical-align: middle; }
.cursor-pointer { cursor: pointer; }
.map-box { height: 420px; border-radius: var(--rl-radius); overflow: hidden; border: 1px solid var(--rl-line); }
.text-muted-2 { color: var(--rl-muted) !important; }
.breadcrumb { font-size: .85rem; margin-bottom: .75rem; }
.wysiwyg-toolbar button { border: 1px solid var(--rl-line); background: #fff; border-radius: 4px; padding: .15rem .5rem; }
.wysiwyg { min-height: 280px; border: 1px solid var(--rl-line); border-radius: 0 0 6px 6px; padding: .75rem; background: #fff; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }
@media print {
  .site-header, .site-footer, .mobile-actions, .no-print, .topbar { display: none !important; }
  body { background: #fff; }
  .surface { border: 0; }
}

/* Admin */
.admin-body { background: #EDF1F3; }
.admin-sidebar { background: var(--rl-asphalt); min-height: 100vh; width: 248px; flex-shrink: 0; }
.admin-sidebar a { color: rgba(255,255,255,.78); text-decoration: none; display: block; padding: .38rem 1rem; font-size: .92rem; }
.admin-sidebar a:hover, .admin-sidebar a.active { color: #fff; background: rgba(255,255,255,.07); }
.admin-sidebar a.active { box-shadow: inset 3px 0 0 var(--rl-accent); }
.admin-sidebar .grp { color: rgba(255,255,255,.45); font-size: .78rem; font-weight: 600; padding: .9rem 1rem .25rem; }
.admin-main { flex: 1; min-width: 0; }
@media (max-width: 991.98px) { .admin-sidebar { position: fixed; z-index: 1040; left: -260px; transition: left .2s; overflow-y: auto; height: 100vh; } .admin-sidebar.open { left: 0; } }

.cat-grid { display: grid; gap: .5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cat-tile { overflow-wrap: anywhere; hyphens: auto; }
@media (min-width: 768px) { .cat-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .cat-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); } }

/* Sinhala and Tamil labels are longer: tighten the desktop navbar so it never overflows */
@media (min-width: 1200px) and (max-width: 1599.98px) {
  html[lang="si"] .navbar .nav-link, html[lang="ta"] .navbar .nav-link { font-size: .86rem; padding-left: .35rem; padding-right: .35rem; }
  html[lang="si"] .navbar .btn-accent, html[lang="ta"] .navbar .btn-accent { font-size: .86rem; padding-left: .6rem; padding-right: .6rem; }
}
@media (min-width: 1200px) and (max-width: 1299.98px) {
  html[lang="ta"] .navbar .nav-link { font-size: .8rem; padding-left: .28rem; padding-right: .28rem; }
}
.hero .breadcrumb-item, .hero .breadcrumb-item.active { color: rgba(255,255,255,.75); }
.hero .breadcrumb-item a { color: #fff; }
.hero .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.5); }

/* Bootstrap components in the Lagoon & Laterite palette: its default blue (#0d6efd) and
   near-black buttons would otherwise clash with the brand colours. */
:root { --bs-primary: #0B6890; --bs-primary-rgb: 11, 104, 144; --bs-focus-ring-color: rgba(11, 104, 144, .3); }
.btn-dark { --bs-btn-bg: var(--rl-asphalt); --bs-btn-border-color: var(--rl-asphalt); --bs-btn-hover-bg: var(--rl-asphalt-2); --bs-btn-hover-border-color: var(--rl-asphalt-2); --bs-btn-active-bg: var(--rl-asphalt-deep); --bs-btn-active-border-color: var(--rl-asphalt-deep); }
.btn-outline-dark { --bs-btn-color: var(--rl-asphalt); --bs-btn-border-color: var(--rl-asphalt); --bs-btn-hover-bg: var(--rl-asphalt); --bs-btn-hover-border-color: var(--rl-asphalt); --bs-btn-active-bg: var(--rl-asphalt-deep); }
.btn-outline-secondary { --bs-btn-color: #44525C; --bs-btn-border-color: #AEB9C0; --bs-btn-hover-bg: #E9EEF1; --bs-btn-hover-color: var(--rl-ink); --bs-btn-hover-border-color: #94A2AB; --bs-btn-active-bg: #DDE4E8; --bs-btn-active-color: var(--rl-ink); }
.form-control:focus, .form-select:focus { border-color: #5FA3C1; box-shadow: 0 0 0 .2rem rgba(11, 104, 144, .2); }
.form-check-input:checked { background-color: var(--rl-link); border-color: var(--rl-link); }
.form-check-input:focus { border-color: #5FA3C1; box-shadow: 0 0 0 .2rem rgba(11, 104, 144, .2); }
.pagination { --bs-pagination-color: var(--rl-link); --bs-pagination-active-bg: var(--rl-asphalt); --bs-pagination-active-border-color: var(--rl-asphalt); --bs-pagination-focus-box-shadow: 0 0 0 .2rem rgba(11, 104, 144, .25); }
.nav-tabs .nav-link, .nav-pills .nav-link { color: var(--rl-link); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--rl-asphalt); }
.text-bg-primary { background-color: var(--rl-link) !important; }
.bg-dark { background-color: var(--rl-asphalt) !important; }
.text-dark { color: var(--rl-ink) !important; }
.alert-info { --bs-alert-bg: #E3F0F6; --bs-alert-color: #0A4A66; --bs-alert-border-color: #BCDAE8; --bs-alert-link-color: #0A4A66; }

/* Accessibility (Lighthouse): secondary text on dark backgrounds at 78% white (8:1 on lagoon
   night) instead of Bootstrap's 50% (fails WCAG AA), and larger touch targets on touch screens. */
.text-on-dark { color: rgba(255,255,255,.78) !important; }
@media (pointer: coarse) {
  .btn, .form-control, .form-select { min-height: 44px; }
  .mobile-actions { gap: .75rem; padding: .6rem .75rem; }
  .mobile-actions .btn { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
  .site-footer a, .breadcrumb a { display: inline-block; padding-block: .2rem; }
}
