/* ============================================================
   TBANav — JOURNEY PLANNER
   FINAL HORIZONTAL FOUR-PART LAYOUT
   ============================================================ */

.frozen-journey-banner {
    width: 100%;
    min-height: 108px;
    box-sizing: border-box;

    background: #075097;
    color: #fff;

    border-radius: 9px;

    display: grid;

    /*
       ARTWORK | COPY | JOURNEY STEPS | CTA
    */
    grid-template-columns:
        150px
        minmax(300px, 1fr)
        minmax(400px, 1.15fr)
        165px;

    align-items: center;

    gap: 0;

    padding: 12px 14px;

    margin: 0 0 8px;

    overflow: hidden;
}


/* ============================================================
   ARTWORK
   ============================================================ */

.frozen-journey-banner .journey-art {
    width: 150px;
    height: 82px;

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

    margin: 0;
    padding: 0;

    box-sizing: border-box;
}

.frozen-journey-banner .journey-art img {
    display: block;

    width: 140px;
    height: auto;

    max-width: 100%;
    max-height: 82px;

    object-fit: contain;
}


/* ============================================================
   COPY
   ============================================================ */

.frozen-journey-banner .journey-copy {
    min-width: 0;

    padding: 0 14px 0 0;

    box-sizing: border-box;
}

.frozen-journey-banner .journey-copy h2 {
    margin: 0 0 2px;

    color: #fff;

    font-size: 22px;
    line-height: 1.05;

    font-weight: 900;
}

.frozen-journey-banner .journey-copy h3 {
    margin: 0 0 3px;

    color: #fff;

    font-size: 14px;
    line-height: 1.05;

    font-weight: 800;
}

.frozen-journey-banner .journey-copy p {
    margin: 0;

    max-width: 700px;

    color: #fff;

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

    font-weight: 400;
}


/* ============================================================
   JOURNEY STEPS
   ============================================================ */

.frozen-journey-banner .journey-steps {
    min-width: 0;
    height: 78px;

    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    align-items: stretch;

    border-left: 1px solid rgba(255,255,255,.55);

    box-sizing: border-box;
}


/* ============================================================
   INDIVIDUAL STEP
   ============================================================ */

.frozen-journey-banner .journey-steps > div {
    min-width: 0;

    display: flex;
    flex-direction: column;

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

    text-align: center;

    padding: 4px 6px;

    border-right: 1px solid rgba(255,255,255,.55);

    box-sizing: border-box;
}

.frozen-journey-banner .journey-steps > div:last-child {
    border-right: 0;
}


/* ============================================================
   STEP ICON
   ============================================================ */

.frozen-journey-banner .journey-steps img {
    display: block;

    width: 30px;
    height: 30px;

    margin: 0 0 5px;

    object-fit: contain;
}


/* ============================================================
   STEP TEXT
   ============================================================ */

.frozen-journey-banner .journey-steps span {
    display: block;

    color: #fff;

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

    font-weight: 800;

    text-align: center;
}


/* ============================================================
   ACTION
   ============================================================ */

.frozen-journey-banner .journey-action {
    min-width: 0;

    height: 78px;

    display: flex;
    flex-direction: column;

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

    padding: 0 0 0 10px;

    box-sizing: border-box;
}


/* ============================================================
   BUTTON
   ============================================================ */

.frozen-journey-banner .journey-button {
    width: 100%;
    max-width: 160px;

    min-height: 43px;

    box-sizing: border-box;

    background: #079658;
    color: #fff;

    border-radius: 7px;

    display: flex;

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

    gap: 8px;

    padding: 7px 10px;

    font-size: 12px;
    line-height: 1.05;

    font-weight: 900;

    text-align: center;

    box-shadow: 0 2px 5px rgba(0,0,0,.12);
}

.frozen-journey-banner .journey-button span {
    font-size: 19px;
    line-height: 1;
}


/* ============================================================
   ACTION SUBTEXT
   ============================================================ */

.frozen-journey-banner .journey-action small {
    display: block;

    margin-top: 5px;

    color: #fff;

    font-size: 8px;
    line-height: 1;

    font-weight: 700;

    white-space: nowrap;
}


/* ============================================================
   MEDIUM DESKTOP
   ============================================================ */

@media (max-width:1250px) and (min-width:1001px) {

    .frozen-journey-banner {
        grid-template-columns:
            125px
            minmax(260px, 1fr)
            minmax(350px, 1.1fr)
            145px;

        min-height: 105px;

        padding: 10px 12px;
    }

    .frozen-journey-banner .journey-art {
        width: 125px;
    }

    .frozen-journey-banner .journey-art img {
        width: 115px;
    }

    .frozen-journey-banner .journey-copy h2 {
        font-size: 20px;
    }

    .frozen-journey-banner .journey-copy h3 {
        font-size: 13px;
    }

    .frozen-journey-banner .journey-copy p {
        font-size: 9px;
    }

    .frozen-journey-banner .journey-steps img {
        width: 27px;
        height: 27px;
    }

    .frozen-journey-banner .journey-steps span {
        font-size: 8px;
    }

    .frozen-journey-banner .journey-button {
        max-width: 140px;
        font-size: 10px;
    }
}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width:1000px) and (min-width:801px) {

    .frozen-journey-banner {
        grid-template-columns:
            105px
            minmax(220px, 1fr)
            minmax(300px, 1.1fr)
            125px;

        min-height: 110px;

        padding: 9px;
    }

    .frozen-journey-banner .journey-art {
        width: 105px;
    }

    .frozen-journey-banner .journey-art img {
        width: 95px;
    }

    .frozen-journey-banner .journey-copy h2 {
        font-size: 18px;
    }

    .frozen-journey-banner .journey-copy h3 {
        font-size: 11px;
    }

    .frozen-journey-banner .journey-copy p {
        font-size: 8px;
    }

    .frozen-journey-banner .journey-steps img {
        width: 24px;
        height: 24px;
    }

    .frozen-journey-banner .journey-steps span {
        font-size: 7px;
    }

    .frozen-journey-banner .journey-button {
        max-width: 120px;
        font-size: 9px;
    }
}


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

@media (max-width:800px) {

    .frozen-journey-banner {
        grid-template-columns: 1fr;

        min-height: 0;

        gap: 10px;

        padding: 14px;
    }

    .frozen-journey-banner .journey-art {
        width: 100%;
        height: 65px;
    }

    .frozen-journey-banner .journey-art img {
        width: 110px;
    }

    .frozen-journey-banner .journey-copy {
        padding: 0;

        text-align: center;
    }

    .frozen-journey-banner .journey-steps {
        height: auto;

        border-left: 0;
    }

    .frozen-journey-banner .journey-action {
        height: auto;

        padding: 5px 0 0;
    }

    .frozen-journey-banner .journey-button {
        max-width: 220px;
    }
}

/* ============================================================
   TBANav — JOURNEY PLANNER PAGE
   AUTHORITATIVE REFACTORED WIZARD STYLES
   2026-09-22

   NOTE:
   - Lines above this section retain the frozen dashboard banner.
   - This section is the single source of truth for the 5-step
     Journey Planner wizard.
   - No absolute positioning is used for the TBA brand signature.
   ============================================================ */

/* PAGE ------------------------------------------------------ */
.journey-planner-page {
    width: 100%;
    box-sizing: border-box;
    padding: 14px 16px 30px;
}

.planner-page-header {
    margin: 0 0 14px;
}

.planner-page-header h1 {
    margin: 0 0 3px;
    color: #075097;
    font-size: 28px;
    line-height: 1.05;
    font-weight: 900;
}

.planner-page-header p {
    margin: 0;
    color: #334155;
    font-size: 13px;
    line-height: 1.4;
}

/* PROGRESS -------------------------------------------------- */
.planner-progress {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin: 0 0 16px;
    background: #075097;
    border-radius: 9px;
    overflow: hidden;
    box-sizing: border-box;
}

.planner-progress-step {
    min-width: 0;
    min-height: 72px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 14px;
    color: #fff;
    border-right: 1px solid rgba(255,255,255,.45);
    box-sizing: border-box;
    opacity: .72;
}

.planner-progress-step:last-child {
    border-right: 0;
}

.planner-progress-step.is-active {
    opacity: 1;
    background: rgba(255,255,255,.10);
}

.planner-step-number {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid rgba(255,255,255,.85);
    border-radius: 50%;
    font-size: 14px;
    font-weight: 900;
}

.planner-progress-step.is-active .planner-step-number {
    background: #fff;
    color: #075097;
}

.planner-progress-step strong {
    display: block;
    margin: 0 0 2px;
    font-size: 12px;
    line-height: 1.1;
    font-weight: 900;
}

.planner-progress-step small {
    display: block;
    color: rgba(255,255,255,.82);
    font-size: 9px;
    line-height: 1.15;
}

/* MAIN PANEL ------------------------------------------------ */
.planner-panel {
    width: 100%;
    max-width: 860px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid #d6dee8;
    border-radius: 12px;
    box-shadow: 0 3px 12px rgba(0,0,0,.06);
    overflow: hidden;
    box-sizing: border-box;
}

.planner-panel-heading {
    padding: 20px 22px 16px;
    border-bottom: 1px solid #e5eaf0;
    box-sizing: border-box;
}

/* Branded heading: text left, crest right. */
.planner-panel-heading-branded {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    align-items: center;
    gap: 28px;
    min-height: 165px;
    padding: 20px 22px;
}

.planner-stage-label {
    display: inline-block;
    margin: 0 0 7px;
    color: #075097;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .6px;
}

.planner-panel-heading h2 {
    margin: 0 0 5px;
    color: #075097;
    font-size: 22px;
    line-height: 1.1;
    font-weight: 900;
}

.planner-panel-heading p {
    margin: 0;
    color: #475569;
    font-size: 13px;
    line-height: 1.4;
}

/* TBA BRAND SIGNATURE -------------------------------------- */
.planner-brand-signature,
.planner-panel-heading-branded .planner-brand-signature {
    position: static;
    width: 220px;
    min-width: 0;
    min-height: 125px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 8px 0 4px;
    text-align: center;
    box-sizing: border-box;
    overflow: visible;
}

.planner-brand-signature img,
.planner-panel-heading-branded .planner-brand-signature img {
    position: static;
    display: block;
    width: 100px;
    height: 100px;
    max-width: 100px;
    max-height: 100px;
    margin: 0 auto 12px;
    padding: 0;
    object-fit: contain;
}

.planner-brand-signature p,
.planner-panel-heading-branded .planner-brand-signature p {
    width: 100%;
    max-width: 210px;
    margin: 0;
    padding: 0;
    color: #075097;
    text-align: center;
    font-size: 9px;
    line-height: 1.45;
    font-weight: 800;
    white-space: normal;
}

.planner-brand-signature p span,
.planner-panel-heading-branded .planner-brand-signature p span {
    display: block;
    margin-top: 2px;
    color: #075097;
    font-weight: 800;
}

/* FORM ------------------------------------------------------ */
.planner-form {
    padding: 22px;
}

.planner-field {
    max-width: 420px;
}

.planner-field label {
    display: block;
    margin: 0 0 7px;
    color: #163b65;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 800;
}

.planner-field input,
.planner-field select {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    padding: 9px 11px;
    background: #fff;
    color: #172033;
    border: 1px solid #aebdcd;
    border-radius: 7px;
    font: inherit;
    font-size: 14px;
}

.planner-field input:focus,
.planner-field select:focus {
    outline: 2px solid rgba(7,80,151,.18);
    border-color: #075097;
}

.planner-field small {
    display: block;
    margin-top: 6px;
    color: #64748b;
    font-size: 10px;
    line-height: 1.35;
}

/* STEP 1: DATE + BRAND ------------------------------------- */
.planner-date-row {
    display: grid;
    grid-template-columns: minmax(0, 420px) minmax(150px, 1fr);
    align-items: center;
    gap: 40px;
}

.planner-date-row .planner-field {
    max-width: none;
}

.planner-tba-logo {
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.planner-tba-logo img {
    display: block;
    width: 110px;
    height: 110px;
    object-fit: contain;
}

/* STEP 2: VESSEL IDENTITY ---------------------------------- */
.planner-vessel-top {
    display: block;
    position: static;
}

.planner-vessel-top > .planner-brand-signature {
    position: static;
    width: 100%;
    margin: 0 auto 18px;
}

.planner-vessel-top .planner-vessel-grid,
.planner-vessel-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
    width: 100%;
    margin: 0;
    padding-bottom: 17px;
    align-items: stretch;
}

.planner-vessel-grid::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: #d6dee8;
}

.planner-identity-field {
    width: 100%;
    display: flex;
    flex-direction: column;
    padding-bottom: 0;
    border-bottom: 0;
}

.planner-identity-field input,
.planner-identity-field select {
    width: 100%;
}

.planner-identity-field small {
    margin-top: 6px;
    margin-bottom: 0;
}

/* VESSEL SECTIONS ------------------------------------------ */
.planner-vessel-section {
    margin: 0;
    padding: 14px 0 17px;
    border-top: 0;
    border-bottom: 1px solid #d6dee8;
}

.planner-vessel-section h3 {
    margin: 0 0 1px;
    color: #075097;
    font-size: 17px;
    line-height: 1.15;
    font-weight: 900;
}

.planner-vessel-section > p {
    margin: 0 0 12px;
    color: #172033;
    font-size: 11px;
    line-height: 1.25;
}

.planner-vessel-measurements {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px;
}

.planner-vessel-speeds {
    width: 66%;
    max-width: none;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.planner-measurement-field {
    width: 100%;
    padding-bottom: 0;
    border-bottom: 0;
}

.planner-measurement-field label {
    display: block;
    margin-bottom: 6px;
}

.planner-measurement-field input {
    width: 100%;
}

.planner-unit-label {
    display: block;
    margin-top: 6px;
    color: #172033;
    font-size: 9px;
    line-height: 1;
    font-weight: 700;
}

/* INFORMATION ---------------------------------------------- */
.planner-information {
    width: 100%;
    margin: 15px 0 0;
    padding: 13px 15px;
    background: #f3f8fc;
    border-left: 4px solid #075097;
    border-radius: 6px;
    box-sizing: border-box;
}

.planner-information strong {
    display: block;
    margin: 0 0 4px;
    color: #075097;
    font-size: 12px;
    font-weight: 900;
}

.planner-information p {
    margin: 0;
    color: #334155;
    font-size: 11px;
    line-height: 1.45;
}

/* ACTIONS --------------------------------------------------- */
.planner-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 22px;
}

.planner-actions-paired {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
}

.planner-navigation-button,
.planner-continue-button,
.planner-actions-paired .planner-navigation-button {
    min-height: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 0 18px;
    border: 0;
    border-radius: 6px;
    box-sizing: border-box;
    cursor: pointer;
    font-family: inherit;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    text-decoration: none;
    white-space: nowrap;
}

.planner-continue-button,
.planner-actions-paired .planner-continue-button {
    min-width: 240px;
    background: #079658;
    color: #fff;
}

.planner-continue-button span {
    font-size: 18px;
    line-height: 1;
}

.planner-actions-paired .planner-back-button {
    width: 116px;
    min-width: 116px;
    background: #596675;
    color: #fff;
}

.planner-actions-paired .planner-back-button:hover {
    background: #46515d;
    color: #fff;
}

/* TABLET ---------------------------------------------------- */
@media (max-width: 800px) {
    .journey-planner-page {
        padding: 12px 10px 24px;
    }

    .planner-page-header h1 {
        font-size: 24px;
    }

    .planner-progress {
        grid-template-columns: 1fr;
    }

    .planner-progress-step {
        min-height: 58px;
        padding: 9px 10px;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.45);
    }

    .planner-progress-step:last-child {
        border-bottom: 0;
    }

    .planner-panel {
        max-width: 100%;
    }

    .planner-panel-heading,
    .planner-form {
        padding: 17px;
    }

    .planner-panel-heading-branded {
        grid-template-columns: minmax(0, 1fr) 175px;
        gap: 18px;
        min-height: 145px;
    }

    .planner-brand-signature,
    .planner-panel-heading-branded .planner-brand-signature {
        width: 175px;
        min-height: 110px;
    }

    .planner-brand-signature img,
    .planner-panel-heading-branded .planner-brand-signature img {
        width: 82px;
        height: 82px;
        max-width: 82px;
        max-height: 82px;
        margin-bottom: 9px;
    }

    .planner-brand-signature p,
    .planner-panel-heading-branded .planner-brand-signature p {
        max-width: 170px;
        font-size: 8px;
    }

    .planner-field {
        max-width: none;
    }

    .planner-date-row {
        grid-template-columns: minmax(0, 1fr) 120px;
        gap: 20px;
    }

    .planner-tba-logo {
        min-height: 90px;
    }

    .planner-tba-logo img {
        width: 85px;
        height: 85px;
    }

    .planner-vessel-top > .planner-brand-signature {
        width: 100%;
        margin: 0 auto 16px;
    }

    .planner-vessel-top .planner-vessel-grid,
    .planner-vessel-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    .planner-vessel-measurements {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 18px;
    }

    .planner-vessel-speeds {
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* MOBILE ---------------------------------------------------- */
@media (max-width: 480px) {
    .planner-progress {
        grid-template-columns: 1fr;
    }

    .planner-progress-step {
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.45);
    }

    .planner-progress-step:nth-child(3) {
        border-bottom: 1px solid rgba(255,255,255,.45);
    }

    .planner-progress-step:last-child {
        border-bottom: 0;
    }

    .planner-panel-heading-branded {
        grid-template-columns: 1fr;
        gap: 14px;
        min-height: 0;
    }

    .planner-brand-signature,
    .planner-panel-heading-branded .planner-brand-signature,
    .planner-vessel-top > .planner-brand-signature {
        width: 100%;
        min-height: 0;
        margin: 12px auto 4px;
        padding: 0;
    }

    .planner-brand-signature img,
    .planner-panel-heading-branded .planner-brand-signature img,
    .planner-vessel-top > .planner-brand-signature img {
        width: 75px;
        height: 75px;
        max-width: 75px;
        max-height: 75px;
    }

    .planner-date-row {
        display: block;
    }

    .planner-tba-logo {
        display: none;
    }

    .planner-vessel-top .planner-vessel-grid,
    .planner-vessel-grid,
    .planner-vessel-measurements,
    .planner-vessel-speeds {
        grid-template-columns: 1fr;
        width: 100%;
    }

    .planner-actions,
    .planner-actions-paired {
        display: grid;
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .planner-actions-paired .planner-back-button,
    .planner-actions-paired .planner-continue-button,
    .planner-continue-button {
        width: 100%;
        min-width: 0;
    }
}

/* ============================================================
   STEP 4 — CHOOSE YOUR ASSESSMENT
   ============================================================ */

.planner-tier-intro {
    margin-bottom: 18px;
    padding: 16px 18px;
    border: 1px solid #dbe4ed;
    border-radius: 12px;
    background: #f8fafc;
}

.planner-tier-intro strong {
    display: block;
    color: #173b67;
    font-size: 18px;
}

.planner-tier-intro p {
    margin: 6px 0 0;
    color: #5e6b78;
    line-height: 1.5;
}

.planner-tier-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.planner-tier-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 20px;
    border: 2px solid #dbe4ed;
    border-radius: 14px;
    background: #fff;
    cursor: pointer;
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        transform 0.15s ease;
}

.planner-tier-card:hover {
    border-color: #9bbbdc;
    transform: translateY(-1px);
}

.planner-tier-card:has(input:checked) {
    border-color: #0756a6;
    box-shadow: 0 0 0 3px rgba(7, 86, 166, 0.08);
}

.planner-tier-card.planner-tier-tba:has(input:checked) {
    border-color: #079658;
    box-shadow: 0 0 0 3px rgba(7, 150, 88, 0.08);
}

.planner-tier-card > input {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 18px;
    height: 18px;
    accent-color: #0756a6;
}

.planner-tier-badge {
    align-self: flex-start;
    margin: 0 30px 14px 0;
    padding: 6px 9px;
    border-radius: 999px;
    background: #eaf3fd;
    color: #0756a6;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.planner-tier-badge.is-day {
    background: #fff4df;
    color: #9a5b00;
}

.planner-tier-badge.is-tba {
    background: #e9f7f0;
    color: #067c4a;
}

.planner-tier-name {
    display: block;
    color: #173b67;
    font-size: 22px;
    font-weight: 800;
}

.planner-tier-subtitle {
    display: block;
    margin-top: 3px;
    color: #0756a6;
    font-size: 13px;
    font-weight: 700;
}

.planner-tier-description {
    display: block;
    margin: 14px 0;
    color: #5e6b78;
    line-height: 1.5;
}

.planner-tier-features {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin-bottom: 20px;
    color: #4f5d6a;
    font-size: 13px;
    line-height: 1.4;
}

.planner-tier-features > span {
    position: relative;
    padding-left: 19px;
}

.planner-tier-features > span::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: #079658;
    font-weight: 800;
}

.planner-tier-select {
    display: block;
    margin-top: auto;
    padding: 11px 12px;
    border-radius: 9px;
    background: #0756a6;
    color: #fff;
    text-align: center;
    font-size: 12px;
    font-weight: 800;
}

.planner-tier-tba .planner-tier-select {
    background: #079658;
}

/* STEP 4 RESPONSIVE ----------------------------------------- */
@media (max-width: 900px) {
    .planner-tier-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .planner-tier-card {
        padding: 17px;
    }

    .planner-tier-name {
        font-size: 20px;
    }
}

/* ============================================================
   JOURNEY PLANNER — FIVE-STAGE HEADER BRANDING
   Logo above strapline
   ============================================================ */

.planner-step-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px;
    align-items: center;
    gap: 24px;
}

.planner-step-header-copy {
    min-width: 0;
}

.planner-step-brand {
    width: 190px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    justify-self: end;
    gap: 7px;
    text-align: center;
    box-sizing: border-box;
}

.planner-step-brand img {
    display: block;
    width: 64px;
    height: 64px;
    max-width: 64px;
    max-height: 64px;
    margin: 0 auto;
    object-fit: contain;
    flex: 0 0 auto;
}

.planner-step-brand p {
    width: 100%;
    max-width: 190px;
    margin: 0;
    color: #075097;
    font-size: 9px;
    line-height: 1.35;
    font-weight: 800;
    text-align: center;
}

.planner-step-brand p span {
    display: block;
    margin-top: 1px;
}


/* ============================================================
   STEP 2 — RETURNING TBA SKIPPER
   ============================================================ */

.planner-returning-skipper {
    width: calc(100% - 44px);
    margin: 18px 22px 0;
    padding: 15px 17px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    background: #f3f8fc;
    border: 1px solid #cbd9e7;
    border-left: 4px solid #075097;
    border-radius: 8px;
    box-sizing: border-box;
}

.planner-returning-skipper-copy {
    min-width: 0;
}

.planner-returning-skipper-kicker {
    display: block;
    margin: 0 0 4px;
    color: #075097;
    font-size: 9px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .55px;
}

.planner-returning-skipper-copy strong {
    display: block;
    margin: 0 0 4px;
    color: #163b65;
    font-size: 15px;
    line-height: 1.2;
    font-weight: 900;
}

.planner-returning-skipper-copy p {
    max-width: 560px;
    margin: 0;
    color: #475569;
    font-size: 11px;
    line-height: 1.45;
}

.planner-skipper-login-button {
    min-width: 205px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 0 16px;
    background: #075097;
    color: #fff;
    border: 0;
    border-radius: 7px;
    box-sizing: border-box;
    font-family: inherit;
    font-size: 10px;
    line-height: 1;
    font-weight: 900;
    white-space: nowrap;
}

.planner-skipper-login-button span {
    font-size: 17px;
    line-height: 1;
}

.planner-skipper-login-button:disabled {
    opacity: .58;
    cursor: not-allowed;
}


/* ============================================================
   TABLET
   ============================================================ */

@media screen and (max-width: 800px) {

    .planner-step-header {
        grid-template-columns: minmax(0, 1fr) 145px;
        gap: 16px;
    }

    .planner-step-brand {
        width: 145px;
    }

    .planner-step-brand img {
        width: 56px;
        height: 56px;
        max-width: 56px;
        max-height: 56px;
    }

    .planner-step-brand p {
        max-width: 145px;
        font-size: 8px;
    }

    .planner-returning-skipper {
        width: calc(100% - 34px);
        margin: 16px 17px 0;
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .planner-skipper-login-button {
        width: 100%;
        min-width: 0;
    }
}


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

@media screen and (max-width: 480px) {

    .planner-step-header {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .planner-step-brand {
        width: 100%;
        justify-self: stretch;
        padding-top: 3px;
    }

    .planner-step-brand img {
        width: 52px;
        height: 52px;
        max-width: 52px;
        max-height: 52px;
    }

    .planner-step-brand p {
        max-width: 210px;
        font-size: 8px;
    }

    .planner-returning-skipper {
        width: calc(100% - 34px);
        margin: 14px 17px 0;
        padding: 14px;
    }
}

/* ============================================================
   STEP 5 — GET YOUR ASSESSMENT
   PRESENTATION LAYER
   ============================================================ */

.planner-assessment-panel {
    max-width: 1040px;
}


/* ============================================================
   STEP 5 — PLANNED PASSAGE
   ============================================================ */

.planner-review-section {
    margin: 0 0 28px;
    padding: 20px;

    background: #f8fafc;

    border: 1px solid #dbe4ed;
    border-radius: 12px;

    box-sizing: border-box;
}

.planner-review-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;

    margin: 0 0 18px;
    padding: 0 0 14px;

    border-bottom: 1px solid #dbe4ed;
}

.planner-review-kicker {
    display: block;

    margin: 0 0 5px;

    color: #075097;

    font-size: 9px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .6px;
}

.planner-review-heading h3,
.planner-section-heading h3,
.planner-assessment-result-heading h3 {
    margin: 0;

    color: #163b65;

    font-size: 20px;
    line-height: 1.2;
    font-weight: 900;
}

.planner-review-date {
    flex: 0 0 auto;

    padding: 7px 10px;

    background: #eaf3fd;
    color: #075097;

    border-radius: 7px;

    font-size: 11px;
    line-height: 1.2;
    font-weight: 800;

    white-space: nowrap;
}

.planner-review-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 12px;
}

.planner-review-card {
    min-width: 0;

    padding: 13px 14px;

    background: #fff;

    border: 1px solid #dbe4ed;
    border-radius: 8px;

    box-sizing: border-box;
}

.planner-review-card > span {
    display: block;

    margin: 0 0 5px;

    color: #64748b;

    font-size: 9px;
    line-height: 1.15;
    font-weight: 800;
    letter-spacing: .25px;
    text-transform: uppercase;
}

.planner-review-card strong {
    display: block;

    color: #172033;

    font-size: 13px;
    line-height: 1.35;
    font-weight: 800;
}

.planner-review-card small {
    display: block;

    margin-top: 4px;

    color: #64748b;

    font-size: 10px;
    line-height: 1.35;
}


/* ============================================================
   STEP 5 — ASSESSMENT EVIDENCE INTRODUCTION
   ============================================================ */

.planner-evidence-section {
    margin: 0 0 28px;
}

.planner-section-heading {
    margin: 0 0 16px;
}

.planner-section-heading p {
    max-width: 760px;

    margin: 7px 0 0;

    color: #475569;

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


/* ============================================================
   STEP 5 — EVIDENCE GRID
   ============================================================ */

.planner-evidence-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 16px;
}

.planner-evidence-card {
    min-width: 0;

    display: flex;
    flex-direction: column;

    padding: 18px;

    background: #fff;

    border: 1px solid #d6dee8;
    border-top: 4px solid #075097;
    border-radius: 10px;

    box-shadow: 0 2px 7px rgba(0, 0, 0, .04);

    box-sizing: border-box;
}

.planner-evidence-card-tidal {
    border-top-color: #0b6fa4;
}

.planner-evidence-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 14px;

    margin: 0 0 14px;
    padding: 0 0 12px;

    border-bottom: 1px solid #e5eaf0;
}

.planner-evidence-label {
    display: block;

    margin: 0 0 4px;

    color: #075097;

    font-size: 9px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .55px;
}

.planner-evidence-card h4 {
    margin: 0;

    color: #163b65;

    font-size: 16px;
    line-height: 1.25;
    font-weight: 900;
}

.planner-evidence-state {
    flex: 0 0 auto;

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

    min-height: 26px;

    padding: 0 9px;

    border-radius: 999px;

    font-size: 9px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .3px;

    white-space: nowrap;
}

.planner-evidence-state.is-pending {
    background: #fff4df;
    color: #925500;
}

.planner-evidence-state.is-awaiting {
    background: #eaf3fd;
    color: #075097;
}

.planner-evidence-card > p {
    margin: 0 0 16px;

    color: #475569;

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

.planner-evidence-source,
.planner-tide-station {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 12px;

    margin-top: auto;
    padding-top: 12px;

    border-top: 1px solid #e5eaf0;
}

.planner-evidence-source span,
.planner-tide-station span {
    color: #64748b;

    font-size: 9px;
    line-height: 1.2;
    font-weight: 800;
    text-transform: uppercase;
}

.planner-evidence-source strong,
.planner-tide-station strong {
    color: #163b65;

    font-size: 11px;
    line-height: 1.3;
    font-weight: 900;

    text-align: right;
}


/* ============================================================
   STEP 5 — TIDAL PLACEHOLDER / EVENTS
   ============================================================ */

.planner-tide-station {
    margin: 0 0 12px;
    padding: 10px 0 0;
}

.planner-evidence-placeholder {
    margin: 2px 0 14px;
    padding: 12px 13px;

    background: #f8fafc;

    border: 1px dashed #b9c8d8;
    border-radius: 7px;
}

.planner-evidence-placeholder strong {
    display: block;

    margin: 0 0 4px;

    color: #163b65;

    font-size: 11px;
    line-height: 1.3;
    font-weight: 900;
}

.planner-evidence-placeholder span {
    display: block;

    color: #64748b;

    font-size: 10px;
    line-height: 1.5;
}

.planner-tide-events {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 10px;

    margin: 2px 0 14px;
}

.planner-tide-event {
    padding: 11px;

    background: #f8fafc;

    border: 1px solid #dbe4ed;
    border-radius: 7px;
}

.planner-tide-event span,
.planner-tide-event strong,
.planner-tide-event small {
    display: block;
}

.planner-tide-event span {
    margin-bottom: 4px;

    color: #64748b;

    font-size: 8px;
    font-weight: 900;
}

.planner-tide-event strong {
    color: #163b65;

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

.planner-tide-event small {
    margin-top: 3px;

    color: #64748b;

    font-size: 9px;
}


/* ============================================================
   STEP 5 — TBANAV ASSESSMENT RESULT
   ============================================================ */

.planner-assessment-result {
    margin: 0 0 6px;
    padding: 20px;

    background: #f8fafc;

    border: 1px solid #cbd9e7;
    border-left: 5px solid #075097;
    border-radius: 10px;

    box-sizing: border-box;
}

.planner-assessment-result-heading {
    margin: 0 0 12px;
}

.planner-assessment-result > p {
    max-width: 820px;

    margin: 0 0 16px;

    color: #475569;

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

.planner-assessment-statuses {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    gap: 8px;

    margin: 4px 0 16px;
}

.planner-status-key {
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 38px;

    padding: 7px 9px;

    border-radius: 7px;

    font-size: 9px;
    line-height: 1.25;
    font-weight: 900;

    text-align: center;
}

.planner-status-key.status-brown {
    background: #f2e7dc;
    color: #7a4212;
    border: 1px solid #caa47f;
}

.planner-status-key.status-green {
    background: #e8f6ef;
    color: #067344;
    border: 1px solid #9bcdb6;
}

.planner-status-key.status-amber {
    background: #fff4df;
    color: #925500;
    border: 1px solid #e3bd73;
}

.planner-status-key.status-red {
    background: #fcebec;
    color: #a01f28;
    border: 1px solid #e1a1a6;
}

.planner-lockkeeper-advice {
    margin: 0 !important;
    padding: 11px 13px;

    background: #fff;

    border: 1px solid #dbe4ed;
    border-radius: 7px;

    color: #163b65 !important;

    font-weight: 900;
}


/* ============================================================
   STEP 5 — TABLET
   ============================================================ */

@media screen and (max-width: 800px) {

    .planner-review-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .planner-evidence-grid {
        grid-template-columns: 1fr;
    }

    .planner-assessment-statuses {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}


/* ============================================================
   STEP 5 — MOBILE
   ============================================================ */

@media screen and (max-width: 480px) {

    .planner-review-section,
    .planner-assessment-result {
        padding: 15px;
    }

    .planner-review-heading {
        display: block;
    }

    .planner-review-date {
        display: inline-block;

        margin-top: 10px;
    }

    .planner-review-grid {
        grid-template-columns: 1fr;
    }

    .planner-evidence-card {
        padding: 15px;
    }

    .planner-evidence-card-heading {
        display: block;
    }

    .planner-evidence-state {
        margin-top: 9px;
    }

    .planner-evidence-source,
    .planner-tide-station {
        align-items: flex-start;
    }

    .planner-assessment-statuses,
    .planner-tide-events {
        grid-template-columns: 1fr;
    }

}


/* ============================================================
   STEP 5 — PASSAGE TIMING
   ============================================================ */

.planner-passage-timing {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0 0;
}

.planner-passage-timing-card {
    min-width: 0;
    padding: 14px;
    background: #fff;
    border: 1px solid #dbe4ed;
    border-top: 3px solid #075097;
    border-radius: 8px;
    box-sizing: border-box;
}

.planner-passage-timing-label {
    display: block;
    min-height: 24px;
    margin: 0 0 7px;
    color: #64748b;
    font-size: 8px;
    line-height: 1.35;
    font-weight: 900;
    letter-spacing: .35px;
}

.planner-passage-timing-card strong {
    display: block;
    margin: 0 0 6px;
    color: #163b65;
    font-size: 13px;
    line-height: 1.3;
    font-weight: 900;
}

.planner-passage-timing-card small {
    display: block;
    color: #64748b;
    font-size: 9px;
    line-height: 1.45;
}

.planner-passage-timing-card .planner-passage-upgrade {
    display: inline-block;
    padding: 4px 7px;
    background: #eaf3fd;
    color: #075097;
    border-radius: 5px;
    font-size: 10px;
}

@media screen and (max-width: 800px) {
    .planner-passage-timing {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 480px) {
    .planner-passage-timing {
        grid-template-columns: 1fr;
    }
    .planner-passage-timing-label {
        min-height: 0;
    }
}
/* STEP 4 — Align donation badges with selection buttons */

.planner-tier-card .planner-tier-features {
    margin-bottom: 16px;
}

.planner-tier-card .planner-tier-badge {
    margin-top: auto;
    margin-bottom: 8px;
}

.planner-tier-card .planner-tier-select {
    margin-top: 0;
}
/* STEP 4 — Selection button alignment */

.planner-tier-select {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    text-align: left;
}

.planner-tier-select input[type="radio"] {
    flex: 0 0 auto;
    margin: 0 0 0 auto;
}