
    :root {
      --navy: #071b3d;
      --blue: #1458a6;
      --orange: #f36b21;
      --green: #74b944;
      --purple: #6b2b8e;
      --ink: #172033;
      --muted: #5a6b83;
      --surface: #ffffff;
      --background: #f5f8fc;
      --border: #e6edf5;
      --shadow-sm: 0 4px 20px rgba(7, 27, 61, 0.07);
      --shadow-lg: 0 18px 50px rgba(7, 27, 61, 0.2);
      --radius: 16px;
      --container: 1240px;
    }

    *, *::before, *::after { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      background: var(--background);
      color: var(--ink);
      font-family: Inter, sans-serif;
      line-height: 1.5;
      overflow-x: hidden;
    }
    body.menu-open { overflow: hidden; }
    img { display: block; max-width: 100%; }
    a { color: var(--blue); text-decoration: none; }
    button, input { font: inherit; }
    button, a { -webkit-tap-highlight-color: transparent; }
    .container { width: min(100% - 48px, var(--container)); margin-inline: auto; }
    .section { padding: 72px 0; }
    .section-white { background: #fff; }
    .eyebrow {
      margin: 0 0 8px;
      color: var(--orange);
      font-family: Montserrat, sans-serif;
      font-size: 14px;
      font-weight: 700;
      letter-spacing: 1px;
      text-transform: uppercase;
    }
    .section-title {
      margin: 0;
      color: var(--navy);
      font-family: Montserrat, sans-serif;
      font-size: clamp(30px, 4vw, 36px);
      font-weight: 800;
      letter-spacing: -0.5px;
      line-height: 1.15;
    }
    .section-subtitle { margin: 8px 0 0; color: var(--muted); font-size: 17px; }
    .section-heading-row {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      gap: 20px;
      margin-bottom: 36px;
      flex-wrap: wrap;
    }
    .text-link { font-family: Montserrat, sans-serif; font-size: 15px; font-weight: 700; }
    .text-link:hover { color: var(--orange); }
    .skip-link {
      position: fixed;
      top: 12px;
      left: 12px;
      z-index: 999;
      transform: translateY(-160%);
      border-radius: 8px;
      background: #fff;
      color: var(--navy);
      padding: 10px 14px;
      box-shadow: var(--shadow-sm);
    }
    .skip-link:focus { transform: none; }

    .announcement {
      background: var(--navy);
      color: #cfe0f5;
      padding: 8px 16px;
      text-align: center;
      font-family: Montserrat, sans-serif;
      font-size: 13px;
      font-weight: 500;
      letter-spacing: .2px;
    }
    .site-header {
      position: sticky;
      top: 0;
      z-index: 70;
      border-bottom: 1px solid var(--border);
      background: rgba(255,255,255,.97);
      box-shadow: 0 1px 12px rgba(7,27,61,.05);
      backdrop-filter: blur(12px);
    }
    .header-inner {
      min-height: 70px;
      display: flex;
      align-items: center;
      gap: 24px;
      padding-block: 10px;
    }
    .brand { display: flex; flex: 0 0 auto; align-items: center; }
    .brand img { width: 122px; height: 44px; object-fit: contain; }
    .desktop-nav {
      display: flex;
      flex: 1;
      justify-content: center;
      align-items: center;
      gap: 4px;
    }
    .nav-item { position: relative; }
    .nav-link,
    .nav-trigger {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      border: 0;
      border-radius: 7px;
      background: transparent;
      color: var(--ink);
      cursor: pointer;
      padding: 9px 10px;
      white-space: nowrap;
      font-family: Montserrat, sans-serif;
      font-size: 14px;
      font-weight: 600;
      transition: color .2s ease, background .2s ease;
    }
    .nav-link:hover,
    .nav-trigger:hover,
    .nav-trigger[aria-expanded="true"] { color: var(--orange); background: #fff5ef; }
    .nav-trigger svg { transition: transform .2s ease; }
    .nav-trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
    .nav-menu-icon { width: 16px; text-align: center; color: var(--orange); }
    .dropdown {
      position: absolute;
      top: calc(100% + 10px);
      left: 50%;
      width: 260px;
      transform: translate(-50%, 8px);
      visibility: hidden;
      opacity: 0;
      border: 1px solid var(--border);
      border-radius: 14px;
      background: #fff;
      box-shadow: var(--shadow-lg);
      padding: 9px;
      transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
    }
    .nav-item:hover .dropdown,
    .nav-item:focus-within .dropdown,
    .nav-item.open .dropdown {
      visibility: visible;
      opacity: 1;
      transform: translate(-50%, 0);
    }
    .dropdown a {
      display: block;
      border-radius: 9px;
      color: var(--ink);
      padding: 11px 12px;
      font-size: 14px;
      font-weight: 600;
    }
    .dropdown a small { display: block; margin-top: 2px; color: var(--muted); font-weight: 400; }
    .dropdown a:hover { background: var(--background); color: var(--orange); }
    .header-cta,
    .button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      border: 0;
      border-radius: 10px;
      cursor: pointer;
      padding: 14px 27px;
      font-family: Montserrat, sans-serif;
      font-size: 15px;
      font-weight: 700;
      transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
    }
    .header-cta { flex: 0 0 auto; border-radius: 8px; background: var(--orange); color: #fff; padding: 11px 20px; font-size: 14px; }
    .header-cta:hover, .button-orange:hover { background: #d95a15; color: #fff; transform: translateY(-1px); }
    .auth-link { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--border); border-radius: 8px; color: var(--navy); padding: 10px 16px; font-family: Montserrat, sans-serif; font-size: 14px; font-weight: 600; transition: border-color .2s ease, color .2s ease, background .2s ease; }
    .auth-link:hover { border-color: var(--orange); color: var(--orange); background: #fff5ef; }
    .mobile-actions { display: none; margin-left: auto; align-items: center; gap: 9px; }
    .icon-button {
      width: 42px;
      height: 42px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 1px solid #d7e2ef;
      border-radius: 9px;
      background: #fff;
      color: var(--navy);
      cursor: pointer;
    }
    .mobile-whatsapp { border-color: #25d366; background: #25d366; color: #fff; }
    .mobile-book { background: var(--orange); color: #fff; padding: 10px 14px; border-radius: 8px; font-family: Montserrat, sans-serif; font-size: 13px; font-weight: 700; }
    .mobile-menu {
      display: none;
      position: fixed;
      inset: 103px 0 0;
      z-index: 65;
      overflow-y: auto;
      border-top: 1px solid var(--border);
      background: #fff;
      padding: 12px 20px 28px;
    }
    .mobile-menu.open { display: block; }
    .mobile-menu a,
    .mobile-menu button {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: space-between;
      border: 0;
      border-bottom: 1px solid #f0f4f9;
      background: #fff;
      color: var(--ink);
      padding: 14px 8px;
      text-align: left;
      font-family: Montserrat, sans-serif;
      font-size: 15px;
      font-weight: 600;
    }
    .mobile-submenu { display: none; padding: 4px 0 8px 14px; }
    .mobile-submenu.open { display: block; }
    .mobile-submenu a { color: var(--muted); font-size: 14px; font-weight: 500; }
    .mobile-menu-divider { border-top: 1px solid var(--border); margin: 10px 0; }
    .mobile-menu a span { display: inline-flex; align-items: center; gap: 10px; }

    .hero {
      position: relative;
      overflow: visible;
      min-height: 620px;
      background: var(--navy);
      isolation: isolate;
    }
    .hero::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -2;
      background:
        linear-gradient(90deg, rgba(7,27,61,.94) 0%, rgba(7,27,61,.78) 47%, rgba(7,27,61,.28) 100%),
        url("../images/generated/home-hero.webp") center 45% / cover no-repeat;
    }
    .hero::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background: radial-gradient(circle at 80% 30%, rgba(243,107,33,.16), transparent 30%);
    }
    .hero-content { padding: 96px 0 135px; }
    .hero-copy { max-width: 660px; }
    .hero-badge {
      display: inline-flex;
      border: 1px solid rgba(116,185,68,.55);
      border-radius: 999px;
      background: rgba(116,185,68,.18);
      color: #b7eb8f;
      padding: 7px 14px;
      font-family: Montserrat, sans-serif;
      font-size: 13px;
      font-weight: 600;
    }
    .hero h1 {
      margin: 22px 0 20px;
      color: #fff;
      font-family: Montserrat, sans-serif;
      font-size: clamp(44px, 6vw, 60px);
      font-weight: 800;
      letter-spacing: -1px;
      line-height: 1.05;
      text-wrap: balance;
    }
    .hero p { max-width: 560px; margin: 0 0 32px; color: #d3e0f2; font-size: clamp(17px, 2vw, 19px); line-height: 1.65; }
    .hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
    .button-orange { background: var(--orange); color: #fff; }
    .button-glass { border: 1px solid rgba(255,255,255,.38); background: rgba(255,255,255,.12); color: #fff; }
    .button-glass:hover { background: rgba(255,255,255,.22); color: #fff; transform: translateY(-1px); }

    .service-selector {
      position: absolute;
      right: 0;
      bottom: 0;
      left: 0;
      transform: translateY(50%);
      z-index: 5;
    }
    .service-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      overflow: hidden;
      border: 1px solid var(--border);
      border-radius: 16px;
      background: #fff;
      box-shadow: var(--shadow-lg);
    }
    .service-card {
      display: block;
      min-width: 0;
      border-right: 1px solid #eef2f8;
      padding: 22px 20px;
      transition: background .2s ease;
    }
    .service-card:last-child { border-right: 0; }
    .service-card:hover { background: var(--background); }
    .service-icon {
      width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      margin-bottom: 12px;
      border-radius: 10px;
      font-family: Montserrat, sans-serif;
      font-size: 17px;
      font-weight: 800;
    }
    .service-title { color: var(--ink); font-family: Montserrat, sans-serif; font-size: 16px; font-weight: 700; }
    .service-sub { margin-top: 3px; color: var(--muted); font-size: 13px; }

    .trust-strip { border-bottom: 1px solid #eef2f8; background: #fff; }
    .trust-grid {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      gap: 14px 30px;
      padding: 88px 0 28px;
    }
    .trust-item { display: flex; align-items: center; gap: 9px; color: #2a3a54; font-family: Montserrat, sans-serif; font-size: 14px; font-weight: 600; }
    .trust-item span { color: var(--green); font-size: 18px; }

    .tour-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
    .tour-card,
    .article-card {
      overflow: hidden;
      border: 1px solid #eef2f8;
      border-radius: var(--radius);
      background: #fff;
      box-shadow: var(--shadow-sm);
      transition: transform .25s ease, box-shadow .25s ease;
    }
    .tour-card:hover,
    .article-card:hover { transform: translateY(-5px); box-shadow: 0 14px 40px rgba(7,27,61,.14); }
    .tour-media { position: relative; height: 210px; background-position: center; background-size: cover; }
    .tour-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,27,61,.05), rgba(7,27,61,.18)); }
    .pill {
      position: absolute;
      z-index: 2;
      top: 14px;
      border-radius: 999px;
      color: #fff;
      padding: 5px 12px;
      font-family: Montserrat, sans-serif;
      font-size: 12px;
      font-weight: 700;
    }
    .pill-left { left: 14px; }
    .pill-right { right: 14px; background: rgba(7,27,61,.84); }
    .tour-body { padding: 20px; }
    .tour-body h3 { margin: 0 0 4px; color: var(--ink); font-family: Montserrat, sans-serif; font-size: 20px; font-weight: 700; }
    .tour-place { margin-bottom: 14px; color: var(--muted); font-size: 14px; }
    .tour-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 16px; color: var(--muted); font-size: 13px; }
    .tour-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid #eef2f8; padding-top: 14px; }
    .tour-price small { color: #8493a8; }
    .tour-price strong { color: var(--blue); font-family: Montserrat, sans-serif; font-size: 19px; font-weight: 800; }
    .tour-view { color: var(--orange); font-family: Montserrat, sans-serif; font-size: 14px; font-weight: 700; }

    .type-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 36px; }
    .image-tile {
      position: relative;
      min-height: 180px;
      display: flex;
      align-items: flex-end;
      overflow: hidden;
      border-radius: var(--radius);
      background-position: center;
      background-size: cover;
      isolation: isolate;
      transition: transform .25s ease;
    }
    .image-tile:hover { transform: translateY(-4px); }
    .image-tile::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(7,27,61,0) 25%, rgba(7,27,61,.88) 100%); }
    .tile-content { padding: 20px; color: #fff; }
    .tile-title { font-family: Montserrat, sans-serif; font-size: 20px; font-weight: 800; }
    .tile-meta { margin-top: 2px; font-size: 13px; opacity: .88; }

    .destination-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; gap: 18px; }
    .destination-card { min-height: 200px; }
    .span-2 { grid-column: span 2; }

    .education { background: linear-gradient(120deg, #0d3320, #1a5c33); }
    .education-grid { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 56px; }
    .education-badge { display: inline-block; border-radius: 999px; background: rgba(116,185,68,.25); color: #cbef9f; padding: 6px 14px; font-family: Montserrat, sans-serif; font-size: 13px; font-weight: 700; }
    .education h2 { margin: 20px 0 18px; color: #fff; font-family: Montserrat, sans-serif; font-size: clamp(32px, 4vw, 38px); font-weight: 800; line-height: 1.12; }
    .education p { margin: 0 0 26px; color: #d5ecc6; font-size: 17px; line-height: 1.65; }
    .education-points { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; margin-bottom: 30px; }
    .education-point { display: flex; align-items: center; gap: 9px; color: #eaf7df; font-size: 15px; }
    .education-point span { color: #a6e07a; }
    .button-green { background: var(--green); color: #072e12; }
    .button-green:hover { background: #84cc50; color: #072e12; transform: translateY(-1px); }
    .education-image {
      min-height: 380px;
      border: 1px solid rgba(255,255,255,.16);
      border-radius: 18px;
      background:
        linear-gradient(180deg, rgba(7,46,18,.08), rgba(7,46,18,.2)),
        url("../images/generated/accra.webp") center / cover no-repeat;
      box-shadow: 0 24px 50px rgba(0,0,0,.18);
    }

    .partners { text-align: center; }
    .partners .eyebrow { color: var(--purple); }
    .partners-copy { max-width: 650px; margin: 10px auto 34px; color: var(--muted); }
    .partner-grid { display: flex; justify-content: center; gap: 24px; flex-wrap: wrap; margin-bottom: 26px; }
    .partner-card { width: 280px; border: 1px solid #eef2f8; border-radius: 14px; padding: 25px; text-align: left; }
    .partner-logo { min-height: 62px; display: flex; align-items: center; justify-content: center; margin-bottom: 15px; border-radius: 9px; background: #eef2f8; color: var(--navy); font-family: Montserrat, sans-serif; font-size: 18px; font-weight: 800; }
    .partner-card:nth-child(2) .partner-logo { background: #f3eaf8; color: var(--purple); }
    .partner-name { color: var(--ink); font-family: Montserrat, sans-serif; font-size: 18px; font-weight: 700; }
    .partner-rel { margin-top: 4px; color: var(--muted); font-size: 13px; }

    .split-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
    .split-grid h2 { margin: 0 0 26px; color: var(--navy); font-family: Montserrat, sans-serif; font-size: 32px; font-weight: 800; }
    .why-list { display: flex; flex-direction: column; gap: 18px; }
    .why-item { display: flex; gap: 14px; }
    .why-icon { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 10px; background: #eaf1fb; color: var(--blue); font-size: 18px; }
    .why-title, .step-title { color: var(--ink); font-family: Montserrat, sans-serif; font-size: 16px; font-weight: 700; }
    .why-desc, .step-desc { color: var(--muted); font-size: 14px; line-height: 1.5; }
    .step { position: relative; display: flex; gap: 18px; padding-bottom: 27px; }
    .step:not(:last-child)::after { content: ""; position: absolute; top: 44px; bottom: 0; left: 21px; width: 2px; background: #dce6f3; }
    .step-number { width: 44px; height: 44px; flex: 0 0 auto; display: grid; place-items: center; z-index: 1; border-radius: 50%; background: var(--orange); color: #fff; font-family: Montserrat, sans-serif; font-size: 18px; font-weight: 800; }
    .step-copy { padding-top: 8px; }

    .testimonials { background: var(--navy); }
    .testimonials h2 { margin: 0 0 36px; color: #fff; text-align: center; font-family: Montserrat, sans-serif; font-size: 32px; font-weight: 800; }
    .testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
    .testimonial-card { border: 1px solid #16386a; border-radius: 16px; background: #0d2951; padding: 26px; }
    .stars { margin-bottom: 12px; color: var(--orange); font-size: 20px; letter-spacing: 1px; }
    .testimonial-card blockquote { margin: 0 0 20px; color: #d3e0f2; font-size: 15px; line-height: 1.65; }
    .traveller { display: flex; align-items: center; gap: 12px; }
    .avatar { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #cddcef; color: var(--navy); font-family: Montserrat, sans-serif; font-weight: 800; }
    .traveller-name { color: #fff; font-family: Montserrat, sans-serif; font-size: 15px; font-weight: 700; }
    .traveller-trip { color: #8fa6c9; font-size: 13px; }

    .article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
    .article-media { height: 170px; background-position: center; background-size: cover; }
    .article-body { padding: 20px; }
    .article-cat { margin-bottom: 8px; color: var(--orange); font-family: Montserrat, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; }
    .article-body h3 { margin: 0 0 8px; color: var(--ink); font-family: Montserrat, sans-serif; font-size: 18px; font-weight: 700; line-height: 1.3; }
    .article-meta { color: #8493a8; font-size: 13px; }

    .final-cta { background: linear-gradient(120deg, var(--blue), var(--navy)); }
    .final-cta-inner { max-width: 1000px; padding: 84px 0; text-align: center; }
    .final-cta h2 { margin: 0 0 18px; color: #fff; font-family: Montserrat, sans-serif; font-size: clamp(34px, 5vw, 44px); font-weight: 800; letter-spacing: -.5px; line-height: 1.15; text-wrap: balance; }
    .final-cta p { margin: 0 0 32px; color: #cfe0f5; font-size: 18px; }
    .cta-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; }
    .button-whatsapp { background: #25d366; color: #fff; }
    .button-whatsapp:hover { background: #1eb955; color: #fff; transform: translateY(-1px); }

    .site-footer { background: var(--navy); color: #b9c9e0; }
    .footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding: 56px 0 32px; }
    .footer-logo { width: 170px; height: auto; margin-bottom: 16px; border-radius: 8px; background: #fff; padding: 6px 10px; }
    .footer-copy { max-width: 320px; margin: 0 0 18px; font-size: 14px; line-height: 1.7; }
    .footer-contact { font-size: 14px; line-height: 1.9; }
    .footer-contact a, .footer-links a { color: #cfe0f5; }
    .footer-contact a:hover, .footer-links a:hover { color: var(--orange); }
    .footer-title { margin-bottom: 16px; color: #fff; font-family: Montserrat, sans-serif; font-size: 14px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase; }
    .footer-links { display: flex; flex-direction: column; gap: 11px; font-size: 14px; }
    .newsletter-copy { margin: 0 0 12px; font-size: 14px; line-height: 1.6; }
    .newsletter-form { display: flex; gap: 8px; margin-bottom: 20px; }
    .newsletter-form input {
      min-width: 0;
      flex: 1;
      border: 1px solid #1f3d6e;
      border-radius: 8px;
      outline: none;
      background: #0d264f;
      color: #fff;
      padding: 11px 12px;
      font-size: 14px;
    }
    .newsletter-form input:focus { border-color: #6da8e9; box-shadow: 0 0 0 3px rgba(109,168,233,.15); }
    .newsletter-form button { border: 0; border-radius: 8px; background: var(--orange); color: #fff; cursor: pointer; padding: 0 16px; font-family: Montserrat, sans-serif; font-size: 14px; font-weight: 700; }
    .socials { display: flex; gap: 10px; }
    .social-link { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 8px; background: #0d264f; color: #cfe0f5; }
    .social-link:hover { background: var(--orange); color: #fff; }
    .footer-bottom { border-top: 1px solid #14305c; }
    .footer-bottom-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; padding: 20px 0; color: #7f97bd; font-size: 13px; }
    .legal-links { display: flex; flex-wrap: wrap; gap: 8px 16px; }
    .legal-links a { color: #7f97bd; }
    .credit { border-top: 1px solid #14305c; padding: 14px 24px; color: #5a7099; text-align: center; font-size: 12px; }
    .credit a { color: #8fa6c9; font-family: Montserrat, sans-serif; font-weight: 600; }

    .floating-stack { position: fixed; right: 24px; bottom: 24px; z-index: 85; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
    .back-to-top {
      width: 46px;
      height: 46px;
      display: none;
      place-items: center;
      border: 1px solid var(--border);
      border-radius: 50%;
      background: #fff;
      color: var(--navy);
      box-shadow: 0 6px 20px rgba(7,27,61,.16);
      cursor: pointer;
    }
    .back-to-top.show { display: grid; }
    .ai-toggle {
      height: 54px;
      display: flex;
      align-items: center;
      gap: 10px;
      border: 0;
      border-radius: 999px;
      background: linear-gradient(120deg, var(--blue), var(--navy));
      color: #fff;
      box-shadow: 0 8px 24px rgba(20,88,166,.4);
      cursor: pointer;
      padding: 0 20px 0 16px;
      font-family: Montserrat, sans-serif;
      font-size: 14px;
      font-weight: 700;
    }
    .wa-float { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: #25d366; color: #fff; box-shadow: 0 8px 24px rgba(37,211,102,.45); }
    .ai-panel {
      position: fixed;
      right: 24px;
      bottom: 96px;
      z-index: 90;
      width: 350px;
      max-width: calc(100vw - 32px);
      overflow: hidden;
      visibility: hidden;
      opacity: 0;
      transform: translateY(15px) scale(.98);
      border: 1px solid var(--border);
      border-radius: 18px;
      background: #fff;
      box-shadow: 0 20px 60px rgba(7,27,61,.28);
      transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
    }
    .ai-panel.open { visibility: visible; opacity: 1; transform: none; }
    .ai-header { display: flex; align-items: center; gap: 12px; padding: 18px 20px; background: linear-gradient(120deg, var(--blue), var(--navy)); }
    .ai-logo { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: rgba(255,255,255,.15); color: #fff; }
    .ai-heading { flex: 1; }
    .ai-heading strong { display: block; color: #fff; font-family: Montserrat, sans-serif; font-size: 15px; }
    .ai-heading small { color: #a9c2e6; font-size: 12px; }
    .ai-close { width: 30px; height: 30px; border: 0; border-radius: 8px; background: rgba(255,255,255,.15); color: #fff; cursor: pointer; }
    .ai-messages { max-height: 280px; overflow-y: auto; padding: 18px 20px; }
    .message { max-width: 90%; margin-bottom: 10px; border-radius: 12px; padding: 11px 13px; font-size: 14px; line-height: 1.5; }
    .message.bot { border-bottom-left-radius: 4px; background: var(--background); color: #3a4a63; }
    .message.user { margin-left: auto; border-bottom-right-radius: 4px; background: var(--blue); color: #fff; }
    .chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
    .chip { border: 0; border-radius: 999px; background: #eaf1fb; color: var(--blue); cursor: pointer; padding: 7px 12px; font-family: Montserrat, sans-serif; font-size: 12px; font-weight: 600; }
    .ai-form { display: flex; gap: 8px; border-top: 1px solid #eef2f8; padding: 12px 16px; }
    .ai-form input { min-width: 0; flex: 1; border: 1px solid #dce5f0; border-radius: 10px; outline: none; padding: 11px 12px; font-size: 14px; }
    .ai-form input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(20,88,166,.12); }
    .ai-form button { width: 42px; border: 0; border-radius: 10px; background: var(--orange); color: #fff; cursor: pointer; }
    .toast {
      position: fixed;
      left: 50%;
      bottom: 24px;
      z-index: 100;
      transform: translate(-50%, 30px);
      visibility: hidden;
      opacity: 0;
      border-radius: 10px;
      background: #10284d;
      color: #fff;
      padding: 12px 18px;
      box-shadow: var(--shadow-lg);
      font-size: 14px;
      transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
    }
    .toast.show { visibility: visible; opacity: 1; transform: translate(-50%, 0); }

    @media (max-width: 1080px) {
      .desktop-nav, .header-cta, .auth-link { display: none; }
      .mobile-actions { display: flex; }
      .hero { min-height: 590px; }
      .service-grid { grid-template-columns: repeat(2, 1fr); }
      .service-card:nth-child(2) { border-right: 0; }
      .service-card:nth-child(-n+2) { border-bottom: 1px solid #eef2f8; }
      .trust-grid { padding-top: 145px; }
      .tour-grid, .testimonial-grid, .article-grid { grid-template-columns: repeat(2, 1fr); }
      .tour-card:last-child, .testimonial-card:last-child, .article-card:last-child { grid-column: span 2; max-width: calc(50% - 12px); justify-self: center; width: 100%; }
      .type-grid { grid-template-columns: repeat(2, 1fr); }
      .destination-grid { grid-template-columns: repeat(2, 1fr); }
      .education-grid { gap: 34px; }
      .footer-grid { grid-template-columns: repeat(2, 1fr); }
    }

    @media (max-width: 760px) {
      .container { width: min(100% - 32px, var(--container)); }
      .section { padding: 58px 0; }
      .announcement { font-size: 11px; }
      .site-header { top: 0; }
      .header-inner { min-height: 66px; gap: 10px; }
      .brand img { width: 104px; height: 38px; }
      .mobile-menu { inset: 97px 0 0; }
      .mobile-book { padding: 9px 11px; font-size: 12px; }
      .hero { min-height: 640px; }
      .hero-content { padding: 76px 0 190px; }
      .hero::before { background-position: 63% center; }
      .hero h1 { font-size: clamp(40px, 12vw, 50px); }
      .hero p { font-size: 17px; }
      .service-selector { transform: translateY(60%); }
      .service-card { padding: 18px 15px; }
      .service-title { font-size: 14px; }
      .trust-grid { padding-top: 195px; justify-content: flex-start; }
      .tour-grid, .testimonial-grid, .article-grid, .type-grid { grid-template-columns: 1fr; }
      .tour-card:last-child, .testimonial-card:last-child, .article-card:last-child { grid-column: auto; max-width: none; }
      .destination-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 180px; gap: 12px; }
      .destination-card { min-height: 180px; }
      .span-2 { grid-column: span 2; }
      .education-grid, .split-grid { grid-template-columns: 1fr; }
      .education-image { min-height: 320px; }
      .education-points { grid-template-columns: 1fr; }
      .split-grid { gap: 48px; }
      .final-cta-inner { padding: 68px 0; }
      .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
      .footer-logo { width: 140px; }
      .footer-copy, .footer-contact, .footer-links, .newsletter-copy { font-size: 13px; }
      .newsletter-form { flex-direction: column; }
      .newsletter-form button { min-height: 42px; }
      .footer-bottom-inner { flex-direction: column; }
      .floating-stack { right: 16px; bottom: 16px; }
      .ai-toggle { width: 54px; padding: 0; justify-content: center; }
      .ai-toggle-label { display: none; }
      .ai-toggle-icon { font-size: 19px; }
      .ai-panel { right: 16px; bottom: 84px; }
    }

    @media (max-width: 480px) {
      .hero { min-height: 690px; }
      .hero-content { padding-bottom: 215px; }
      .button { width: 100%; }
      .service-selector { transform: translateY(64%); }
      .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .service-icon { width: 38px; height: 38px; }
      .trust-grid { padding-top: 235px; }
      .trust-item { width: 100%; }
      .destination-grid { grid-template-columns: 1fr; grid-auto-rows: 190px; }
      .span-2 { grid-column: auto; }
      .partner-card { width: 100%; }
      .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 14px; }
      .footer-brand, .footer-newsletter { grid-column: span 2; }
      .footer-title { font-size: 12px; }
      .footer-links { gap: 9px; }
      .socials { flex-wrap: wrap; }
      .ai-panel { max-height: calc(100vh - 110px); }
    }

    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; transition-duration: .001ms !important; }
    }
  

/* Shared styling for converted Design Canvas pages */
:root{--dc-content:1240px}
body{min-width:320px}
.page-main{min-height:55vh;background:#F5F8FC}
.page-main>div{width:100%}
.page-main a{transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease}
.page-main a:hover{transform:translateY(-1px)}
.page-main button{transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.page-main button:hover{transform:translateY(-1px)}
.page-main input,.page-main select,.page-main textarea{font-family:Inter,sans-serif;max-width:100%}
.page-main textarea{resize:vertical}
.dc-condition{display:contents}
.dc-photo{background-size:cover!important;background-position:center!important}
.form-feedback{display:none;margin-top:14px;padding:12px 14px;border-radius:10px;background:#eef7e4;color:#356a15;font-weight:600}
.form-feedback.show{display:block}
.page-toast{position:fixed;left:50%;bottom:28px;z-index:250;transform:translate(-50%,20px);opacity:0;background:#071B3D;color:#fff;padding:12px 18px;border-radius:10px;box-shadow:0 16px 38px rgba(7,27,61,.25);transition:.25s}
.page-toast.show{opacity:1;transform:translate(-50%,0)}
[data-dc-action]{touch-action:manipulation}
.dashboard-page{background:#F5F8FC;min-height:100vh;overflow-x:hidden}
.dashboard-page main{min-width:0;max-width:100vw;overflow-x:hidden}
.dashboard-page main>div{max-width:100%;overflow-x:auto}
.dashboard-mobile-toggle{display:none;position:fixed;top:12px;left:12px;z-index:210;width:44px;height:44px;border:0;border-radius:10px;background:#F36B21;color:#fff;font-size:21px;box-shadow:0 8px 22px rgba(7,27,61,.25)}
.dashboard-backdrop{display:none;position:fixed;inset:0;z-index:195;background:rgba(7,27,61,.55)}
.dashboard-backdrop.show{display:block}
.dashboard-page aside{z-index:200}
.table-scroll{overflow-x:auto}
@media (max-width:1080px){
  .page-main [style*="grid-template-columns:repeat(4"],.page-main [style*="grid-template-columns: repeat(4"],
  .page-main [style*="grid-template-columns:repeat(5"],.page-main [style*="grid-template-columns: repeat(5"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .page-main [style*="grid-template-columns:repeat(3"],.page-main [style*="grid-template-columns: repeat(3"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .page-main [style*="grid-template-columns:1.5fr 1fr"],.page-main [style*="grid-template-columns: 1.5fr 1fr"],
  .page-main [style*="grid-template-columns:1.4fr 1fr"],.page-main [style*="grid-template-columns: 1.4fr 1fr"]{grid-template-columns:1fr!important}
}
@media (max-width:760px){
  .page-main [style*="padding: 80px 24px"],.page-main [style*="padding:80px 24px"],
  .page-main [style*="padding: 72px 24px"],.page-main [style*="padding:72px 24px"],
  .page-main [style*="padding: 64px 24px"],.page-main [style*="padding:64px 24px"]{padding-left:18px!important;padding-right:18px!important}
  .page-main [style*="grid-template-columns:repeat(4"],.page-main [style*="grid-template-columns: repeat(4"],
  .page-main [style*="grid-template-columns:repeat(3"],.page-main [style*="grid-template-columns: repeat(3"],
  .page-main [style*="grid-template-columns:repeat(2"],.page-main [style*="grid-template-columns: repeat(2"],
  .page-main [style*="grid-template-columns:1fr 1fr"],.page-main [style*="grid-template-columns: 1fr 1fr"],
  .page-main [style*="grid-template-columns:2fr 1fr"],.page-main [style*="grid-template-columns: 2fr 1fr"],
  .page-main [style*="grid-template-columns:1fr 2fr"],.page-main [style*="grid-template-columns: 1fr 2fr"],
  .page-main [style*="grid-template-columns:1."][style*="fr 1fr"],.page-main [style*="grid-template-columns: 1."][style*="fr 1fr"],
  .page-main [style*="grid-template-columns:1fr 1."],.page-main [style*="grid-template-columns: 1fr 1."]{grid-template-columns:1fr!important}
  .page-main [style*="grid-column:span 2"],.page-main [style*="grid-column: span 2"]{grid-column:span 1!important}
  .page-main h1{font-size:clamp(34px,11vw,48px)!important;line-height:1.08!important}
  .page-main h2{font-size:clamp(26px,8vw,36px)!important}
  .page-main [style*="font-size:52px"],.page-main [style*="font-size: 52px"],
  .page-main [style*="font-size:60px"],.page-main [style*="font-size: 60px"]{font-size:clamp(36px,11vw,48px)!important}
  .page-main [style*="position:sticky"],.page-main [style*="position: sticky"]{position:static!important}
  .page-main [style*="display:flex"][style*="justify-content:space-between"]{flex-wrap:wrap!important}
  .dashboard-mobile-toggle{display:block}
  .dash-sidebar{position:fixed;left:-280px;top:0;bottom:0;transition:left .25s ease;width:260px!important;box-shadow:20px 0 50px rgba(7,27,61,.25)}
  .dash-sidebar.open{left:0}
  .dash-topbar{padding-left:66px!important;padding-right:16px!important}
  .dash-content{padding:18px!important}
  .dashboard-page [style*="grid-template-columns:repeat(4"],.dashboard-page [style*="grid-template-columns: repeat(4"],
  .dashboard-page [style*="grid-template-columns:repeat(3"],.dashboard-page [style*="grid-template-columns: repeat(3"]{grid-template-columns:1fr!important}
  .dashboard-page [style*="grid-template-columns:1.5fr 1fr"],.dashboard-page [style*="grid-template-columns:1.4fr 1fr"]{grid-template-columns:1fr!important}
  .dashboard-page [style*="grid-template-columns:"]{min-width:680px}
  .dashboard-page .dc-condition{display:block}
}

/* Portal experience upgrade — shared customer and operations workbench */
:root{--portal-canvas:#f3f6fa;--portal-surface:#fff;--portal-soft:#f7f9fc;--portal-line:#dfe6ef;--portal-text:#14233b;--portal-muted:#627089;--portal-navy:#081c3d;--portal-blue:#1458a6;--portal-orange:#ee6b2f;--portal-green:#3f7a38;--portal-danger:#a6382e;--portal-focus:#ffb36b;--portal-radius:14px;--portal-shadow:0 1px 2px rgba(8,28,61,.04),0 8px 24px rgba(8,28,61,.06)}
.dashboard-page{background:var(--portal-canvas);color:var(--portal-text)}
.dashboard-page [hidden]{display:none!important}
.dashboard-page *{box-sizing:border-box}
.dashboard-page :focus-visible{outline:3px solid var(--portal-focus);outline-offset:3px}
.dash-shell{min-height:100dvh}
.dash-sidebar{position:sticky;top:0;height:100dvh;width:272px;background:linear-gradient(180deg,#0b2248 0%,#07162f 100%);padding:18px 0 0;overflow:hidden}
.dash-sidebar-brand{min-height:58px;margin:0 14px 12px;padding:8px 10px;border-radius:12px;color:#fff;text-decoration:none}
.dash-sidebar-brand:hover{background:rgba(255,255,255,.06)}
.dash-sidebar-brand img{width:42px;height:42px;object-fit:contain;padding:4px;border-radius:10px}
.dash-sidebar-brand span{display:flex;flex-direction:column;gap:1px;color:#fff;letter-spacing:0;text-transform:none}
.dash-sidebar-brand span b{font-size:15px;line-height:1.2}.dash-sidebar-brand span small{font:500 11px/1.3 Inter,sans-serif;color:#92a7c9}
.dash-sidebar-scroll{overflow-y:auto;overscroll-behavior:contain;padding-bottom:14px;scrollbar-width:thin;scrollbar-color:#385275 transparent}
.dash-nav-group{padding:16px 24px 6px;color:#7189ad;font-size:10px;letter-spacing:1.2px}
.dash-nav{padding:0 12px 2px;gap:3px}
.dash-nav a{position:relative;min-height:42px;padding:10px 12px;border-radius:10px;color:#bdcce1;font-size:13px}
.dash-nav a:hover{background:rgba(255,255,255,.07);color:#fff;transform:none}
.dash-nav a.active{background:#fff;color:var(--portal-navy);box-shadow:0 6px 20px rgba(0,0,0,.16)}
.dash-nav a.active:before{content:"";position:absolute;left:-12px;width:4px;height:22px;border-radius:0 4px 4px 0;background:var(--portal-orange)}
.dash-nav-icon{width:20px;font-size:14px}.dash-sidebar-footer{margin-top:0;padding:15px 22px 18px;background:rgba(0,0,0,.12)}
.dash-sidebar-footer a{min-height:32px;margin:0;color:#99adca}.dash-sidebar-footer a:hover{color:#fff}
.dash-main{background:var(--portal-canvas);flex:1 1 0;width:0}
.dash-topbar{min-height:76px;padding:12px clamp(20px,3vw,40px);border-color:var(--portal-line);box-shadow:0 1px 0 rgba(8,28,61,.02);flex-wrap:nowrap}
.dash-topbar-title-wrap{min-width:0}.dash-topbar-eyebrow{font:700 10px/1.3 Montserrat,sans-serif;letter-spacing:1.2px;text-transform:uppercase;color:var(--portal-blue);margin-bottom:2px}
.dash-topbar-heading{font-size:clamp(19px,2vw,24px);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-topbar-actions{gap:10px}.dash-icon-action{position:relative;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--portal-line);border-radius:12px;background:#fff;color:var(--portal-text);text-decoration:none}
.dash-icon-action:hover{border-color:#b9c8db;background:var(--portal-soft)}
.dash-notification-count{position:absolute;right:-5px;top:-5px;min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;border:2px solid #fff;border-radius:10px;background:var(--portal-orange);color:#fff;font:700 9px Montserrat,sans-serif}
.dash-user-chip{display:flex;align-items:center;gap:10px;min-height:46px;padding:4px 8px 4px 5px;border:1px solid transparent;border-radius:13px;color:var(--portal-text);text-decoration:none}.dash-user-chip:not(.dash-user-chip-static):hover{background:var(--portal-soft);border-color:var(--portal-line)}
.dash-avatar{width:38px;height:38px;background:linear-gradient(145deg,var(--portal-blue),#0b3970);box-shadow:0 0 0 3px #e7eef8}
.dash-user-copy{display:flex;flex-direction:column;min-width:0}.dash-user-copy b{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 13px/1.35 Montserrat,sans-serif}.dash-user-copy small{font-size:11px;color:var(--portal-muted)}.dash-user-chip>i{font-size:10px;color:#8c99ad}
.dash-command-trigger{height:40px;min-width:230px;display:flex;align-items:center;gap:9px;padding:0 10px;border:1px solid var(--portal-line);border-radius:11px;background:var(--portal-soft);color:var(--portal-muted);font:500 12px Inter,sans-serif;cursor:pointer}.dash-command-trigger span{flex:1;text-align:left}.dash-command-trigger kbd{padding:3px 6px;border:1px solid #ccd5e1;border-radius:5px;background:#fff;color:#75839a;font:600 10px Montserrat,sans-serif}
.dash-content{width:100%;padding:clamp(20px,3vw,38px) clamp(18px,3vw,40px);overflow-x:hidden;overflow-y:visible}
.dash-content>*{max-width:1440px;margin-left:auto;margin-right:auto}.dash-content>.dash-back-link{display:flex;width:max-content;margin-left:max(0px,calc((100% - 1440px)/2))}
.dash-flash{display:flex;align-items:center;gap:10px;margin:0 auto 22px;max-width:1440px}.dash-flash span{flex:1}.flash-dismiss{width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer}
.portal-toast{position:fixed;z-index:1000;right:24px;bottom:24px;max-width:360px;padding:13px 16px;border-radius:12px;background:var(--portal-navy);color:#fff;box-shadow:0 16px 40px rgba(8,28,61,.26);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.portal-toast.show{opacity:1;transform:none}
.dash-card,.stat-card,.dash-table-wrap,.dash-form-card{border-color:var(--portal-line);box-shadow:var(--portal-shadow)}
.dash-card{border-radius:var(--portal-radius);padding:clamp(18px,2.2vw,26px)}.dash-card-title{font-size:15px;line-height:1.4;margin-bottom:16px}.dash-card-title i{color:var(--portal-blue)}
.stat-grid{gap:14px;margin-bottom:22px}.stat-card{min-height:138px;border-radius:var(--portal-radius);padding:20px}.stat-card:before{height:3px;background:var(--portal-blue)}.stat-card:nth-child(2):before{background:var(--portal-green)}.stat-card:nth-child(3):before{background:var(--portal-orange)}.stat-card:nth-child(4):before{background:#7856a8}.stat-label{font-weight:600}.stat-value{font-size:clamp(24px,2.5vw,31px)}.stat-icon{top:18px;right:18px;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#edf3fa;color:var(--portal-blue);font-size:16px;opacity:1}
.btn{min-height:42px;border-radius:10px;padding:10px 16px;transition:box-shadow .15s ease,background .15s ease,border-color .15s ease}.btn:hover{transform:none}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--portal-orange);box-shadow:none}.btn-primary:hover{background:#d95d24;box-shadow:0 5px 14px rgba(238,107,47,.22)}.btn-secondary{background:var(--portal-blue);box-shadow:none}.btn-outline{border-color:#cad5e2}.btn-danger{border-color:#f0c7c1}
.dash-toolbar{padding:12px;border:1px solid var(--portal-line);border-radius:13px;background:#fff;box-shadow:0 1px 2px rgba(8,28,61,.03)}.dash-search{max-width:420px}.dash-search input{height:42px;background:var(--portal-soft)}
.dash-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:30px;height:30px;display:grid;place-items:center;border-radius:7px;color:var(--portal-muted)}.dash-search-clear:hover{background:#e9eef5;transform:translateY(-50%)}
.dash-search{display:flex;max-width:520px}.dash-search input{padding-right:82px}.dash-search-submit{position:absolute;right:5px;top:5px;height:32px;padding:0 12px;border:0;border-radius:7px;background:var(--portal-blue);color:#fff;font:700 11px Montserrat,sans-serif;cursor:pointer}.dash-search-clear+.dash-search-submit{right:40px}.dash-search:has(.dash-search-clear) input{padding-right:118px}
.dash-table-wrap{border-radius:var(--portal-radius)}.dash-table-scroll{scrollbar-width:thin}.dash-table caption{padding:16px 18px;text-align:left;font-weight:700}.dash-table thead th{position:sticky;top:0;z-index:1;padding:12px 16px;background:#f6f8fb;color:#526078}.dash-table tbody td{padding:15px 16px;white-space:normal;vertical-align:middle}.dash-table tbody tr:hover{background:#f8fafc}.dash-row-actions a,.dash-row-actions button{min-height:34px;margin-left:6px;padding:7px 9px;border-radius:8px}.dash-row-actions a:hover,.dash-row-actions button:hover{background:#edf3fa}.dash-link-delete:hover{background:#fff0ee!important}
.dash-empty{padding:70px 24px;background:linear-gradient(180deg,#fff,#fafbfd)}
.badge{border:1px solid transparent;padding:5px 10px}.badge-success{border-color:#cae6be}.badge-warning{border-color:#f2dab0}.badge-danger{border-color:#f2c9c4}.badge-info{border-color:#cbdcf2}.badge-neutral{border-color:#dde2e9}
.dash-form-card{border-radius:var(--portal-radius);max-width:1040px}.form-grid{gap:21px 24px}.field label{font-size:12px}.field input[type=text],.field input[type=email],.field input[type=number],.field input[type=date],.field input[type=password],.field input[type=color],.field select,.field textarea{min-height:44px;border-color:#cbd5e1;border-radius:10px;background:#fff}.field input:hover,.field select:hover,.field textarea:hover{border-color:#9fafc3}.field-error{padding-left:18px;position:relative}.field-error:before{content:"!";position:absolute;left:0;top:0;width:14px;height:14px;display:grid;place-items:center;border-radius:50%;background:var(--portal-danger);color:#fff;font-size:9px}.dash-form-actions{position:sticky;bottom:0;margin:26px -30px -30px;padding:16px 30px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-radius:0 0 var(--portal-radius) var(--portal-radius);z-index:5}
.form-intro{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--portal-line)}.form-intro h2{margin:0 0 5px;font:800 20px/1.3 Montserrat,sans-serif;color:var(--portal-navy)}.form-intro p{margin:0;color:var(--portal-muted);font-size:13px}.form-intro .req{color:var(--portal-danger)}.form-error-summary{display:flex;flex-direction:column;gap:3px;margin:-4px 0 22px;padding:14px 16px;border:1px solid #efc0ba;border-radius:11px;background:#fff1ef;color:var(--portal-danger);font-size:13px}
.dash-tabs{overflow-x:auto;flex-wrap:nowrap;padding:2px 2px 6px;scrollbar-width:thin}.dash-tab{min-height:40px;padding:8px 15px;border-radius:10px;white-space:nowrap}.dash-tab.active{box-shadow:0 4px 12px rgba(20,88,166,.18)}
.dashboard-mobile-toggle{width:44px;height:44px;border-radius:11px;box-shadow:none}.dashboard-backdrop{backdrop-filter:blur(2px)}
@media (max-width:1100px){.dash-command-trigger{min-width:42px;width:42px}.dash-command-trigger span,.dash-command-trigger kbd{display:none}.dash-user-copy{display:none}}
@media (max-width:760px){
 .dash-main{width:100%}.dash-sidebar{position:fixed;height:100dvh;width:min(86vw,300px)!important;left:-310px}.dash-sidebar.open{left:0}.dash-topbar{min-height:68px;padding:10px 12px 10px 68px}.dash-topbar-eyebrow{display:none}.dash-topbar-actions{gap:6px}.dash-icon-action{width:40px;height:40px}.dash-user-chip{padding:2px}.dash-user-chip>i{display:none}.dash-user-chip-static{display:none}.dash-command-trigger{display:none}.dash-content{padding:18px 14px 88px}.stat-grid{grid-template-columns:1fr}.stat-card{min-height:116px}.dash-panel-grid{grid-template-columns:1fr!important}.dashboard-page [style*="grid-template-columns:"]{min-width:0!important;grid-template-columns:1fr!important}.dash-card{padding:18px}.dash-toolbar{align-items:stretch}.dash-search{max-width:none;width:100%}.dash-toolbar-links{width:100%}.dash-table-wrap{overflow:visible;background:transparent;border:0;box-shadow:none}.dash-table-scroll{overflow:visible}.dash-table,.dash-table tbody,.dash-table tr,.dash-table td{display:block;width:100%}.dash-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.dash-table tbody{display:grid;gap:12px}.dash-table tbody tr{padding:12px 14px;border:1px solid var(--portal-line);border-radius:13px;background:#fff;box-shadow:var(--portal-shadow)}.dash-table tbody td{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border:0;max-width:none;min-width:0;overflow:visible}.dash-table tbody td:not(.dash-row-actions)>*:last-child,.dash-table tbody td:not(.dash-row-actions){overflow-wrap:anywhere}.dash-table tbody td:before{content:attr(data-label);flex:0 0 40%;color:var(--portal-muted);font:700 10px/1.4 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.4px}.dash-table tbody td:empty{display:none}.dash-row-actions{display:flex!important;flex-wrap:wrap;white-space:normal!important;justify-content:flex-start!important;gap:4px;border-top:1px solid var(--portal-line)!important;margin-top:5px;padding-top:10px!important}.dash-row-actions:before{display:none}.dash-row-actions a,.dash-row-actions button{margin:0!important}.dash-form-card{padding:20px}.dash-form-actions{position:sticky;margin:24px -20px -20px;padding:14px 20px;display:grid;grid-template-columns:1fr 1fr}.portal-toast{left:14px;right:14px;bottom:16px;max-width:none}.dash-user-chip .dash-avatar{width:38px;height:38px}}
@media (max-width:430px){.dash-topbar-actions .dash-icon-action:first-child{display:none}.dash-topbar-heading{font-size:18px}.dash-form-actions{grid-template-columns:1fr}.btn{width:100%}}
@media (prefers-reduced-motion:reduce){.dash-sidebar,.portal-toast{transition:none}}

/* Customer overview */
.customer-welcome{position:relative;overflow:hidden;margin-bottom:18px;padding:28px 30px 24px;border-radius:18px;background:linear-gradient(120deg,#155fae 0%,#0b356b 58%,#081f45 100%);color:#fff;box-shadow:0 14px 32px rgba(8,38,82,.16)}
.customer-welcome:after{content:"";position:absolute;right:-80px;top:-120px;width:340px;height:340px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 45px rgba(255,255,255,.025),0 0 0 90px rgba(255,255,255,.018)}
.customer-welcome-copy,.customer-welcome-action,.journey-progress{position:relative;z-index:1}.customer-welcome-kicker{display:block;color:#c8dbf2;font-size:13px;margin-bottom:3px}.customer-welcome h1{max-width:680px;margin:0 0 7px;font:800 clamp(23px,3vw,31px)/1.18 Montserrat,sans-serif}.customer-welcome p{margin:0;color:#c8d9ed;font-size:14px}.customer-welcome p strong{color:#fff}.customer-welcome-action{position:absolute;right:28px;top:30px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:#fff}.customer-welcome-action:hover{background:#fff;color:var(--portal-blue)}
.journey-progress{display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin:26px 0 0;padding:0;list-style:none}.journey-progress li{position:relative;display:flex;flex-direction:column;gap:8px;align-items:flex-start;color:#91a8c7;font:600 10px/1.3 Montserrat,sans-serif}.journey-progress li:not(:last-child):after{content:"";position:absolute;top:13px;left:30px;right:8px;height:2px;background:rgba(255,255,255,.15)}.journey-marker{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.1);color:#8ea5c3;font-size:11px}.journey-progress .is-complete{color:#b9df9f}.journey-progress .is-complete .journey-marker{background:#6fae42;color:#fff}.journey-progress .is-complete:after{background:#6fae42!important}.journey-progress .is-current{color:#fff}.journey-progress .is-current .journey-marker{background:var(--portal-orange);color:#fff;box-shadow:0 0 0 4px rgba(238,107,47,.18)}
.portal-attention{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:20px;padding:17px 19px;border:1px solid #f0cfb6;border-left:4px solid var(--portal-orange);border-radius:13px;background:#fff9f4;box-shadow:0 3px 12px rgba(98,55,22,.04)}.portal-attention-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#ffe8d7;color:#c8521e;font-size:17px}.portal-attention-label{font:700 10px Montserrat,sans-serif;letter-spacing:.8px;text-transform:uppercase;color:#a9582d}.portal-attention h2{margin:2px 0 2px;font:800 16px/1.35 Montserrat,sans-serif;color:var(--portal-navy)}.portal-attention p{margin:0;color:var(--portal-muted);font-size:13px}.portal-attention-warning{border-color:#ecd8a7;border-left-color:#d99a1d;background:#fffbef}.portal-attention-warning .portal-attention-icon{background:#fff0c7;color:#9d6810}
.customer-stat-grid a{text-decoration:none;color:inherit}.customer-stat-grid a:hover{border-color:#b8c7d8;box-shadow:0 8px 24px rgba(8,28,61,.09)}.customer-stat-grid .stat-value-money{font-size:clamp(21px,2vw,28px);padding-right:28px}.customer-stat-grid .stat-value small{font:700 12px Montserrat,sans-serif;color:var(--portal-muted)}.customer-stat-grid .stat-meta{color:var(--portal-blue);font-weight:600;margin-top:8px}.customer-stat-grid .stat-meta i{font-size:9px;margin-left:3px}
.customer-home-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)}.trip-list-card{display:flex;align-items:center;gap:13px;padding:13px 0;border-top:1px solid var(--portal-line);color:inherit;text-decoration:none}.trip-list-card:first-of-type{border-top:0}.trip-list-image{width:68px;height:54px;flex:0 0 auto;border-radius:10px;background:#e6edf5 center/cover no-repeat}.trip-list-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}.trip-list-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 13px Montserrat,sans-serif}.trip-list-copy small{color:var(--portal-muted);font-size:12px}.trip-list-arrow{color:#9babc0;font-size:11px}.compact-empty{min-height:124px;display:flex;align-items:center;justify-content:center;gap:13px;text-align:left}.compact-empty>span{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#edf3fa;color:var(--portal-blue)}.compact-empty b{font:700 13px Montserrat,sans-serif}.compact-empty p{margin:3px 0 0;color:var(--portal-muted);font-size:12px}.announcement-list{display:grid}.announcement-item{position:relative;display:grid;grid-template-columns:10px 1fr;gap:11px;padding:13px 0;border-top:1px solid var(--portal-line)}.announcement-item:first-child{border-top:0;padding-top:0}.announcement-dot{width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--portal-orange)}.announcement-item h3{margin:0 0 3px;font:700 13px/1.35 Montserrat,sans-serif}.announcement-item time{color:var(--portal-muted);font-size:11px}.portal-empty-state{text-align:center;padding:70px 24px}.portal-empty-icon{width:62px;height:62px;margin:0 auto 16px;display:grid;place-items:center;border-radius:50%;background:#edf3fa;color:var(--portal-blue);font-size:23px}.portal-empty-state h2{margin:0 0 8px;font:800 20px Montserrat,sans-serif}.portal-empty-state p{max-width:560px;margin:0 auto 20px;color:var(--portal-muted)}
@media(max-width:900px){.customer-welcome-action{position:relative;right:auto;top:auto;margin-top:18px}.journey-progress{overflow-x:auto;grid-template-columns:repeat(6,minmax(108px,1fr));padding-bottom:8px}.portal-attention{grid-template-columns:auto 1fr}.portal-attention .btn{grid-column:1/-1;width:100%}}
@media(max-width:560px){.customer-welcome{padding:23px 20px}.customer-welcome h1{font-size:23px}.journey-progress{margin-top:22px}.portal-attention{grid-template-columns:1fr;padding:17px}.portal-attention-icon{width:38px;height:38px}.customer-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.customer-stat-grid .stat-card{min-height:144px;padding:16px}.customer-stat-grid .stat-icon{width:31px;height:31px}.customer-stat-grid .stat-value{font-size:24px}.customer-stat-grid .stat-value-money{font-size:18px;padding-right:0}.customer-stat-grid .stat-meta{font-size:10px}.trip-list-card{align-items:flex-start;flex-wrap:wrap}.trip-list-copy{min-width:150px}.trip-list-card .badge{margin-left:81px}.trip-list-arrow{display:none}}

/* Customer list/detail foundations */
.portal-page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.portal-page-kicker{font:700 10px Montserrat,sans-serif;letter-spacing:1px;text-transform:uppercase;color:var(--portal-blue)}.portal-page-intro h1{margin:3px 0 5px;font:800 clamp(24px,3vw,32px)/1.2 Montserrat,sans-serif;color:var(--portal-navy)}.portal-page-intro p{margin:0;color:var(--portal-muted);font-size:14px}.booking-filter-tabs .dash-tab{border:0;background:transparent}.booking-filter-tabs .dash-tab span{min-width:21px;padding:2px 6px;border-radius:9px;background:#e7edf5;color:#53637a;font-size:10px}.booking-filter-tabs .dash-tab.active{background:var(--portal-blue);color:#fff}.booking-filter-tabs .dash-tab.active span{background:rgba(255,255,255,.2);color:#fff}.customer-booking-list{display:grid;gap:12px}.customer-booking-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--portal-line);border-radius:14px;background:#fff;box-shadow:var(--portal-shadow)}.customer-booking-card:hover{border-color:#b9c8da}.customer-booking-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:13px;background:#edf3fa;color:var(--portal-blue)}.customer-booking-title-row{display:flex;align-items:center;gap:10px}.customer-booking-title-row h2{margin:0;font:800 15px/1.35 Montserrat,sans-serif;color:var(--portal-navy)}.customer-booking-meta{display:flex;gap:18px;margin-top:7px;color:var(--portal-muted);font-size:12px}.customer-booking-meta i{width:13px;color:#8aa0bd}.booking-filter-empty{padding:50px}.customer-booking-card[hidden]{display:none}
@media(max-width:700px){.portal-page-intro{align-items:flex-start;flex-direction:column}.portal-page-intro .btn{width:100%}.customer-booking-card{grid-template-columns:auto 1fr;padding:16px}.customer-booking-card>.btn{grid-column:1/-1;width:100%}.customer-booking-title-row{align-items:flex-start;flex-direction:column}.customer-booking-meta{flex-direction:column;gap:5px}}
.booking-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px;padding:2px 0}.booking-detail-header h1{margin:5px 0 5px;font:800 clamp(24px,3vw,32px)/1.2 Montserrat,sans-serif;color:var(--portal-navy)}.booking-detail-header p{margin:0;color:var(--portal-muted);font-size:13px}.booking-detail-status{padding:7px 13px;font-size:12px}.copy-reference{padding:0;border:0;background:transparent;color:var(--portal-blue);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.copy-reference i{margin-left:4px}.booking-detail-tabs{position:sticky;top:76px;z-index:10;padding:10px 0;margin-bottom:18px;background:var(--portal-canvas)}
.portal-info-note{display:flex;align-items:flex-start;gap:12px;padding:15px 17px;border:1px solid #cbdcf0;border-radius:12px;background:#f2f7fc;color:#31577f}.portal-info-note i{margin-top:3px}.portal-info-note p{margin:0;font-size:13px}.portal-info-note strong{color:#173d66}
.portal-response-note{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:9px;background:#edf3fa;color:#436181;font-size:12px}.support-thread-intro{align-items:center}.support-thread-intro+.dash-card>div:first-child{display:none}
.admin-command-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px;padding:26px 28px;border-radius:17px;background:linear-gradient(120deg,#fff,#f3f7fc);border:1px solid var(--portal-line);box-shadow:var(--portal-shadow)}.admin-command-hero h1{margin:4px 0 5px;font:800 clamp(25px,3vw,34px)/1.2 Montserrat,sans-serif;color:var(--portal-navy)}.admin-command-hero p{margin:0;color:var(--portal-muted)}.admin-quick-actions{display:flex;gap:9px}.admin-attention-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px}.admin-attention-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:17px 18px;border:1px solid #cbdcf0;border-left:4px solid var(--portal-blue);border-radius:13px;background:#f7fbff;color:inherit;text-decoration:none}.admin-attention-card.is-warning{border-color:#f0d3bc;border-left-color:var(--portal-orange);background:#fff9f5}.admin-attention-card>span{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#e6f0fb;color:var(--portal-blue)}.admin-attention-card.is-warning>span{background:#ffe8d8;color:#c65320}.admin-attention-card small{display:block;color:var(--portal-muted);font-size:11px}.admin-attention-card strong{display:block;margin:2px 0;font:700 14px Montserrat,sans-serif}.admin-attention-card p{margin:0;color:var(--portal-muted);font-size:12px}.admin-attention-card>i{color:#8192a8;font-size:11px}.admin-list-intro{margin-bottom:18px}
.table-money{font-variant-numeric:tabular-nums;font-weight:650;color:var(--portal-navy)}
.health-summary{display:flex;align-items:center;gap:14px;margin-bottom:18px;padding:18px 20px;border:1px solid #cce4c2;border-radius:14px;background:#f3faef}.health-summary.has-issues{border-color:#efc7c0;background:#fff3f1}.health-summary>span{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#dcefd3;color:var(--portal-green)}.health-summary.has-issues>span{background:#f7dcd8;color:var(--portal-danger)}.health-summary h2{margin:0 0 2px;font:800 15px Montserrat,sans-serif}.health-summary p{margin:0;color:var(--portal-muted);font-size:12px}.health-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.health-check-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:18px;border:1px solid var(--portal-line);border-radius:13px;background:#fff;box-shadow:var(--portal-shadow)}.health-check-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px}.health-check-icon.is-ok{background:#eaf7e3;color:var(--portal-green)}.health-check-icon.is-error{background:#fde9e6;color:var(--portal-danger)}.health-check-card h2{margin:0 0 3px;font:700 13px Montserrat,sans-serif}.health-check-card p{margin:0;color:var(--portal-muted);font-size:11px}@media(max-width:700px){.health-check-grid{grid-template-columns:1fr}.health-check-card{grid-template-columns:auto 1fr}.health-check-card>.badge{grid-column:2}}
.command-palette{width:min(620px,calc(100% - 28px));max-height:min(720px,calc(100dvh - 40px));padding:0;border:0;border-radius:18px;background:#fff;color:var(--portal-text);box-shadow:0 26px 70px rgba(8,28,61,.3)}.command-palette::backdrop{background:rgba(5,18,39,.6);backdrop-filter:blur(3px)}.command-palette-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px 15px}.command-palette-head h2{margin:3px 0 0;font:800 20px Montserrat,sans-serif}.command-palette-head button{width:36px;height:36px;border:0;border-radius:9px;background:#eef2f7;color:var(--portal-muted);cursor:pointer}.command-palette-search{position:relative;margin:0 22px 14px}.command-palette-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#7d8ca2}.command-palette-search input{width:100%;height:48px;padding:0 14px 0 40px;border:1px solid #bdcad9;border-radius:11px;font:500 14px Inter,sans-serif}.command-results{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;padding:0 22px 22px}.command-results a{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:12px;border:1px solid var(--portal-line);border-radius:11px;color:inherit;text-decoration:none;font:700 12px Montserrat,sans-serif}.command-results a:hover{border-color:#aabdd4;background:#f5f8fc}.command-results a>i:first-child{color:var(--portal-blue)}.command-results a>i:last-child{color:#95a3b6;font-size:9px}.command-empty{margin:0 22px 22px;padding:30px;text-align:center;color:var(--portal-muted);background:var(--portal-soft);border-radius:11px}@media(max-width:520px){.command-results{grid-template-columns:1fr}.command-palette-head{padding:18px 18px 13px}.command-palette-search{margin-inline:18px}.command-results{padding-inline:18px}}
@media(max-width:760px){.admin-command-hero{align-items:flex-start;flex-direction:column;padding:21px}.admin-quick-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.admin-attention-grid{grid-template-columns:1fr}.admin-list-intro .btn{width:100%}}
@media(max-width:760px){.booking-detail-tabs{top:68px}.booking-detail-header{flex-direction:column}.booking-detail-status{align-self:flex-start}}

@media (max-width:520px){
  .container{width:min(100% - 28px,var(--container))}
  .page-main [style*="padding:32px"],.page-main [style*="padding: 32px"]{padding:20px!important}
  .page-main [style*="padding:60px"],.page-main [style*="padding: 60px"]{padding:30px 18px!important}
  .page-main [style*="gap:24px"],.page-main [style*="gap: 24px"]{gap:16px!important}
  .page-main [style*="min-width:260px"]{min-width:0!important;width:100%!important}
}

/* Phase 1 additions: flash messages, breadcrumbs, pagination, cookie consent */
.flash-banner{max-width:var(--container);margin:16px auto 0;padding:14px 20px;border-radius:12px;font-family:Inter,sans-serif;font-size:15px;font-weight:500}
.flash-banner-success{background:#eef7e4;color:#3f6b1c;border:1px solid #cfe6b3}
.flash-banner-error{background:#fdecea;color:#a32a1f;border:1px solid #f6c6c0}
.breadcrumbs{padding:16px 0}
.breadcrumbs-inner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:Montserrat,sans-serif;font-size:13px;color:var(--muted)}
.breadcrumbs-inner a{color:var(--muted)}
.breadcrumbs-inner a:hover{color:var(--orange)}
.breadcrumb-current{color:var(--navy);font-weight:600}
.pagination{display:flex;gap:8px;justify-content:center;padding:32px 0;flex-wrap:wrap}
.pagination-link{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;border-radius:10px;border:1px solid var(--border);color:var(--navy);font-family:Montserrat,sans-serif;font-weight:600;font-size:14px}
.pagination-link:hover{border-color:var(--blue)}
.pagination-link-active{background:var(--blue);border-color:var(--blue);color:#fff}
.cookie-consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:900;background:var(--navy);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:18px 22px}
.cookie-consent-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;max-width:var(--container);margin-inline:auto}
.cookie-consent p{margin:0;font-size:14px;color:#dce5f0}
.cookie-consent a{color:#fff;text-decoration:underline}
@media (max-width:640px){.cookie-consent-inner{flex-direction:column;align-items:flex-start}}

/* ============================================================
   Dashboard component system (admin + customer back-office)
   Built on the --navy/--blue/--orange/--muted/--border/--radius
   tokens defined at the top of this file for total consistency
   with the public site.
   ============================================================ */
.dash-shell{display:flex;min-height:100vh}
.dash-sidebar{width:250px;flex-shrink:0;background:var(--navy);color:#b9c9e0;display:flex;flex-direction:column;padding:20px 0;overflow-y:auto}
.dash-sidebar-brand{padding:0 22px 18px;display:flex;align-items:center;gap:10px}
.dash-sidebar-brand img{height:34px;background:#fff;padding:4px 7px;border-radius:7px}
.dash-sidebar-brand span{font-family:Montserrat,sans-serif;font-weight:700;font-size:12px;color:var(--orange);letter-spacing:1px}
.dash-nav-group{padding:14px 22px 6px;font-family:Montserrat,sans-serif;font-weight:700;font-size:11px;color:#5a7099;letter-spacing:1px;text-transform:uppercase}
.dash-nav{display:flex;flex-direction:column;gap:2px;padding:0 12px 8px}
.dash-nav a{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:9px;font-family:Montserrat,sans-serif;font-weight:600;font-size:13px;color:#b9c9e0;transition:background .15s ease,color .15s ease}
.dash-nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.dash-nav a.active{background:var(--blue);color:#fff;box-shadow:0 6px 16px rgba(20,88,166,.35)}
.dash-nav-icon{width:18px;text-align:center;flex-shrink:0}
.dash-sidebar-footer{padding:16px 22px;border-top:1px solid rgba(255,255,255,.08);margin-top:auto}
.dash-sidebar-footer a{color:#8ea3c9;font-size:13px;display:flex;align-items:center;gap:8px;margin-bottom:8px;transition:color .15s ease}
.dash-sidebar-footer a:hover{color:#fff}
.dash-credit{font-size:11px;color:#4d648c;margin-top:10px}
.dash-credit a{display:inline;color:#7f97bd;margin:0}

.dash-main{flex:1;display:flex;flex-direction:column;min-width:0;max-width:100vw;overflow-x:hidden}
.dash-topbar{background:var(--surface);border-bottom:1px solid var(--border);padding:16px 32px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;position:sticky;top:0;z-index:20}
.dash-topbar-heading{font-family:Montserrat,sans-serif;font-weight:800;font-size:22px;color:var(--navy)}
.dash-topbar-crumb{font-size:13px;color:var(--muted);margin-top:2px}
.dash-topbar-actions{display:flex;align-items:center;gap:14px}
.dash-avatar{width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-family:Montserrat,sans-serif;font-weight:700;flex-shrink:0}
.dash-content{padding:28px 32px;flex:1;overflow:auto;max-width:100%}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:Montserrat,sans-serif;font-weight:700;font-size:13px;padding:10px 18px;border-radius:9px;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;line-height:1.2}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--orange);color:#fff;box-shadow:0 8px 18px rgba(243,107,33,.28)}
.btn-primary:hover{background:#e05f18}
.btn-secondary{background:var(--blue);color:#fff;box-shadow:0 8px 18px rgba(20,88,166,.25)}
.btn-secondary:hover{background:#0f4787}
.btn-outline{background:#fff;color:var(--navy);border-color:var(--border)}
.btn-outline:hover{border-color:var(--blue);color:var(--blue)}
.btn-ghost{background:transparent;color:var(--muted);box-shadow:none;padding:8px 12px}
.btn-ghost:hover{color:var(--navy)}
.btn-danger{background:#fdecea;color:#a32a1f}
.btn-danger:hover{background:#f9d8d4}
.btn-sm{padding:7px 12px;font-size:12px}
.btn-block{width:100%}

/* Cards */
.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;box-shadow:var(--shadow-sm)}
.dash-card-title{font-family:Montserrat,sans-serif;font-weight:700;font-size:16px;color:var(--navy);margin:0 0 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.dash-card-title a{font-size:13px;font-weight:600}

/* Stat cards (KPIs) */
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:26px}
.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}
.stat-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--blue),var(--orange))}
.stat-label{font-size:13px;color:var(--muted);font-weight:500}
.stat-value{font-family:Montserrat,sans-serif;font-weight:800;font-size:28px;color:var(--navy);margin:6px 0 4px}
.stat-meta{font-size:12px;color:var(--muted)}
.stat-icon{position:absolute;top:20px;right:20px;font-size:22px;opacity:.35}

/* Toolbar (search + filters above tables) */
.dash-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}
.dash-toolbar-links{display:flex;flex-wrap:wrap;gap:16px}
.dash-toolbar-links a{font-size:13px;color:var(--blue);font-weight:600}
.dash-search{max-width:320px;flex:1;min-width:220px;position:relative}
.dash-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:13px;pointer-events:none}
.dash-search input{width:100%;box-sizing:border-box;padding:11px 14px 11px 36px;border:1px solid var(--border);border-radius:10px;font-size:14px;background:#fff}
.dash-search input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(20,88,166,.12)}
.icon-btn{display:inline-flex;align-items:center;gap:6px}

/* Data table */
.dash-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm)}
.dash-table-scroll{overflow-x:auto}
.dash-table{width:100%;border-collapse:collapse;font-size:14px}
.dash-table thead th{text-align:left;padding:13px 18px;font-family:Montserrat,sans-serif;font-weight:700;font-size:11px;letter-spacing:.4px;color:var(--muted);text-transform:uppercase;background:var(--background);border-bottom:1px solid var(--border);white-space:nowrap}
.dash-table tbody td{padding:14px 18px;color:var(--ink);border-top:1px solid var(--border);white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}
.dash-table tbody tr{transition:background .12s ease}
.dash-table tbody tr:hover{background:#f8fafd}
.dash-row-actions{text-align:right;white-space:nowrap}
.dash-row-actions a,.dash-row-actions button{margin-left:14px;font-family:Montserrat,sans-serif;font-weight:600;font-size:13px}
.dash-link-edit{color:var(--blue)}
.dash-link-delete{background:none;border:none;color:#a32a1f;cursor:pointer;padding:0;font:inherit}
.dash-link-muted{color:var(--muted)}
.dash-empty{padding:64px 24px;text-align:center;color:var(--muted)}
.dash-empty a{color:var(--blue);font-weight:600}

/* Badges */
.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:100px;font-family:Montserrat,sans-serif;font-weight:600;font-size:12px;white-space:nowrap}
.badge-success{background:#eaf7e0;color:#3f7a1f}
.badge-warning{background:#fff4e0;color:#a2650b}
.badge-danger{background:#fdecea;color:#a32a1f}
.badge-info{background:#eaf1fb;color:var(--blue)}
.badge-neutral{background:#eef1f6;color:var(--muted)}

/* Forms */
.dash-form-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:30px;box-shadow:var(--shadow-sm);max-width:860px}
.form-section-title{font-family:Montserrat,sans-serif;font-weight:700;font-size:14px;color:var(--navy);margin:28px 0 16px;padding-top:20px;border-top:1px solid var(--border)}
.form-section-title:first-child{margin-top:0;padding-top:0;border-top:none}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px}
.field{min-width:0}
.field-full{grid-column:1/-1}
.field label{display:block;font-family:Montserrat,sans-serif;font-weight:600;font-size:13px;color:var(--navy);margin-bottom:7px}
.field label .req{color:#c0392b}
.field input[type=text],.field input[type=email],.field input[type=number],.field input[type=date],.field input[type=password],.field input[type=color],.field select,.field textarea{
  width:100%;box-sizing:border-box;padding:11px 13px;border:1px solid var(--border);border-radius:9px;font-size:14px;font-family:Inter,sans-serif;color:var(--ink);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(20,88,166,.12)}
.field textarea{resize:vertical;min-height:90px}
.field input[type=color]{padding:4px;height:42px;cursor:pointer}
.field-help{font-size:12px;color:var(--muted);margin-top:6px}
.field-error{font-size:12px;color:#c0392b;margin-top:6px;font-weight:600}
.field-checkbox{display:flex;align-items:center;gap:10px;padding-top:11px}
.field-checkbox input{width:18px;height:18px;accent-color:var(--blue);margin:0}
.dash-form-actions{display:flex;align-items:center;gap:12px;padding-top:22px;margin-top:22px;border-top:1px solid var(--border)}
.dash-back-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);font-weight:600;margin-bottom:16px}
.dash-back-link:hover{color:var(--blue)}

/* Tabs / pills */
.dash-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.dash-tab{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:100px;font-size:14px;font-family:Montserrat,sans-serif;font-weight:600;text-decoration:none;background:#fff;color:var(--muted);border:1px solid var(--border)}
.dash-tab.active{background:var(--blue);color:#fff;border-color:var(--blue)}

/* Panel grid + chart for dashboard overview */
.dash-panel-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px;margin-bottom:24px}
.chart-bars{display:flex;align-items:flex-end;gap:10px;height:160px}
.chart-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end}
.chart-bar{width:100%;background:linear-gradient(180deg,var(--blue),#3b7cc9);border-radius:6px 6px 0 0;min-height:4px;transition:opacity .15s ease}
.chart-bar:hover{opacity:.85}
.chart-bar-label{font-size:11px;color:var(--muted)}
.timeline-item{display:flex;gap:14px;padding:14px 0;border-top:1px solid var(--border)}
.timeline-item:first-child{border-top:none;padding-top:0}
.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);flex-shrink:0;margin-top:6px}
.timeline-item.is-active .timeline-dot{background:var(--orange)}
.list-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--border)}
.list-row:first-child{border-top:none;padding-top:0}
.list-row-title{font-family:Montserrat,sans-serif;font-weight:600;font-size:14px;color:var(--ink)}
.list-row-meta{font-size:12px;color:var(--muted);margin-top:2px}

@media (max-width:1080px){
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dash-panel-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .dash-content{padding:18px}
  .dash-topbar{padding:14px 18px 14px 60px}
  .stat-grid{grid-template-columns:1fr}
  .dash-form-card{padding:20px}
  .dash-table tbody td,.dash-table thead th{padding:11px 14px}
}
