* {
      box-sizing: border-box;
    }

    html {
      min-height: 100%;
      background: #06101f;
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      min-height: 100vh;

      font-family:
        -apple-system,
        BlinkMacSystemFont,
        "SF Pro Display",
        "SF Pro Text",
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif;

      color: #ffffff;

      background:
        linear-gradient(
          180deg,
          rgba(4, 11, 25, 0.18) 0%,
          rgba(4, 11, 25, 0.42) 40%,
          rgba(3, 8, 20, 0.72) 100%
        ),
        url("/map-energy/assets/map-energy-docs-bg.PNG")
        center top / cover fixed no-repeat;
    }


    /* =========================================================
       PAGE
       ========================================================= */

    .page {
      width: 100%;
      max-width: 940px;

      margin: 0 auto;

      padding:
        max(32px, env(safe-area-inset-top))
        24px
        max(70px, env(safe-area-inset-bottom));
    }


    /* =========================================================
       HEADER
       ========================================================= */

    .brand-header {
      display: flex;
      align-items: center;
      justify-content: space-between;

      margin-bottom: 38px;
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 13px;
    }

    .brand-logo {
      width: 48px;
      height: 48px;

      object-fit: contain;

      filter:
        drop-shadow(
          0 5px 14px rgba(0, 0, 0, 0.25)
        );
    }

    .brand-text {
      display: flex;
      flex-direction: column;
    }

    .brand-name {
      color: #ffffff;

      font-size: 18px;
      line-height: 1.1;

      font-weight: 800;
      letter-spacing: -0.01em;
    }

    .brand-subtitle {
      margin-top: 4px;

      color: rgba(204, 215, 231, 0.62);

      font-size: 12px;
      font-weight: 600;
    }

    .support-pill {
      padding: 9px 15px;

      border-radius: 999px;

      color: rgba(224, 235, 249, 0.85);

      font-size: 12px;
      font-weight: 700;

      background: rgba(6, 18, 39, 0.58);

      border:
        1px solid rgba(116, 158, 218, 0.20);

      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
    }


    /* =========================================================
       DOCUMENTATION NAVIGATION
       ========================================================= */

    .docs-navigation {
      margin:
        -18px
        0
        18px;
    }

    .docs-home-link {
      display: inline-flex;
      align-items: center;

      gap: 8px;

      padding: 8px 12px;

      border-radius: 12px;

      color: rgba(196, 214, 239, 0.72);

      text-decoration: none;

      background:
        rgba(6, 18, 39, 0.42);

      border:
        1px solid rgba(116, 158, 218, 0.13);

      font-size: 12px;
      font-weight: 700;

      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);

      transition:
        color 0.15s ease,
        background 0.15s ease,
        border-color 0.15s ease;
    }

    .docs-home-link:hover {
      color: #ffffff;

      background:
        rgba(16, 45, 86, 0.66);

      border-color:
        rgba(90, 156, 248, 0.30);
    }

    .docs-home-arrow {
      color: #59a8ff;

      font-size: 15px;
      line-height: 1;
    }


    /* =========================================================
       HERO
       ========================================================= */

    .hero {
      position: relative;

      display: flex;
      align-items: center;

      min-height: 340px;

      padding: 40px 310px 40px 38px;

      overflow: hidden;

      border-radius: 30px;

      background:
        linear-gradient(
          135deg,
          rgba(14, 36, 72, 0.90),
          rgba(5, 16, 38, 0.88)
        );

      border:
        1px solid rgba(81, 144, 232, 0.25);

      box-shadow:
        0 30px 90px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);

      backdrop-filter: blur(22px);
      -webkit-backdrop-filter: blur(22px);
    }

    .hero::before {
      content: "";

      position: absolute;

      width: 350px;
      height: 350px;

      right: -80px;
      top: -100px;

      border-radius: 50%;

      background:
        radial-gradient(
          circle,
          rgba(29, 122, 255, 0.24),
          transparent 68%
        );

      pointer-events: none;
    }

    .hero-content {
      position: relative;
      z-index: 2;
    }

    .eyebrow {
      display: flex;
      align-items: center;
      gap: 8px;

      margin-bottom: 14px;

      color: #59a8ff;

      font-size: 12px;
      font-weight: 800;

      letter-spacing: 0.13em;
      text-transform: uppercase;
    }

    .eyebrow-dot {
      width: 7px;
      height: 7px;

      border-radius: 50%;

      background: #4294ff;

      box-shadow:
        0 0 12px rgba(66, 148, 255, 0.9);
    }

    h1 {
      max-width: 540px;

      margin: 0 0 17px;

      color: #ffffff;

      font-size: clamp(37px, 5.5vw, 53px);
      line-height: 1.03;

      letter-spacing: -0.04em;

      font-weight: 850;
    }

    .hero-description {
      max-width: 530px;

      margin: 0;

      color: rgba(221, 229, 241, 0.78);

      font-size: 16px;
      line-height: 1.65;
    }

    .mappy {
      position: absolute;

      z-index: 1;

      right: 8px;
      bottom: -28px;

      width: 310px;
      max-height: 330px;

      object-fit: contain;
      object-position: bottom center;

      filter:
        drop-shadow(
          0 20px 25px rgba(0, 0, 0, 0.30)
        );
    }


    /* =========================================================
       CONTENT
       ========================================================= */

    .content-card {
      margin-top: 22px;

      padding: 38px;

      border-radius: 30px;

      background:
        linear-gradient(
          145deg,
          rgba(12, 29, 55, 0.88),
          rgba(5, 13, 29, 0.90)
        );

      border:
        1px solid rgba(93, 145, 220, 0.19);

      box-shadow:
        0 28px 80px rgba(0, 0, 0, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);

      backdrop-filter: blur(22px);
      -webkit-backdrop-filter: blur(22px);
    }

    section + section {
      margin-top: 46px;
      padding-top: 42px;

      border-top:
        1px solid rgba(255, 255, 255, 0.075);
    }

    h2 {
      margin: 0 0 17px;

      color: #ffffff;

      font-size: 25px;
      line-height: 1.25;

      letter-spacing: -0.018em;

      font-weight: 780;
    }

    h3 {
      margin: 0 0 8px;

      color: #ffffff;

      font-size: 17px;
      font-weight: 750;
    }

    p {
      margin: 0 0 17px;

      color: rgba(226, 232, 242, 0.82);

      font-size: 16px;
      line-height: 1.72;
    }

    p:last-child {
      margin-bottom: 0;
    }

    strong {
      color: #ffffff;
      font-weight: 720;
    }


    /* =========================================================
       START STEPS
       ========================================================= */

    .setup-steps {
      margin-top: 25px;
    }

    .setup-step {
      display: flex;

      gap: 18px;

      padding: 21px 0;

      border-bottom:
        1px solid rgba(255, 255, 255, 0.065);
    }

    .setup-step:last-child {
      border-bottom: 0;
      padding-bottom: 0;
    }

    .step-number {
      display: flex;
      align-items: center;
      justify-content: center;

      width: 38px;
      height: 38px;

      flex: 0 0 auto;

      border-radius: 12px;

      color: #ffffff;

      background: #347ff0;

      box-shadow:
        0 8px 20px rgba(34, 106, 220, 0.22);

      font-size: 14px;
      font-weight: 850;
    }

    .step-content {
      padding-top: 3px;
    }

    .step-title {
      display: block;

      margin-bottom: 6px;

      color: #ffffff;

      font-size: 16px;
      font-weight: 760;
    }

    .step-content p {
      margin: 0;

      font-size: 14px;
      line-height: 1.62;
    }


    /* =========================================================
       FEATURE GRID
       ========================================================= */

    .feature-grid {
      display: grid;

      grid-template-columns: repeat(2, 1fr);

      gap: 14px;

      margin-top: 24px;
    }

    .feature-card {
      padding: 22px;

      border-radius: 19px;

      background:
        linear-gradient(
          145deg,
          rgba(7, 23, 49, 0.82),
          rgba(4, 13, 29, 0.76)
        );

      border:
        1px solid rgba(68, 137, 235, 0.20);
    }

    .feature-icon {
      display: flex;
      align-items: center;
      justify-content: center;

      width: 38px;
      height: 38px;

      margin-bottom: 14px;

      border-radius: 11px;

      color: #ffffff;

      background:
        rgba(47, 126, 242, 0.22);

      border:
        1px solid rgba(68, 145, 255, 0.30);

      font-size: 17px;
      font-weight: 750;
    }

    .feature-card p {
      margin: 0;

      color: rgba(208, 219, 235, 0.73);

      font-size: 14px;
      line-height: 1.55;
    }


    /* =========================================================
       TAB CARDS
       ========================================================= */

    .tab-grid {
      display: grid;

      grid-template-columns: repeat(2, 1fr);

      gap: 14px;

      margin-top: 24px;
    }

    .tab-card {
      position: relative;

      padding: 22px;

      overflow: hidden;

      border-radius: 19px;

      background:
        linear-gradient(
          145deg,
          rgba(7, 23, 49, 0.82),
          rgba(4, 13, 29, 0.76)
        );

      border:
        1px solid rgba(68, 137, 235, 0.20);
    }

    .tab-name {
      display: block;

      margin-bottom: 8px;

      color: #59a8ff;

      font-size: 11px;
      font-weight: 850;

      letter-spacing: 0.09em;
      text-transform: uppercase;
    }

    .tab-card h3 {
      margin-bottom: 7px;
    }

    .tab-card p {
      margin: 0;

      color: rgba(208, 219, 235, 0.73);

      font-size: 14px;
      line-height: 1.55;
    }


    /* =========================================================
       INFO BOXES
       ========================================================= */

    .info-box {
      position: relative;

      margin: 24px 0 0;

      padding: 22px 23px 22px 62px;

      border-radius: 20px;

      background:
        linear-gradient(
          135deg,
          rgba(20, 76, 162, 0.34),
          rgba(7, 32, 76, 0.42)
        );

      border:
        1px solid rgba(66, 145, 255, 0.35);
    }

    .info-icon {
      position: absolute;

      left: 21px;
      top: 22px;

      width: 27px;
      height: 27px;

      display: flex;
      align-items: center;
      justify-content: center;

      border-radius: 50%;

      color: #ffffff;

      background: #347ff0;

      font-size: 15px;
      font-weight: 850;
    }

    .info-title {
      display: block;

      margin-bottom: 5px;

      color: #ffffff;

      font-weight: 750;
    }

    .info-box p {
      margin: 0;

      font-size: 14px;
    }

    .success-box {
      position: relative;

      margin-top: 24px;

      padding: 22px 23px 22px 62px;

      border-radius: 20px;

      background:
        linear-gradient(
          135deg,
          rgba(22, 105, 78, 0.29),
          rgba(7, 47, 47, 0.38)
        );

      border:
        1px solid rgba(62, 211, 154, 0.27);
    }

    .success-icon {
      position: absolute;

      left: 21px;
      top: 22px;

      width: 27px;
      height: 27px;

      display: flex;
      align-items: center;
      justify-content: center;

      border-radius: 50%;

      color: #ffffff;

      background: #2ab77d;

      font-size: 14px;
      font-weight: 850;
    }

    .success-title {
      display: block;

      margin-bottom: 5px;

      color: #ffffff;

      font-weight: 750;
    }

    .success-box p {
      margin: 0;

      font-size: 14px;
    }


    /* =========================================================
       QUICK LINKS
       ========================================================= */

    .quick-links {
      display: grid;

      grid-template-columns: repeat(2, 1fr);

      gap: 13px;

      margin-top: 23px;
    }

    .quick-link {
      display: flex;
      align-items: center;
      justify-content: space-between;

      gap: 15px;

      padding: 18px;

      color: inherit;
      text-decoration: none;

      border-radius: 17px;

      background:
        rgba(6, 21, 45, 0.64);

      border:
        1px solid rgba(74, 139, 231, 0.18);

      transition:
        transform 0.15s ease,
        border-color 0.15s ease,
        background 0.15s ease;
    }

    .quick-link:hover {
      transform: translateY(-2px);

      background:
        rgba(11, 34, 70, 0.72);

      border-color:
        rgba(82, 155, 255, 0.38);
    }

    .quick-link-title {
      display: block;

      margin-bottom: 3px;

      color: #ffffff;

      font-size: 14px;
      font-weight: 750;
    }

    .quick-link-description {
      color: rgba(196, 210, 229, 0.65);

      font-size: 12px;
      line-height: 1.45;
    }

    .quick-link-arrow {
      flex: 0 0 auto;

      color: #59a8ff;

      font-size: 18px;
    }


    /* =========================================================
       MAPPY TIP
       ========================================================= */

    .mappy-tip {
      display: flex;
      align-items: center;

      gap: 18px;

      margin-top: 26px;

      padding: 18px 20px;

      border-radius: 20px;

      background:
        rgba(4, 13, 29, 0.58);

      border:
        1px solid rgba(255, 255, 255, 0.075);
    }

    .mappy-tip-image {
      width: 70px;
      height: 70px;

      flex: 0 0 auto;

      object-fit: contain;
    }

    .mappy-tip-title {
      display: block;

      margin-bottom: 4px;

      color: #ffffff;

      font-size: 14px;
      font-weight: 750;
    }

    .mappy-tip p {
      margin: 0;

      color: rgba(215, 224, 238, 0.74);

      font-size: 14px;
      line-height: 1.55;
    }


    /* =========================================================
       SUPPORT
       ========================================================= */

    .support-link {
      color: #66afff;
      text-decoration: none;
      font-weight: 700;
    }

    .support-link:hover {
      text-decoration: underline;
    }


    /* =========================================================
       FOOTER
       ========================================================= */

    .footer {
      display: flex;

      align-items: center;
      justify-content: center;

      gap: 9px;

      padding: 30px 5px 0;

      color: rgba(179, 192, 211, 0.48);

      font-size: 12px;
      font-weight: 600;
    }

    .footer-logo {
      width: 23px;
      height: 23px;

      object-fit: contain;

      opacity: 0.72;
    }


    /* =========================================================
       MOBILE
       ========================================================= */

    @media (max-width: 700px) {

      body {
        background-attachment: scroll;
      }

      .page {
        padding-left: 15px;
        padding-right: 15px;
      }

      .brand-header {
        margin-bottom: 25px;
      }

      .brand-logo {
        width: 42px;
        height: 42px;
      }

      .brand-name {
        font-size: 16px;
      }

      .support-pill {
        padding: 8px 12px;
        font-size: 11px;
      }

      .docs-navigation {
        margin:
          -9px
          0
          16px;
      }

      .docs-home-link {
        padding: 8px 11px;
        font-size: 11px;
      }

      .hero {
        display: block;

        min-height: 0;

        padding: 27px 23px 0;

        border-radius: 25px;
      }

      h1 {
        font-size: 37px;
      }

      .hero-description {
        font-size: 15px;
      }

      .mappy {
        position: relative;

        display: block;

        right: auto;
        bottom: auto;

        width: 230px;

        margin: 12px auto -18px;
      }

      .content-card {
        margin-top: 16px;

        padding: 27px 20px;

        border-radius: 25px;
      }

      section + section {
        margin-top: 36px;
        padding-top: 34px;
      }

      h2 {
        font-size: 22px;
      }

      p {
        font-size: 15px;
      }

      .feature-grid,
      .tab-grid,
      .quick-links {
        grid-template-columns: 1fr;
      }

      .mappy-tip {
        align-items: flex-start;

        padding: 16px;
      }

      .mappy-tip-image {
        width: 55px;
        height: 55px;
      }

    }


    @media (max-width: 390px) {

      .support-pill {
        display: none;
      }

      h1 {
        font-size: 33px;
      }

    }

  
/* Shared additions for the portal, history and supplier guides. */
.guide-nav { display:flex; flex-wrap:wrap; gap:10px 20px; margin:0 0 24px; }
.guide-nav a, .content-card a { color:#8ec2ff; text-underline-offset:4px; }
.guide-nav a:focus-visible, .content-card a:focus-visible { outline:2px solid #8ec2ff; outline-offset:5px; }
.guide-updated { font-size:13px; color:#a9b8ce; }
.content-card ol, .content-card ul { padding-left:24px; color:rgba(226,232,242,.82); line-height:1.75; }
.content-card li+li { margin-top:9px; }
.content-card code { overflow-wrap:anywhere; font-size:.9em; color:#c2dcff; }
.guide-table-wrap { overflow-x:auto; margin:20px 0; }
.guide-table { width:100%; border-collapse:collapse; color:rgba(226,232,242,.85); line-height:1.65; text-align:left; }
.guide-table th, .guide-table td { padding:14px 12px; border-bottom:1px solid rgba(255,255,255,.12); vertical-align:top; }
.guide-table th { color:#fff; }
.guide-table th:first-child { width:28%; }
.content-card section { scroll-margin-top:24px; }
.content-card h3:not(:first-child) { margin-top:24px; }
@media(max-width:600px) { .guide-table th,.guide-table td {padding:12px 8px;font-size:14px;} .guide-table th:first-child {width:32%;} }
