/* ==========================================================================
   BlueSquark — theme
   Light oranges and blues on near-white; deep navy only where light text sits
   on it (footer, admin sidebar, hero chips). Fonts: Poppins (headings),
   Inter (body).
   ========================================================================== */

:root {
  --bs-blue: #2E8BDB;
  --bs-blue-600: #1F6FB5;
  --bs-blue-700: #17588f;
  --bs-blue-soft: #E6F2FC;
  --bs-blue-softer: #F3F9FE;
  --bs-orange: #FF8A3D;
  --bs-orange-600: #EE7424;
  --bs-orange-text: #B9500F;     /* orange that passes contrast on white */
  --bs-orange-light: #FFB570;
  --bs-orange-soft: #FFF1E3;
  --bs-orange-softer: #FFF8F1;
  --bs-ink: #16324f;
  --bs-muted: #5b6f84;
  --bs-line: #e3ebf3;
  --bs-surface: #F8FBFE;
  --bs-navy: #16324f;
  --bs-navy-2: #10263d;
  --bs-green: #1f9d6b;
  --bs-radius: 16px;
  --bs-shadow: 0 6px 24px rgba(22, 50, 79, .08);
  --bs-shadow-hover: 0 14px 36px rgba(22, 50, 79, .14);

  /* Bootstrap overrides */
  --bs-primary: #1F6FB5;
  --bs-primary-rgb: 31, 111, 181;
  --bs-link-color: #1F6FB5;
  --bs-link-color-rgb: 31, 111, 181;
  --bs-link-hover-color: #17588f;
  --bs-link-hover-color-rgb: 23, 88, 143;
  --bs-body-color: #16324f;
  --bs-body-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --bs-border-color: #e3ebf3;
}

html { scroll-padding-top: 90px; }
body {
  background: var(--bs-surface);
  color: var(--bs-ink);
  font-family: var(--bs-body-font-family);
  font-size: 1rem;
  line-height: 1.6;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
main { flex: 1 0 auto; }
.bs-main { padding: 2rem 0 3rem; }
.bs-main-hero { padding: 0 0 3rem; }

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .bs-heading {
  font-family: 'Poppins', 'Inter', sans-serif;
  font-weight: 600;
  color: var(--bs-ink);
  letter-spacing: -.01em;
}
.text-muted, .form-text { color: var(--bs-muted) !important; }
.text-bs-orange { color: var(--bs-orange-text) !important; }
.text-bs-blue { color: var(--bs-blue-600) !important; }
a { text-underline-offset: 2px; }
.bs-skip { position: absolute; top: .5rem; left: .5rem; z-index: 2000; background: #fff; padding: .5rem 1rem; border-radius: 8px; }

/* ------------------------------------------------------------------ brand */
.bs-brand { display: inline-flex; align-items: center; gap: .55rem; line-height: 1; }
.bs-brand img { display: block; }
.bs-wordmark { font-family: 'Poppins', sans-serif; font-weight: 700; font-size: 1.55rem; letter-spacing: -.03em; }
.bs-w-blue { color: var(--bs-blue); }
.bs-w-orange { color: var(--bs-orange); }
.bs-brand-light .bs-w-blue { color: #8fc7f5; }
.bs-brand-light .bs-w-orange { color: var(--bs-orange-light); }

/* ----------------------------------------------------------------- navbar */
.bs-navbar {
  background: rgba(255, 255, 255, .92);
  backdrop-filter: saturate(160%) blur(10px);
  border-bottom: 1px solid var(--bs-line);
  box-shadow: 0 2px 12px rgba(22, 50, 79, .04);
  padding: .55rem 0;
}
.bs-navbar .nav-link {
  font-family: 'Poppins', sans-serif;
  font-weight: 500;
  color: var(--bs-ink);
  padding: .5rem .85rem !important;
  border-radius: 10px;
}
.bs-navbar .nav-link:hover, .bs-navbar .nav-link:focus { color: var(--bs-blue-600); background: var(--bs-blue-softer); }
.bs-navbar .nav-link.active { color: var(--bs-blue-600); background: var(--bs-blue-soft); }
.bs-navbar .dropdown-menu {
  border: 1px solid var(--bs-line);
  border-radius: 14px;
  box-shadow: var(--bs-shadow-hover);
  padding: .5rem;
  border-top: 3px solid var(--bs-orange);
}
.bs-navbar .dropdown-item { border-radius: 10px; padding: .5rem .8rem; }
.bs-navbar .dropdown-item:hover, .bs-navbar .dropdown-item:focus { background: var(--bs-orange-softer); color: var(--bs-ink); }
.bs-navbar .dropdown-item:active { background: var(--bs-orange-soft); color: var(--bs-ink); }
.bs-mega { min-width: 300px; }
.bs-menu-item { display: flex; gap: .8rem; align-items: center; }
.bs-menu-item > i {
  width: 38px; height: 38px; border-radius: 10px; flex: 0 0 38px;
  display: inline-flex; align-items: center; justify-content: center; font-size: 1.15rem;
  background: var(--bs-blue-soft); color: var(--bs-blue-600);
}
.bs-mega li:nth-child(even) .bs-menu-item > i { background: var(--bs-orange-soft); color: var(--bs-orange-text); }
.bs-menu-item span { display: flex; flex-direction: column; line-height: 1.25; }
.bs-menu-item strong { font-weight: 600; font-size: .95rem; }
.bs-menu-item small { color: var(--bs-muted); font-size: .8rem; }
.bs-avatar {
  width: 32px; height: 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--bs-blue) 0%, var(--bs-orange) 100%); color: #fff;
  font-size: .78rem; font-weight: 700; font-family: 'Poppins', sans-serif;
}

/* ----------------------------------------------------------------- buttons */
.btn { border-radius: 12px; font-weight: 600; font-family: 'Poppins', sans-serif; letter-spacing: .005em; }
.btn-sm { border-radius: 10px; }
.btn-lg { border-radius: 14px; padding: .75rem 1.5rem; }
.btn-primary { --bs-btn-bg: #1F6FB5; --bs-btn-border-color: #1F6FB5; --bs-btn-hover-bg: #17588f; --bs-btn-hover-border-color: #17588f; --bs-btn-active-bg: #134a78; --bs-btn-disabled-bg: #1F6FB5; --bs-btn-disabled-border-color: #1F6FB5; }
.btn-outline-primary { --bs-btn-color: #1F6FB5; --bs-btn-border-color: #1F6FB5; --bs-btn-hover-bg: #1F6FB5; --bs-btn-hover-border-color: #1F6FB5; --bs-btn-active-bg: #17588f; }
.btn-bs-orange {
  background: linear-gradient(180deg, #FF9A52 0%, var(--bs-orange-600) 100%);
  border: 0; color: #fff; text-shadow: 0 1px 1px rgba(150, 60, 0, .35);
  box-shadow: 0 4px 14px rgba(238, 116, 36, .28);
}
.btn-bs-orange:hover, .btn-bs-orange:focus { background: linear-gradient(180deg, #FF8A3D 0%, #D9651A 100%); color: #fff; }
.btn-bs-orange:disabled { background: #f5b38a; color: #fff; }
.btn-bs-orange-outline { border: 2px solid var(--bs-orange); color: var(--bs-orange-text); background: #fff; }
.btn-bs-orange-outline:hover, .btn-bs-orange-outline:focus { background: var(--bs-orange-soft); color: var(--bs-orange-text); border-color: var(--bs-orange-600); }
.btn-bs-blue { background: linear-gradient(180deg, #3d98e4 0%, var(--bs-blue-600) 100%); border: 0; color: #fff; box-shadow: 0 4px 14px rgba(31, 111, 181, .25); }
.btn-bs-blue:hover, .btn-bs-blue:focus { background: var(--bs-blue-700); color: #fff; }
.btn-bs-soft { background: var(--bs-blue-soft); color: var(--bs-blue-700); border: 0; }
.btn-bs-soft:hover { background: #d5e9fa; color: var(--bs-blue-700); }

/* ----------------------------------------------------------------- forms */
.form-control, .form-select { border-radius: 12px; border-color: #d4e0ec; padding: .6rem .85rem; }
.form-control:focus, .form-select:focus { border-color: var(--bs-blue); box-shadow: 0 0 0 .22rem rgba(46, 139, 219, .18); }
.form-check-input:checked { background-color: var(--bs-blue-600); border-color: var(--bs-blue-600); }
.form-label { font-weight: 500; }
.form-control-lg { border-radius: 14px; }
textarea.form-control { line-height: 1.55; }

/* ------------------------------------------------------------- page head */
.bs-page-head {
  background:
    radial-gradient(circle at 92% 10%, rgba(255, 181, 112, .35) 0, rgba(255, 181, 112, 0) 40%),
    radial-gradient(circle at 5% 100%, rgba(46, 139, 219, .16) 0, rgba(46, 139, 219, 0) 45%),
    linear-gradient(180deg, #FFFAF5 0%, #F3F9FE 100%);
  border-bottom: 1px solid var(--bs-line);
  padding: 2.4rem 0 2rem;
  margin: -2rem 0 2rem;
}
.bs-page-head h1 { font-size: clamp(1.7rem, 3vw, 2.3rem); margin-bottom: .35rem; }
.bs-page-head .lead { color: var(--bs-muted); font-size: 1.08rem; margin-bottom: 0; }
.bs-eyebrow {
  display: inline-flex; align-items: center; gap: .4rem; font-family: 'Poppins', sans-serif; font-weight: 600;
  font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--bs-orange-text);
  background: var(--bs-orange-soft); padding: .3rem .75rem; border-radius: 999px; margin-bottom: .8rem;
}
.breadcrumb { font-size: .88rem; margin-bottom: .6rem; }

/* ------------------------------------------------------------------ hero */
.bs-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(ellipse at 88% 18%, rgba(255, 181, 112, .45) 0, rgba(255, 181, 112, 0) 42%),
    radial-gradient(ellipse at 8% 92%, rgba(46, 139, 219, .22) 0, rgba(46, 139, 219, 0) 48%),
    linear-gradient(180deg, #FFF9F3 0%, #F2F8FE 100%);
  border-bottom: 1px solid var(--bs-line);
  padding: 4.2rem 0 4.6rem;
}
.bs-hero h1 { font-size: clamp(2.1rem, 4.6vw, 3.4rem); font-weight: 700; line-height: 1.12; letter-spacing: -.025em; }
.bs-hero h1 .hl-blue { color: var(--bs-blue-600); }
.bs-hero h1 .hl-orange { color: var(--bs-orange-600); }
.bs-hero .lead { font-size: 1.18rem; color: #3f5872; max-width: 36rem; }
/* Photo hero: the picture occupies the right ~70% and fades into the page
   colour on its left edge, so the text column always sits on a clean, light
   background (dark text, full contrast). On phones it becomes a banner above
   the text instead of sitting behind it. */
.bs-hero-photo { background: #FFF9F3; padding: 5.5rem 0 6rem; min-height: 560px; display: flex; align-items: center; }
.bs-hero-photo .container { z-index: 2; }
.bs-hero-pic { position: absolute; top: 0; right: 0; bottom: 0; left: 32%; z-index: 1; }
.bs-hero-pic img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; display: block; }
.bs-hero-pic::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(90deg, #FFF9F3 0%, rgba(255, 249, 243, .85) 12%, rgba(255, 249, 243, 0) 34%),
    linear-gradient(0deg, rgba(255, 249, 243, .55) 0%, rgba(255, 249, 243, 0) 22%);
}
.bs-hero-photo .bs-hero-stats { gap: .5rem; }
.bs-hero-photo .bs-hero-stats div { background: rgba(255, 255, 255, .75); padding: .35rem .65rem; border-radius: 10px; }
.bs-hero-photo .bs-hero-stats strong { font-size: 1.25rem; }
@media (max-width: 991.98px) {
  .bs-hero-photo { display: block; padding: 0 0 3rem; min-height: 0; }
  .bs-hero-pic { position: relative; display: block; left: auto; height: 300px; margin-bottom: 1.5rem; }
  .bs-hero-pic img { object-position: 58% 22%; }
  .bs-hero-pic::after { background: linear-gradient(0deg, #FFF9F3 0%, rgba(255, 249, 243, 0) 45%); }
}
@media (max-width: 575.98px) { .bs-hero-pic { height: 240px; } }

.bs-hero-art {
  background: #fff; border: 1px solid var(--bs-line); border-radius: 22px; box-shadow: var(--bs-shadow-hover);
  padding: 1.25rem; position: relative;
}
.bs-hero-art .bs-demo-pane { border-radius: 14px; padding: 1rem 1.1rem; min-height: 96px; font-size: .98rem; }
.bs-hero-art .bs-demo-src { background: var(--bs-blue-softer); border: 1px solid #d6e8f8; }
.bs-hero-art .bs-demo-dst { background: var(--bs-orange-softer); border: 1px solid #ffe0c4; }
.bs-demo-label { font-size: .72rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--bs-muted); margin-bottom: .35rem; display: flex; align-items: center; gap: .35rem; }
.bs-demo-swap { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg, var(--bs-blue), var(--bs-orange)); color: #fff; display: flex; align-items: center; justify-content: center; margin: -.6rem auto; position: relative; z-index: 2; border: 4px solid #fff; font-size: 1.1rem; }
.bs-hero-stats { display: flex; flex-wrap: wrap; gap: 1.6rem; margin-top: 1.8rem; }
.bs-hero-stats div { font-size: .9rem; color: var(--bs-muted); }
.bs-hero-stats strong { display: block; font-family: 'Poppins', sans-serif; font-size: 1.45rem; color: var(--bs-ink); line-height: 1.2; }

/* ----------------------------------------------------------------- cards */
.bs-card {
  background: #fff; border: 1px solid var(--bs-line); border-radius: var(--bs-radius);
  box-shadow: var(--bs-shadow); padding: 1.5rem;
}
.bs-card-link { display: block; text-decoration: none; color: inherit; height: 100%; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.bs-card-link:hover, .bs-card-link:focus { transform: translateY(-4px); box-shadow: var(--bs-shadow-hover); border-color: #cfe2f5; color: inherit; }
.bs-card-link .bs-go { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: .9rem; color: var(--bs-blue-600); }
.bs-card-link:hover .bs-go i { transform: translateX(3px); }
.bs-go i { transition: transform .18s ease; display: inline-block; }
.bs-feature-icon {
  width: 56px; height: 56px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.6rem; margin-bottom: 1rem;
}
.bs-ic-blue { background: var(--bs-blue-soft); color: var(--bs-blue-600); }
.bs-ic-orange { background: var(--bs-orange-soft); color: var(--bs-orange-text); }
.bs-ic-green { background: #e3f6ee; color: #177a53; }
.bs-ic-purple { background: #efeafc; color: #5b3fb0; }
.bs-card h2, .bs-card h3 { font-size: 1.15rem; margin-bottom: .45rem; }
.bs-card-top-orange { border-top: 4px solid var(--bs-orange); }
.bs-card-top-blue { border-top: 4px solid var(--bs-blue); }
.bs-paper { background: #fff; border: 1px solid var(--bs-line); border-radius: var(--bs-radius); box-shadow: var(--bs-shadow); }
.bs-section { padding: 3.5rem 0; }
.bs-section-alt { background: linear-gradient(180deg, #fff 0%, var(--bs-orange-softer) 100%); border-top: 1px solid var(--bs-line); border-bottom: 1px solid var(--bs-line); }
.bs-section-title { font-size: clamp(1.5rem, 2.6vw, 2rem); margin-bottom: .5rem; }
.bs-section-sub { color: var(--bs-muted); max-width: 42rem; margin: 0 auto 2rem; }
.bs-step-num {
  width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Poppins', sans-serif; font-weight: 700; color: #fff; background: var(--bs-blue-600); margin-bottom: .8rem;
}
.bs-step-num.o { background: var(--bs-orange-600); }
.bs-lang-chip {
  display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .8rem; border-radius: 999px;
  background: #fff; border: 1px solid var(--bs-line); font-size: .88rem; margin: .2rem; color: var(--bs-ink); text-decoration: none;
}
.bs-lang-chip:nth-child(3n+1) { border-color: #cfe4f7; background: var(--bs-blue-softer); }
.bs-lang-chip:nth-child(3n+2) { border-color: #ffdcbf; background: var(--bs-orange-softer); }
.bs-lang-chip code { color: var(--bs-muted); font-size: .76rem; }
a.bs-lang-chip:hover, a.bs-lang-chip:focus { border-color: var(--bs-orange); box-shadow: 0 2px 8px rgba(238, 116, 36, .18); color: var(--bs-ink); }
.bs-lang-link { display: block; padding: .3rem .5rem; margin: 0 -.5rem; border-radius: 8px; color: var(--bs-ink); text-decoration: none; }
.bs-lang-link:hover, .bs-lang-link:focus { background: var(--bs-orange-softer); color: var(--bs-blue-700); }
.bs-lang-link:hover .fw-medium { text-decoration: underline; text-underline-offset: 2px; }

/* ------------------------------------------------------------- auth pages */
.bs-auth { max-width: 470px; margin: 0 auto; }
.bs-auth .bs-card { padding: 2rem; border-top: 4px solid var(--bs-orange); }
.bs-auth h1 { font-size: 1.6rem; }
.bs-auth-wide { max-width: 720px; }
.bs-key-box {
  font-family: ui-monospace, 'Cascadia Mono', Consolas, Menlo, monospace; font-size: 1.15rem; font-weight: 600; letter-spacing: .08em;
  background: var(--bs-orange-softer); border: 2px dashed var(--bs-orange); border-radius: 12px;
  padding: 1rem 1.2rem; text-align: center; word-break: break-all; user-select: all; color: var(--bs-ink);
}
.bs-qr { background: #fff; padding: 12px; border-radius: 12px; border: 1px solid var(--bs-line); display: inline-block; }
.bs-otp-input { font-size: 1.6rem; letter-spacing: .5em; text-align: center; font-weight: 600; font-family: ui-monospace, Consolas, monospace; }
.scf-challenge .border { border-radius: 14px !important; background: var(--bs-blue-softer) !important; border-color: #d6e8f8 !important; }

/* ---------------------------------------------------------- translation UI */
.bs-translate-panel { background: #fff; border: 1px solid var(--bs-line); border-radius: 18px; box-shadow: var(--bs-shadow); overflow: hidden; }
.bs-translate-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: .9rem 1rem; background: linear-gradient(90deg, var(--bs-blue-softer), var(--bs-orange-softer)); border-bottom: 1px solid var(--bs-line); }
.bs-translate-bar .form-select { max-width: 280px; min-width: 180px; flex: 1 1 200px; }
.bs-swap-btn { width: 42px; height: 42px; border-radius: 50%; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.bs-translate-cols { display: grid; grid-template-columns: 1fr 1fr; }
.bs-translate-cols > div { padding: 1rem; position: relative; }
.bs-translate-cols > div + div { border-left: 1px solid var(--bs-line); background: #FFFCF9; }
.bs-translate-cols textarea { border: 0; resize: vertical; min-height: 260px; padding: 0; box-shadow: none !important; background: transparent; font-size: 1.05rem; }
.bs-translate-out { min-height: 260px; white-space: pre-wrap; font-size: 1.05rem; }
.bs-translate-foot { display: flex; justify-content: space-between; align-items: center; gap: .5rem; flex-wrap: wrap; font-size: .85rem; color: var(--bs-muted); margin-top: .6rem; }
@media (max-width: 767.98px) {
  .bs-translate-cols { grid-template-columns: 1fr; }
  .bs-translate-cols > div + div { border-left: 0; border-top: 1px solid var(--bs-line); }
}
.bs-dropzone {
  border: 2px dashed #b9d5ef; border-radius: 18px; background: var(--bs-blue-softer); padding: 2.4rem 1rem; text-align: center;
  cursor: pointer; transition: background .15s, border-color .15s;
}
.bs-dropzone:hover, .bs-dropzone.dragover { background: var(--bs-orange-softer); border-color: var(--bs-orange); }
.bs-dropzone i { font-size: 2.6rem; color: var(--bs-blue); }
.bs-dropzone .bs-file-name { font-weight: 600; margin-top: .5rem; }
.bs-format-pick { display: flex; flex-wrap: wrap; gap: .5rem; }
.bs-format-pick .btn-check + label { border-radius: 12px; min-width: 110px; }
.btn-check:checked + .btn-outline-primary { background: var(--bs-blue-600); border-color: var(--bs-blue-600); }
.progress { height: 12px; border-radius: 999px; background: #e8eff6; }
.progress-bar { background: linear-gradient(90deg, var(--bs-blue), var(--bs-orange)); }
.bs-status { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .65rem; border-radius: 999px; font-size: .78rem; font-weight: 600; }
.bs-status-queued { background: #eef2f7; color: #465a70; }
.bs-status-processing, .bs-status-extracting { background: var(--bs-blue-soft); color: var(--bs-blue-700); }
.bs-status-building { background: #efeafc; color: #5b3fb0; }
.bs-status-done { background: #e3f6ee; color: #177a53; }
.bs-status-failed { background: #fdeaea; color: #a61b1b; }
.bs-status-cancelled { background: #f1f1f1; color: #666; }

/* ---------------------------------------------------------------- pricing */
.bs-price-card { display: flex; flex-direction: column; position: relative; }
.bs-price-popular { border: 2px solid var(--bs-orange); box-shadow: 0 16px 40px rgba(238, 116, 36, .18); }
.bs-price-badge {
  position: absolute; top: -13px; left: 50%; transform: translateX(-50%); white-space: nowrap;
  background: linear-gradient(180deg, #FF9A52, var(--bs-orange-600)); color: #fff; font-family: 'Poppins', sans-serif;
  font-weight: 600; font-size: .75rem; letter-spacing: .04em; padding: .25rem .8rem; border-radius: 999px;
}
.bs-price { margin: .3rem 0 .4rem; }
.bs-price-n { font-family: 'Poppins', sans-serif; font-size: 2.3rem; font-weight: 700; color: var(--bs-ink); line-height: 1; }
.bs-price-per { color: var(--bs-muted); margin-left: .25rem; }
.bs-price-list { list-style: none; padding-left: 0; font-size: .9rem; margin-bottom: 1.2rem; }
.bs-price-list li { padding: .25rem 0 .25rem 1.6rem; position: relative; }
.bs-price-list li::before { content: '\F26E'; font-family: 'bootstrap-icons'; position: absolute; left: 0; color: var(--bs-green); }
.bs-billing-toggle .btn { min-width: 130px; }

/* ----------------------------------------------------------------- tables */
.table { --bs-table-hover-bg: var(--bs-blue-softer); }
.table > :not(caption) > * > * { padding: .7rem .8rem; }
.table thead th { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: .82rem; text-transform: uppercase; letter-spacing: .04em; color: var(--bs-muted); background: #f7fafd; border-bottom-width: 1px; }

/* ------------------------------------------------------------- legal text */
.bs-legal { max-width: 860px; }
.bs-legal h2 { font-size: 1.3rem; margin-top: 2rem; }
.bs-legal h3 { font-size: 1.1rem; margin-top: 1.4rem; }
.bs-legal p, .bs-legal li { color: #2b4560; }

/* ------------------------------------------------------------ cookie strip */
.bs-cookie-strip {
  position: fixed; left: 1rem; right: 1rem; bottom: 1rem; z-index: 1080; max-width: 880px; margin: 0 auto;
  background: var(--bs-navy); color: #e4eef8; border-radius: 14px; padding: .85rem 1rem; box-shadow: 0 10px 30px rgba(0,0,0,.2);
  display: flex; gap: 1rem; align-items: center; justify-content: space-between; font-size: .9rem;
}
.bs-cookie-strip a { color: var(--bs-orange-light); }
.bs-cookie-ok { background: var(--bs-orange); color: var(--bs-navy-2); font-weight: 700; white-space: nowrap; }
.bs-cookie-ok:hover { background: var(--bs-orange-light); color: var(--bs-navy-2); }
@media (max-width: 575.98px) { .bs-cookie-strip { flex-direction: column; align-items: stretch; } }

/* ----------------------------------------------------------------- toasts */
.bs-toast-region { position: fixed; top: 84px; right: 1rem; z-index: 1090; width: min(440px, calc(100vw - 2rem)); }
.bs-toast-region .alert { border-radius: 14px; border: 0; }

/* ----------------------------------------------------------------- modal */
.modal-content { border-radius: 18px; border: 0; }
.bs-modal-accent { border-top: 4px solid var(--bs-orange) !important; }

/* ----------------------------------------------------------------- footer */
.bs-footer {
  background: linear-gradient(180deg, var(--bs-navy) 0%, var(--bs-navy-2) 100%);
  color: #cfdded; padding: 3rem 0 1.4rem; margin-top: 3rem; border-top: 4px solid var(--bs-orange);
}
.bs-footer a { color: #e6eff8; text-decoration: none; }
.bs-footer a:hover, .bs-footer a:focus { color: var(--bs-orange-light); text-decoration: underline; }
.bs-footer-h { font-family: 'Poppins', sans-serif; font-size: .82rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--bs-orange-light); margin-bottom: .9rem; }
.bs-footer-links li { margin-bottom: .45rem; font-size: .93rem; }
.bs-footer-lead { color: #dbe7f3; }
.bs-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .12); padding-top: 1.2rem; color: #b9cbe0; }

/* ------------------------------------------------------------ site map */
.bs-sitemap h2 { font-size: 1.1rem; border-bottom: 2px solid var(--bs-orange-soft); padding-bottom: .4rem; }
.bs-sitemap ul { list-style: none; padding-left: 0; }
.bs-sitemap li { padding: .25rem 0; }
.bs-sitemap li i { color: var(--bs-orange); }

/* ------------------------------------------------------------- admin area */
.bs-admin-shell { display: flex; min-height: 100vh; }
.bs-admin-side {
  width: 260px; flex: 0 0 260px; background: linear-gradient(180deg, var(--bs-navy) 0%, var(--bs-navy-2) 100%);
  color: #cfdded; padding: 1.2rem .9rem; position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.bs-admin-side .bs-admin-brand { display: block; padding: .3rem .5rem 1rem; border-bottom: 1px solid rgba(255,255,255,.1); margin-bottom: .8rem; text-decoration: none; }
.bs-admin-side .bs-wordmark { font-size: 1.3rem; }
.bs-admin-side .nav-link { color: #dfe9f4; border-radius: 10px; padding: .5rem .75rem; font-size: .93rem; display: flex; align-items: center; gap: .6rem; }
.bs-admin-side .nav-link:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.bs-admin-side .nav-link.active { background: var(--bs-orange); color: var(--bs-navy-2); font-weight: 600; }
.bs-admin-side .bs-side-h { font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; color: #8fa6bf; margin: 1rem .75rem .35rem; }
.bs-admin-side .badge { margin-left: auto; }
.bs-admin-main { flex: 1; min-width: 0; padding: 1.6rem 2rem 3rem; }
.bs-admin-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1.4rem; }
.bs-admin-top h1 { font-size: 1.55rem; margin: 0; }
.bs-stat { background: #fff; border: 1px solid var(--bs-line); border-radius: 16px; padding: 1.1rem 1.2rem; box-shadow: var(--bs-shadow); height: 100%; }
.bs-stat .bs-stat-n { font-family: 'Poppins', sans-serif; font-size: 1.8rem; font-weight: 700; line-height: 1.1; }
.bs-stat .bs-stat-l { color: var(--bs-muted); font-size: .86rem; }
.bs-admin-toggle { display: none; }
@media (max-width: 991.98px) {
  .bs-admin-shell { display: block; }
  .bs-admin-side { position: static; width: 100%; height: auto; display: none; }
  .bs-admin-side.show { display: block; }
  .bs-admin-toggle { display: inline-flex; }
  .bs-admin-main { padding: 1rem; }
}
.bs-search { max-width: 420px; }
.nav-tabs .nav-link { font-family: 'Poppins', sans-serif; font-weight: 500; color: var(--bs-muted); }
.nav-tabs .nav-link.active { color: var(--bs-blue-700); border-top: 3px solid var(--bs-orange); }
.bs-mono { font-family: ui-monospace, 'Cascadia Mono', Consolas, monospace; font-size: .88em; }
.bs-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.bs-dot-ok { background: #1f9d6b; box-shadow: 0 0 0 4px rgba(31,157,107,.15); }
.bs-dot-warn { background: #e8a31a; box-shadow: 0 0 0 4px rgba(232,163,26,.15); }
.bs-dot-bad { background: #d23b3b; box-shadow: 0 0 0 4px rgba(210,59,59,.15); }

@media (prefers-reduced-motion: reduce) {
  .bs-card-link, .bs-go i { transition: none; }
}
