.v12-miniapp {
    --v12-ink: #0b0907;
    --v12-panel: #15110d;
    --v12-line: rgba(218, 175, 125, .28);
    --v12-gold: #d9ad78;
    --v12-cream: #f3e7d7;
    --v12-muted: #a89e93;
    padding-bottom: env(safe-area-inset-bottom, 0);
}

.v12-miniapp .concept-topbar {
    gap: 14px;
}

.v12-miniapp.home-v2 .v12-profile-pill {
    margin-left: 0;
}

.v12-miniapp .concept-book-top {
    display: none;
}

.v12-profile-pill {
    margin-left: auto;
    min-width: 176px;
    min-height: 56px;
    padding: 7px 13px 7px 8px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 10px;
    align-items: center;
    gap: 10px;
    color: var(--v12-cream);
    background: rgba(16, 13, 10, .78);
    border: 1px solid rgba(235, 207, 173, .24);
    border-radius: 999px;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.v12-profile-pill .fa-chevron-right {
    color: var(--v12-gold);
    font-size: 11px;
}

.v12-pill-avatar,
.v12-profile-avatar {
    display: grid;
    place-items: center;
    overflow: hidden;
    color: #1a120a;
    background: linear-gradient(145deg, #f3d1a5, #b87b42);
    border: 1px solid rgba(248, 220, 184, .72);
    border-radius: 50%;
    font-weight: 600;
}

.v12-pill-avatar {
    width: 42px;
    height: 42px;
}

.v12-pill-avatar img,
.v12-profile-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.v12-pill-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.v12-pill-copy b,
.v12-pill-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.v12-pill-copy b {
    font-size: 14px;
    font-weight: 500;
}

.v12-pill-copy small {
    color: rgba(243, 231, 215, .62);
    font-size: 10px;
    letter-spacing: .03em;
}

.v12-sheet[hidden] {
    display: none;
}

.v12-sheet {
    position: fixed;
    inset: 0;
    z-index: 10020;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

.v12-sheet-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .72);
    opacity: 0;
    transition: opacity .24s ease;
}

.v12-sheet-card {
    position: relative;
    width: min(100%, 620px);
    max-height: min(91vh, 900px);
    overflow-y: auto;
    padding: 24px 18px calc(24px + env(safe-area-inset-bottom, 0));
    color: var(--v12-cream);
    background:
        radial-gradient(circle at 86% 0, rgba(153, 96, 43, .16), transparent 33%),
        #0e0b09;
    border: 1px solid var(--v12-line);
    border-bottom: 0;
    border-radius: 28px 28px 0 0;
    box-shadow: 0 -24px 80px rgba(0, 0, 0, .58);
    transform: translateY(105%);
    transition: transform .28s cubic-bezier(.22, .85, .32, 1);
}

.v12-sheet.is-open .v12-sheet-backdrop {
    opacity: 1;
}

.v12-sheet.is-open .v12-sheet-card {
    transform: translateY(0);
}

.v12-sheet-handle {
    width: 42px;
    height: 4px;
    margin: -12px auto 15px;
    background: rgba(244, 232, 217, .2);
    border-radius: 10px;
}

.v12-sheet-close {
    position: absolute;
    z-index: 3;
    top: 18px;
    right: 18px;
    width: 36px;
    height: 36px;
    color: rgba(243, 231, 215, .72);
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(255, 255, 255, .1);
    border-radius: 50%;
    font: 300 26px/1 Jost, sans-serif;
}

.v12-profile-head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 2px 48px 18px 2px;
}

.v12-profile-avatar {
    flex: 0 0 auto;
    width: 58px;
    height: 58px;
    font-size: 21px;
}

.v12-profile-head small,
.v12-loyalty-top small,
.v12-connect-card > small {
    color: var(--v12-gold);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .19em;
    text-transform: uppercase;
}

.v12-profile-head h2 {
    margin: 2px 0 0;
    font: 500 24px/1.12 Jost, sans-serif;
}

.v12-profile-head p {
    margin: 3px 0 0;
    color: var(--v12-muted);
    font-size: 12px;
}

.v12-loyalty-card,
.v12-connect-card,
.v12-history,
.v12-booking-summary,
.v12-profile-fields {
    border: 1px solid var(--v12-line);
    border-radius: 22px;
    background: linear-gradient(145deg, rgba(43, 32, 23, .9), rgba(15, 12, 10, .98) 64%);
}

.v12-loyalty-card {
    padding: 22px;
}

.v12-loyalty-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.v12-loyalty-top span {
    display: flex;
    flex-direction: column;
}

.v12-loyalty-top span:last-child {
    text-align: right;
}

.v12-loyalty-top b {
    margin-top: 4px;
    font: 400 24px/1.05 Jost, sans-serif;
}

.v12-balance {
    margin: 27px 0 15px;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.v12-balance strong {
    font: 400 clamp(44px, 13vw, 68px)/.92 Jost, sans-serif;
    letter-spacing: -.035em;
}

.v12-balance span {
    color: rgba(243, 231, 215, .72);
    font-size: 15px;
}

.v12-progress {
    height: 6px;
    overflow: hidden;
    background: rgba(255, 255, 255, .08);
    border-radius: 10px;
}

.v12-progress span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, #a66a3d, #e9c18e);
    border-radius: inherit;
}

.v12-progress-copy {
    margin: 8px 0 20px;
    color: var(--v12-muted);
    font-size: 12px;
}

.v12-primary {
    width: 100%;
    min-height: 52px;
    padding: 0 20px;
    color: #1a1109;
    background: linear-gradient(135deg, #f0c995, #c58a50);
    border: 0;
    border-radius: 14px;
    font: 600 14px/1 Jost, sans-serif;
    cursor: pointer;
}

.v12-primary:disabled {
    opacity: .55;
}

.v12-primary i {
    margin-right: 7px;
}

.v12-qr-box {
    margin-top: 18px;
    padding: 14px;
    text-align: center;
    background: #f4eadc;
    border-radius: 16px;
}

.v12-qr-box img {
    display: block;
    width: min(100%, 280px);
    margin: 0 auto;
}

.v12-qr-box p,
.v12-qr-loading {
    margin: 8px 0 0;
    color: #2c2118;
    font-size: 12px;
}

.v12-qr-dialog[hidden] {
    display: none;
}

.v12-qr-dialog {
    position: fixed;
    inset: 0;
    z-index: 10040;
    display: grid;
    place-items: center;
    padding: 22px;
}

.v12-qr-backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0;
    background: rgba(0, 0, 0, .82);
    border: 0;
    opacity: 0;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: opacity .18s ease;
}

.v12-qr-card {
    position: relative;
    z-index: 1;
    width: min(100%, 350px);
    padding: 25px;
    color: var(--v12-cream);
    text-align: center;
    background: linear-gradient(145deg, #221a14, #0d0b09 68%);
    border: 1px solid rgba(230, 197, 157, .32);
    border-radius: 24px;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .72);
    opacity: 0;
    transform: translateY(10px) scale(.97);
    transition: opacity .18s ease, transform .18s ease;
}

.v12-qr-dialog.is-open .v12-qr-backdrop,
.v12-qr-dialog.is-open .v12-qr-card {
    opacity: 1;
}

.v12-qr-dialog.is-open .v12-qr-card {
    transform: translateY(0) scale(1);
}

.v12-qr-card > small {
    color: var(--v12-gold);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.v12-qr-card h2 {
    margin: 5px 0 0;
    font: 400 26px/1.15 Jost, sans-serif;
}

.v12-qr-card > p {
    margin: 13px 0 0;
    color: var(--v12-muted);
    font-size: 12px;
}

.v12-qr-close {
    position: absolute;
    top: 11px;
    right: 12px;
    width: 34px;
    height: 34px;
    color: rgba(243, 231, 215, .68);
    background: transparent;
    border: 0;
    font: 300 26px/1 Jost, sans-serif;
}

.v12-history {
    margin-top: 12px;
    padding: 18px;
    background: rgba(18, 15, 12, .94);
}

.v12-booking-summary,
.v12-profile-fields {
    margin-top: 12px;
    padding: 18px;
    background: rgba(18, 15, 12, .94);
}

.v12-booking-current {
    min-height: 58px;
    padding-top: 10px;
    display: flex;
    align-items: center;
    gap: 13px;
    border-top: 1px solid rgba(255, 255, 255, .07);
}

.v12-booking-current > i {
    width: 38px;
    height: 38px;
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    color: var(--v12-gold);
    border: 1px solid rgba(218, 175, 125, .25);
    border-radius: 50%;
}

.v12-booking-current span {
    display: flex;
    flex-direction: column;
}

.v12-booking-current b {
    font-size: 14px;
    font-weight: 500;
}

.v12-booking-current small,
.v12-booking-empty p {
    margin-top: 3px;
    color: var(--v12-muted);
    font-size: 12px;
}

.v12-booking-empty p {
    margin: 5px 0 2px;
    line-height: 1.5;
}

.v12-booking-empty .v12-text-button {
    width: auto;
    padding-top: 9px;
}

.v12-profile-fields form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 11px;
}

.v12-profile-fields label {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.v12-profile-fields label > span {
    color: var(--v12-muted);
    font-size: 10px;
}

.v12-profile-fields input,
.v12-profile-fields select {
    width: 100%;
    height: 42px;
    padding: 0 10px;
    box-sizing: border-box;
    color: var(--v12-cream);
    color-scheme: dark;
    background: rgba(255, 255, 255, .035);
    border: 1px solid rgba(235, 207, 173, .16);
    border-radius: 10px;
    outline: none;
    font: 400 13px/1 Jost, sans-serif;
}

.v12-profile-fields input:focus,
.v12-profile-fields select:focus {
    border-color: rgba(227, 183, 129, .58);
}

.v12-profile-save {
    min-height: 44px;
    grid-column: 1 / -1;
    color: #1b120b;
    background: linear-gradient(112deg, #e8c69c, #c88d55);
    border: 0;
    border-radius: 11px;
    font: 600 13px/1 Jost, sans-serif;
}

.v12-profile-save:disabled {
    opacity: .65;
}

.v12-profile-status {
    grid-column: 1 / -1;
    margin: 0;
    font-size: 12px;
}

.v12-profile-status.is-success {
    color: #dfc39c;
}

.v12-profile-status.is-error {
    color: #e0aaa0;
}

.v12-section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 8px;
}

.v12-section-title h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
}

.v12-section-title span {
    color: var(--v12-muted);
    font-size: 12px;
}

.v12-operation {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 13px 0;
    border-top: 1px solid rgba(255, 255, 255, .07);
}

.v12-operation div {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.v12-operation b {
    overflow: hidden;
    font-size: 13px;
    font-weight: 400;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.v12-operation small {
    margin-top: 3px;
    color: var(--v12-muted);
    font-size: 10px;
}

.v12-operation strong {
    flex: 0 0 auto;
    font-size: 14px;
    font-weight: 500;
}

.v12-operation strong.is-positive {
    color: #dfbb8b;
}

.v12-operation strong.is-negative {
    color: #c98e7d;
}

.v12-text-button {
    width: 100%;
    padding: 12px 0 2px;
    color: var(--v12-gold);
    background: none;
    border: 0;
    font: 500 12px/1.2 Jost, sans-serif;
}

.v12-empty {
    margin: 12px 0 4px;
    color: var(--v12-muted);
    font-size: 12px;
}

.v12-connect-card {
    padding: 26px 22px;
}

.v12-connect-card h3 {
    margin: 8px 0;
    font: 400 27px/1.08 Jost, sans-serif;
}

.v12-connect-card p {
    margin: 0 0 20px;
    color: var(--v12-muted);
    font-size: 13px;
    line-height: 1.55;
}

.v12-miniapp .booking-card {
    width: min(91vw, 510px);
    max-height: 86vh;
    overflow-y: auto;
    padding: 25px 22px 22px;
    background:
        radial-gradient(circle at 85% 3%, rgba(206, 146, 83, .18), transparent 34%),
        linear-gradient(145deg, rgba(39, 30, 23, .94), rgba(12, 10, 8, .97) 62%);
    border: 1px solid rgba(231, 196, 158, .3);
    border-radius: 24px;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .7), inset 0 1px 0 rgba(255, 255, 255, .05);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
}

.v12-miniapp .booking-logo {
    width: 48px;
    height: 48px;
    margin-bottom: 8px;
}

.v12-miniapp .booking-card h2 {
    margin-bottom: 7px;
    font-size: clamp(1.7rem, 7vw, 2.2rem);
}

.v12-miniapp .booking-card > p {
    margin-bottom: 16px;
    color: rgba(235, 221, 205, .62);
    font-size: 12px;
}

.v12-booking-guest {
    min-height: 54px;
    margin-bottom: 12px;
    padding: 8px 11px;
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, .035);
    border: 1px solid rgba(235, 207, 173, .13);
    border-radius: 14px;
}

.v12-booking-avatar {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    overflow: hidden;
    color: #21170f;
    background: linear-gradient(145deg, #efd0a7, #b97a43);
    border-radius: 50%;
    font-size: 13px;
    font-style: normal;
    font-weight: 600;
}

.v12-booking-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.v12-booking-guest > span:last-child {
    min-width: 0;
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 8px;
    align-items: baseline;
}

.v12-booking-guest small {
    grid-column: 1 / -1;
    color: var(--v12-gold);
    font-size: 9px;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.v12-booking-guest b {
    color: var(--v12-cream);
    font-size: 13px;
    font-weight: 500;
}

.v12-booking-guest em {
    overflow: hidden;
    color: var(--v12-muted);
    font-size: 11px;
    font-style: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.v12-booking-grid {
    display: grid;
    grid-template-columns: 1.35fr .82fr .68fr;
    gap: 8px;
}

.v12-booking-grid label {
    min-width: 0;
}

.v12-miniapp .booking-form label > span {
    margin-bottom: 5px;
    color: rgba(235, 218, 199, .58);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: .08em;
}

.v12-booking-comment {
    grid-column: 1 / -1;
}

.v12-miniapp .booking-form input,
.v12-miniapp .booking-form textarea {
    width: 100%;
    box-sizing: border-box;
    color: var(--v12-cream);
    background: rgba(255, 255, 255, .04);
    border: 1px solid rgba(235, 207, 173, .2);
    border-radius: 11px;
    outline: none;
    font: 400 14px/1.2 Jost, sans-serif;
}

.v12-miniapp .booking-form input {
    min-width: 0;
    height: 43px;
    padding: 0 9px;
    font-size: 12px;
}

.v12-miniapp .booking-form textarea {
    min-height: 60px;
    padding: 10px;
    resize: none;
}

.v12-miniapp .booking-form input:focus,
.v12-miniapp .booking-form textarea:focus {
    border-color: rgba(227, 183, 129, .62);
}

.v12-booking-status {
    margin: 12px 0 0;
    padding: 11px 13px;
    border-radius: 10px;
    font-size: 12px;
    line-height: 1.4;
}

.v12-booking-status.is-success {
    color: #dfc39c;
    background: rgba(164, 113, 57, .15);
}

.v12-booking-status.is-error {
    color: #e0aaa0;
    background: rgba(145, 62, 45, .16);
}

.v12-miniapp .booking-form > button[type="submit"] {
    min-height: 49px;
    margin-top: 12px;
    color: #1b120b;
    background: linear-gradient(112deg, #e9c79e 0%, #c98f58 55%, #efd2ad 100%);
    border: 1px solid rgba(255, 226, 190, .45);
    border-radius: 13px;
    box-shadow: 0 12px 30px rgba(127, 75, 33, .24), inset 0 1px 0 rgba(255, 255, 255, .28);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .035em;
}

.v12-miniapp .booking-call {
    display: none;
}

@media (max-width: 680px) {
    .v12-miniapp .concept-topbar {
        padding-top: max(14px, env(safe-area-inset-top, 14px));
    }

    .v12-profile-pill {
        min-width: 0;
        width: 52px;
        min-height: 52px;
        padding: 5px;
        display: grid;
        grid-template-columns: 1fr;
    }

    .v12-miniapp.home-v2 .v12-profile-pill {
        margin-left: auto;
    }

    .v12-pill-avatar {
        width: 40px;
        height: 40px;
    }

    .v12-pill-copy,
    .v12-profile-pill .fa-chevron-right {
        display: none;
    }

    .v12-miniapp .concept-burger {
        margin-left: 0;
    }

    .v12-sheet-card {
        max-height: 92vh;
    }

    .v12-miniapp .booking-card {
        padding: 22px 16px 18px;
        border-radius: 22px;
    }
}

@media (min-width: 681px) {
    .v12-sheet {
        align-items: center;
    }

    .v12-sheet-card {
        max-height: 88vh;
        border-bottom: 1px solid var(--v12-line);
        border-radius: 28px;
        transform: translateY(24px) scale(.98);
        opacity: 0;
    }

    .v12-sheet.is-open .v12-sheet-card {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
}

/* Immersive guest profile. Real data and actions are unchanged; only the
   presentation follows the lighter V12 glass composition. */
.v12-profile-brand {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 54px;
    margin-bottom: 13px;
}

.v12-profile-brand img {
    width: 48px;
    height: 48px;
    padding-right: 10px;
    border-right: 1px solid rgba(231, 209, 185, .42);
    object-fit: contain;
}

.v12-profile-brand span {
    display: grid;
    gap: 4px;
}

.v12-profile-brand b {
    color: #dfc8b0;
    font: 300 15px/1 Jost, sans-serif;
    letter-spacing: .16em;
}

.v12-profile-brand small {
    color: rgba(226, 205, 181, .62);
    font: 300 7px/1 Jost, sans-serif;
    letter-spacing: .48em;
}

.v12-profile-content {
    position: relative;
    z-index: 1;
}

.v12-profile-head {
    min-height: 82px;
    padding: 0 46px 14px 2px;
}

.v12-profile-avatar {
    width: 68px;
    height: 68px;
    border: 1px solid rgba(238, 208, 174, .68);
    box-shadow: 0 0 18px rgba(223, 164, 105, .12);
}

.v12-profile-head small {
    color: rgba(226, 200, 173, .78);
    font-weight: 300;
}

.v12-profile-head h2 {
    color: #f0dfcf;
    font: 400 31px/1.02 Jost, sans-serif;
}

.v12-loyalty-card {
    position: relative;
    min-height: 150px;
    padding: 17px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 96px;
    gap: 14px;
    overflow: hidden;
    border: 1px solid transparent;
    border-radius: 17px;
    background:
        radial-gradient(circle at 24% 0, rgba(236, 176, 116, .08), transparent 42%),
        linear-gradient(118deg, rgba(34, 23, 16, .18), rgba(65, 40, 23, .07), rgba(10, 9, 8, .14));
    box-shadow: inset 0 1px 0 rgba(255, 242, 225, .08), 0 14px 44px rgba(0, 0, 0, .16);
    backdrop-filter: blur(2px) saturate(115%);
    -webkit-backdrop-filter: blur(2px) saturate(115%);
}

.v12-loyalty-card::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 1px;
    border-radius: inherit;
    background: linear-gradient(118deg, rgba(248, 222, 194, .62), rgba(183, 124, 75, .14) 44%, rgba(238, 201, 165, .5));
    pointer-events: none;
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
}

.v12-loyalty-main {
    min-width: 0;
    padding-right: 14px;
    border-right: 1px solid rgba(230, 201, 171, .25);
}

.v12-loyalty-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 12px;
}

.v12-loyalty-top span:last-child {
    min-width: 60px;
    padding-left: 13px;
    border-left: 1px solid rgba(230, 201, 171, .22);
    text-align: left;
}

.v12-loyalty-top small {
    font-size: 8px;
    font-weight: 300;
    letter-spacing: .2em;
}

.v12-loyalty-top b {
    margin-top: 4px;
    color: #ead7c2;
    font: 400 clamp(22px, 7vw, 34px)/.98 Jost, sans-serif;
}

.v12-balance {
    margin: 13px 0 7px;
    gap: 7px;
}

.v12-balance > i {
    width: 31px;
    height: 31px;
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    color: #d8b48f;
    border: 1px solid rgba(230, 197, 163, .45);
    border-radius: 50%;
    font-size: 12px;
}

.v12-balance strong {
    font-size: clamp(32px, 10vw, 49px);
}

.v12-balance span {
    font-size: 12px;
}

.v12-loyalty-card .v12-progress {
    height: 3px;
}

.v12-loyalty-card .v12-progress-copy {
    margin: 6px 0 0;
    font-size: 9px;
    letter-spacing: .04em;
}

.v12-loyalty-qr-button {
    min-width: 0;
    padding: 0;
    display: grid;
    place-items: center;
    color: #ead5bd;
    background: transparent;
    border: 0;
}

.v12-loyalty-qr-button > span {
    display: grid;
    place-items: center;
    gap: 7px;
}

.v12-loyalty-qr-button i {
    font-size: 48px;
}

.v12-loyalty-qr-button img {
    width: 72px;
    height: 72px;
    object-fit: contain;
    background: transparent;
    filter: drop-shadow(0 0 6px rgba(229, 181, 132, .2));
}

.v12-loyalty-qr-button small {
    color: #d9b691;
    font-size: 9px;
    letter-spacing: .03em;
}

.v12-profile-row {
    min-height: 72px;
    margin: 0 3px;
    padding: 12px 0;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    border: 0;
    border-bottom: 1px solid rgba(229, 198, 166, .23);
    border-radius: 0;
    background: transparent;
}

.v12-row-icon {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    color: #d8b58f;
    border: 1px solid rgba(232, 199, 163, .5);
    border-radius: 50%;
    font-size: 17px;
}

.v12-profile-row > div {
    min-width: 0;
}

.v12-profile-row h3 {
    margin: 0;
    color: #eadfd3;
    font: 300 16px/1.2 Jost, sans-serif;
}

.v12-profile-row p {
    margin: 4px 0 0;
    overflow: hidden;
    color: rgba(231, 218, 204, .62);
    font-size: 10px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.v12-row-action {
    min-height: 32px;
    padding: 0 11px;
    color: #d9b58e;
    background: rgba(25, 18, 13, .2);
    border: 1px solid rgba(231, 195, 158, .32);
    border-radius: 999px;
    font: 300 10px/1 Jost, sans-serif;
}

.v12-row-state,
.v12-history-count {
    color: #d6b18b;
    font-size: 10px;
}

.v12-booking-summary,
.v12-history,
.v12-profile-fields {
    margin-top: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.v12-history-preview {
    padding: 0 3px;
}

.v12-history-preview .v12-operation {
    padding: 8px 5px 8px 62px;
    border-top: 0;
    border-bottom: 1px solid rgba(229, 198, 166, .12);
}

.v12-history-preview .v12-operation b {
    font-size: 11px;
}

.v12-history-preview .v12-text-button {
    padding: 8px 4px;
}

.v12-profile-fields {
    margin: 8px 1px 5px;
    padding: 14px;
    border: 1px solid rgba(232, 199, 163, .2);
    border-radius: 15px;
    background: rgba(12, 10, 8, .28);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

.v12-profile-fields[hidden] {
    display: none;
}

.v12-profile-fields .v12-section-title {
    display: none;
}

.v12-profile-open .bottom-nav .nav-item.active,
.v12-profile-open .bottom-nav .center-fab > span {
    color: rgba(224, 211, 197, .52) !important;
}

.v12-profile-open .bottom-nav .v12-profile-nav,
.v12-profile-open .bottom-nav .v12-profile-nav i {
    color: #ecc598 !important;
}

.v12-profile-menu { margin-top:10px; }
.v12-profile-menu-action { width:100%; text-decoration:none; color:var(--v12-cream); background:none; border:0; text-align:left; font:inherit; cursor:pointer; }
.v12-profile-menu-action > span:nth-child(2) { min-width:0; display:grid; gap:4px; }
.v12-profile-menu-action b { font-size:14px; font-weight:400; }
.v12-profile-menu-action small { font-size:10px; color:var(--v12-muted); }
.v12-profile-menu-action > .fa-chevron-right { color:var(--v12-gold); font-size:11px; }
.v12-profile-menu-action:disabled { opacity:.5; cursor:wait; }
#v12-menu-editor-status { color:#efb394; font-size:12px; line-height:1.5; }

@media (max-width: 680px) {
    .v12-sheet {
        bottom: calc(58px + env(safe-area-inset-bottom, 0));
        align-items: stretch;
    }

    .v12-sheet-backdrop {
        background: rgba(0, 0, 0, .82);
    }

    .v12-sheet-card {
        width: 100%;
        max-height: none;
        height: 100%;
        padding: max(13px, env(safe-area-inset-top, 13px)) 18px 18px;
        border: 0;
        border-radius: 0;
        background:
            linear-gradient(180deg, rgba(4, 3, 2, .3) 0%, rgba(6, 5, 4, .56) 37%, rgba(5, 4, 3, .8) 100%),
            linear-gradient(90deg, rgba(5, 4, 3, .58), transparent 72%),
            url('assets/hero-v12-interior.webp') center 56% / cover no-repeat;
        box-shadow: none;
        transform: translateY(100%);
    }

    .v12-sheet-handle {
        display: none;
    }

    .v12-sheet-close {
        top: max(16px, env(safe-area-inset-top, 16px));
        right: 14px;
        z-index: 3;
        color: rgba(241, 221, 200, .68);
        background: rgba(9, 7, 5, .22);
        border-color: rgba(232, 202, 169, .24);
        backdrop-filter: blur(5px);
    }

    .v12-profile-brand {
        margin-bottom: 7px;
    }

    .v12-profile-head {
        min-height: 76px;
        padding-bottom: 10px;
    }

    .v12-profile-avatar {
        width: 62px;
        height: 62px;
    }

    .v12-profile-head h2 {
        font-size: 28px;
    }

    .v12-loyalty-card {
        min-height: 126px;
        padding: 12px 13px;
        grid-template-columns: minmax(0, 1fr) 78px;
        gap: 10px;
    }

    .v12-loyalty-main {
        padding-right: 10px;
    }

    .v12-loyalty-top b {
        font-size: clamp(21px, 7.2vw, 27px);
    }

    .v12-loyalty-top small {
        font-size: 7px;
    }

    .v12-balance {
        margin: 8px 0 5px;
    }

    .v12-balance > i {
        width: 27px;
        height: 27px;
        font-size: 10px;
    }

    .v12-balance strong {
        font-size: clamp(30px, 9.4vw, 36px);
    }

    .v12-loyalty-card .v12-progress-copy {
        margin-top: 4px;
        font-size: 8px;
    }

    .v12-loyalty-qr-button img {
        width: 58px;
        height: 58px;
    }

    .v12-loyalty-qr-button i {
        font-size: 42px;
    }

    .v12-profile-row {
        min-height: 65px;
        grid-template-columns: 42px minmax(0, 1fr) auto;
        gap: 11px;
        padding: 9px 0;
    }

    .v12-row-icon {
        width: 38px;
        height: 38px;
        font-size: 15px;
    }

    .v12-profile-row h3 {
        font-size: 14px;
    }

    .v12-row-action {
        padding-inline: 9px;
        font-size: 9px;
    }
}
