.customer-app {
    --customer-carbon: #101311;
    --customer-graphite: #343a40;
    --customer-silver: #aab2bd;
    --customer-frost: #f4f7fa;
    --customer-blue: #3b82f6;
    color: var(--customer-carbon);
    min-height: 100vh;
    position: relative;
    isolation: isolate;
}

    .customer-app * {
        box-sizing: border-box;
    }

    .customer-app button, .customer-app input, .customer-app select {
        font: inherit;
    }

    .customer-app button {
        cursor: pointer;
    }

        .customer-app button:disabled {
            cursor: not-allowed;
            opacity: .54;
        }

    .customer-app :is(a, button, input, select):focus-visible {
        outline: 3px solid var(--customer-blue);
        outline-offset: 3px;
    }

.customer-layout {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 28px;
    max-width: 1640px;
    min-height: 100vh;
    margin: auto;
    padding: 22px;
}

.customer-sidebar {
    align-self: start;
    position: sticky;
    top: 22px;
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 44px);
    padding: 23px 15px;
    border: 1px solid rgba(255,255,255,.9);
    border-radius: 8px;
    background: rgba(255,255,255,.76);
    box-shadow: 0 18px 42px rgba(16,19,17,.09), inset 0 1px 0 #fff;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.customer-brand {
    display: inline-block;
    align-self: flex-start;
    margin: 0 14px 28px;
    color: var(--customer-carbon);
    font: 700 28px/1.2 Arial, sans-serif;
    text-decoration: none;
}

.customer-nav {
    display: grid;
    gap: 5px;
}

    .customer-nav a {
        display: block;
        border: 1px solid transparent;
        border-radius: 6px;
        padding: 11px 13px;
        color: var(--customer-graphite);
        text-decoration: none;
        transition: background-color 0.15s ease, color 0.15s ease;
    }

        .customer-nav a:hover, .customer-nav a.active {
            color: var(--customer-carbon);
            border-color: rgba(59,130,246,.19);
            background: rgba(59,130,246,.12);
            box-shadow: inset 3px 0 0 var(--customer-blue), inset 0 1px 0 #fff;
        }

        .customer-nav a.active {
            font-weight: 700;
        }

.customer-signout {
    margin-top: auto;
    border: 1px solid rgba(52,58,64,.15);
    border-radius: 6px;
    background: rgba(255,255,255,.8);
    padding: 10px 12px;
    color: var(--customer-carbon);
}

    .customer-signout:hover {
        background: #fff;
        box-shadow: 0 0 0 2px rgba(59,130,246,.13);
    }

.customer-main {
    min-width: 0;
    padding: 10px 3px 38px;
}

.customer-topbar {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    border-bottom: 1px solid rgba(52,58,64,.15);
    padding: 7px 0 20px;
    margin-bottom: 24px;
}

.customer-eyebrow {
    margin: 0 0 3px;
    color: #68717b;
    font-size: 13px;
}

.customer-topbar h1 {
    margin: 0;
    font-size: 25px;
    line-height: 1.35;
}

.customer-user {
    color: var(--customer-graphite);
    font-size: 14px;
    white-space: nowrap;
}

.customer-content {
    display: grid;
    gap: 24px;
}

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

.customer-metric {
    display: grid;
    align-content: center;
    gap: 11px;
    min-height: 123px;
    padding: 20px;
    border: 1px solid rgba(255,255,255,.94);
    border-radius: 8px;
    background: rgba(255,255,255,.72);
    box-shadow: 0 13px 28px rgba(16,19,17,.07), 0 0 0 1px rgba(52,58,64,.06), inset 0 1px 0 #fff;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    transition: background-color 0.15s ease;
}

    .customer-metric:hover {
        background: rgba(255,255,255,.92);
        box-shadow: 0 15px 35px rgba(16,19,17,.1), 0 0 0 1px rgba(59,130,246,.17);
    }

    .customer-metric span {
        color: #5c6570;
        font-size: 13px;
    }

    .customer-metric strong {
        font-size: 21px;
        line-height: 1.4;
        overflow-wrap: anywhere;
    }

.customer-price-unavailable strong {
    color: #68717b;
    font-size: 17px;
}

.customer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.customer-app .customer-primary, .customer-app .customer-secondary {
    border: 1px solid transparent;
    border-radius: 6px;
    min-height: 43px;
    padding: 9px 18px;
    font-weight: 700;
    transition: background-color 0.15s ease, transform 0.15s ease;
}

.customer-app .customer-primary {
    background: var(--customer-carbon);
    color: #fff;
}

.customer-app .customer-secondary {
    background: rgba(255,255,255,.74);
    color: var(--customer-carbon);
    border-color: rgba(52,58,64,.19);
}

.customer-app .customer-primary:not(:disabled):hover {
    background: #174b98;
    box-shadow: 0 8px 20px rgba(59,130,246,.22);
    transform: translateY(-1px);
}

.customer-app .customer-secondary:hover {
    background: #fff;
    box-shadow: 0 0 0 2px rgba(59,130,246,.18), inset 0 1px 0 #fff;
}

.customer-section {
    min-width: 0;
    border-top: 1px solid rgba(52,58,64,.14);
    padding-top: 19px;
}

    .customer-section h2 {
        margin: 0 0 15px;
        font-size: 17px;
    }

.customer-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

    .customer-section-head a {
        color: #1658b9;
        text-decoration: none;
        font-size: 13px;
    }

        .customer-section-head a:hover {
            text-decoration: underline;
        }

.customer-alert, .customer-state, .customer-quote-state {
    padding: 17px 20px;
    border: 1px solid rgba(59,130,246,.22);
    border-radius: 6px;
    background: rgba(255,255,255,.8);
    box-shadow: inset 0 1px 0 #fff;
}

.customer-error {
    border-color: rgba(196,61,75,.28);
    color: #9d2432;
}

.customer-state {
    min-height: 110px;
}

    .customer-state p {
        margin: 0 0 14px;
    }

    .customer-state button {
        border: 1px solid rgba(52,58,64,.2);
        border-radius: 5px;
        background: #fff;
        padding: 7px 12px;
    }

.customer-empty {
    color: #68717b;
    padding: 22px 0;
}

.customer-table-wrap {
    min-width: 0;
    width: 100%;
    overflow-x: auto;
    border: 1px solid rgba(52,58,64,.12);
    border-radius: 6px;
    background: rgba(255,255,255,.65);
}

.customer-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
    font-size: 13px;
}

    .customer-table th, .customer-table td {
        padding: 13px 14px;
        text-align: right;
        border-bottom: 1px solid rgba(52,58,64,.1);
        white-space: nowrap;
    }

    .customer-table th {
        color: #59636d;
        font-weight: 600;
        background: rgba(244,247,250,.68);
    }

    .customer-table tr:last-child td {
        border-bottom: 0;
    }

    .customer-table tbody tr:hover {
        background: rgba(59,130,246,.08);
    }

    .customer-table td small {
        display: block;
        max-width: 140px;
        overflow: hidden;
        text-overflow: ellipsis;
        color: #68717b;
        direction: ltr;
        text-align: right;
    }

.customer-status {
    display: inline-block;
    border-radius: 4px;
    padding: 4px 8px;
    background: rgba(52,58,64,.08);
    color: var(--customer-graphite);
    white-space: nowrap;
}

.customer-status-approved {
    color: #0d6847;
    background: rgba(20,134,95,.12);
}

.customer-status-rejected, .customer-status-cancelled, .customer-status-expired {
    color: #9d2432;
    background: rgba(196,61,75,.1);
}

.customer-status-pendingapproval {
    color: #805400;
    background: rgba(154,103,0,.12);
}

.customer-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 17px;
}

    .customer-filters label, .customer-form-grid label {
        display: grid;
        gap: 6px;
        color: #59636d;
        font-size: 13px;
    }

.customer-app input, .customer-app select {
    min-height: 40px;
    border: 1px solid rgba(52,58,64,.23);
    border-radius: 5px;
    background: rgba(255,255,255,.85);
    padding: 8px 11px;
    color: var(--customer-carbon);
}

    .customer-app input:hover, .customer-app select:hover {
        border-color: var(--customer-blue);
        background: #fff;
        box-shadow: 0 0 0 3px rgba(59,130,246,.09);
    }

.customer-filters input {
    width: min(300px, 100%);
}

.customer-pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 16px;
    color: #59636d;
    font-size: 13px;
}

    .customer-pager button {
        min-width: 70px;
        border: 1px solid rgba(52,58,64,.22);
        border-radius: 5px;
        padding: 7px 12px;
        background: rgba(255,255,255,.75);
        color: var(--customer-carbon);
    }

        .customer-pager button:not(:disabled):hover {
            border-color: var(--customer-blue);
            background: #fff;
            box-shadow: 0 0 0 3px rgba(59,130,246,.13);
        }

.customer-trade {
    max-width: 670px;
}

.customer-mode {
    display: inline-flex;
    gap: 3px;
    margin-bottom: 22px;
    border: 1px solid rgba(52,58,64,.15);
    border-radius: 6px;
    padding: 3px;
    background: rgba(255,255,255,.8);
}

    .customer-mode button {
        min-width: 105px;
        border: 0;
        border-radius: 4px;
        padding: 8px 18px;
        color: var(--customer-graphite);
        background: transparent;
    }

        .customer-mode button:hover, .customer-mode button.selected {
            color: #fff;
            background: var(--customer-carbon);
        }

.customer-form-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 18px;
    margin-bottom: 20px;
}

    .customer-form-grid input {
        width: 100%;
        direction: ltr;
        text-align: right;
    }

.customer-available {
    display: grid;
    align-content: end;
    gap: 8px;
    padding-bottom: 7px;
}

    .customer-available span, .customer-hint {
        color: #68717b;
        font-size: 13px;
    }

    .customer-available strong {
        font-size: 15px;
    }

.customer-quote-state {
    margin-bottom: 16px;
}

    .customer-quote-state p {
        margin: 6px 0 0;
        color: #59636d;
        font-size: 13px;
    }

.customer-details {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 0 28px;
    margin: 0;
}

    .customer-details div {
        display: flex;
        justify-content: space-between;
        gap: 12px;
        border-bottom: 1px solid rgba(52,58,64,.12);
        padding: 17px 0;
    }

    .customer-details dt {
        color: #68717b;
    }

    .customer-details dd {
        margin: 0;
        text-align: left;
        overflow-wrap: anywhere;
    }

.customer-events {
    list-style: none;
    margin: 0;
    padding: 0;
}

    .customer-events li {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 12px;
        padding: 12px 0;
        border-bottom: 1px solid rgba(52,58,64,.12);
    }

    .customer-events time {
        margin-right: auto;
        color: #68717b;
        font-size: 12px;
    }

.customer-login-wrap {
    display: grid;
    place-items: center;
    min-height: 100vh;
    padding: 20px;
}

.customer-login {
    display: grid;
    width: min(390px,100%);
    gap: 9px;
    padding: 30px;
    border: 1px solid rgba(255,255,255,.92);
    border-radius: 8px;
    background: rgba(255,255,255,.78);
    box-shadow: 0 22px 55px rgba(16,19,17,.1), inset 0 1px 0 #fff;
    backdrop-filter: none;
}

    .customer-login .customer-brand {
        margin: 0 0 13px;
    }

    .customer-login h1 {
        margin: 0 0 16px;
        font-size: 22px;
    }

    .customer-login label {
        color: #59636d;
        font-size: 13px;
    }

    .customer-login input {
        margin-bottom: 9px;
        width: 100%;
    }

    .customer-login .customer-primary {
        margin-top: 9px;
    }

.customer-message {
    margin: 4px 0;
    font-size: 13px;
}

.customer-not-found {
    padding: 40px;
}

@media (max-width: 920px) {
    .customer-layout {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 12px;
    }

    .customer-sidebar {
        position: static;
        min-height: auto;
        padding: 14px;
    }

        .customer-sidebar .customer-brand {
            margin: 0 4px 10px;
        }

    .customer-nav {
        display: flex;
        overflow-x: auto;
        padding-bottom: 4px;
    }

        .customer-nav a {
            white-space: nowrap;
        }

    .customer-signout {
        margin-top: 8px;
        align-self: flex-start;
    }

    .customer-main {
        padding: 4px 2px 30px;
    }
}

@media (max-width: 620px) {
    .customer-summary, .customer-details, .customer-form-grid {
        grid-template-columns: 1fr;
    }

    .customer-topbar {
        align-items: start;
    }

        .customer-topbar h1 {
            font-size: 21px;
        }

    .customer-user {
        max-width: 40%;
        white-space: normal;
        text-align: left;
        overflow-wrap: anywhere;
    }

    .customer-metric {
        min-height: 94px;
        padding: 15px;
    }

        .customer-metric strong {
            font-size: 18px;
        }

    .customer-filters {
        display: grid;
        grid-template-columns: 1fr;
    }

        .customer-filters input, .customer-filters select {
            width: 100%;
        }

    .customer-pager {
        flex-wrap: wrap;
        justify-content: center;
    }
}
