/* Impluse account + sign-in (doc 107). Tokens only, logical properties, no important-flags. Pages that still use the platform's own markup (order details, tickets, profile form) are skinned through the .imp-account scope. */
.imp-account { padding-block: 1.5rem 4rem; }
.imp-account-head { margin-block-end: 1.5rem; }
.imp-account-head .imp-h2 { margin: 0 0 .25rem; }
.imp-account-head p { margin: 0; }
.imp-account-layout { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 3rem); align-items: start; }

.imp-account-nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem; }
.imp-account-nav li a { display: flex; align-items: center; gap: .75rem; padding: .7rem 1rem; border-radius: 999px; font-size: .9rem; color: var(--imp-ink-soft); transition: background .2s, color .2s; }
.imp-account-nav li a:hover { background: var(--imp-surface); color: var(--imp-ink); }
.imp-account-nav li.active a { background: var(--imp-ink); color: var(--imp-white); }
.imp-account-nav i { font-size: 1.15rem; }

.imp-account-main { min-inline-size: 0; }
.imp-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: 1rem; margin-block-end: 2rem; }
.imp-stat { display: grid; gap: .25rem; padding: 1.5rem; background: var(--imp-surface); border-radius: var(--imp-radius); border: 1px solid transparent; transition: border-color .2s; }
.imp-stat:hover { border-color: var(--imp-ink); }
.imp-stat i { font-size: 1.6rem; margin-block-end: .75rem; }
.imp-stat strong { font-size: 1.8rem; font-weight: 300; letter-spacing: -.02em; }

.imp-table-wrap { overflow-x: auto; }
.imp-table { inline-size: 100%; border-collapse: collapse; min-inline-size: 36rem; }
.imp-table thead th { padding: .75rem .75rem; text-align: start; font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--imp-ink-soft); border-block-end: 1px solid var(--imp-line); }
.imp-table tbody td { padding: 1.1rem .75rem; border-block-end: 1px solid var(--imp-line); vertical-align: middle; font-size: .9rem; }
.imp-table .status p { margin: 0 0 .25rem; font-size: .82rem; }
.imp-table .text-success { color: #1d7a3a; }
.imp-table .text-danger { color: var(--imp-danger); }
.imp-table .text-warning { color: #9a6a00; }
.imp-table .table-btn .d-flex { display: flex; gap: .5rem; flex-wrap: wrap; }
.imp-download-product { display: flex; align-items: center; gap: .9rem; }
.imp-download-product p { margin: 0; }
.imp-download-img { inline-size: 4rem; aspect-ratio: 322 / 374; object-fit: cover; border-radius: var(--imp-radius-sm); }

/* platform markup used by the pages that were not rebuilt */
.imp-account .single-orders, .imp-account .single-order-summery, .imp-account .order-details-inner, .imp-account .dashboard-form-wrapper, .imp-account .box-wrapper { border-radius: var(--imp-radius); }
.imp-account .btn-default, .imp-account .rounded-btn, .imp-account .cmn-btn { border-radius: 999px; }
.imp-account .form-group { margin-block-end: 1.1rem; }
.imp-account .alert { border-radius: var(--imp-radius-sm); }
.imp-account .blog-pagination { margin-block-start: 2rem; }
.imp-account h2, .imp-account h3, .imp-account h4 { font-weight: 400; letter-spacing: -.01em; }

/* sign in / forgot password */
.imp-auth { padding-block: clamp(2rem, 6vw, 5rem); display: grid; place-items: center; padding-inline: var(--imp-gutter); }
.imp-auth-card { inline-size: min(100%, 28rem); }
.imp-auth-card .imp-h2 { margin: 0 0 .5rem; }
.imp-auth-card > .imp-muted { margin: 0 0 1.75rem; }
.imp-form { display: grid; gap: 1.1rem; }
.imp-field { display: grid; gap: .4rem; }
.imp-field label { font-size: .8rem; font-weight: 500; }
.imp-field .form-control, .imp-field input { inline-size: 100%; }
.imp-form-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.imp-check { display: inline-flex; align-items: center; gap: .5rem; font-size: .85rem; font-weight: 400; cursor: pointer; }
.imp-check input { inline-size: 1.1rem; block-size: 1.1rem; min-block-size: 0; accent-color: var(--imp-ink); }
.imp-block { inline-size: 100%; }
.imp-auth-alt { text-align: center; margin-block-start: 1.5rem; }
.imp-auth .error-wrap:empty { display: none; }
.imp-field-error { margin: 0; font-size: .78rem; color: var(--imp-danger); }
.imp-field-error[hidden] { display: none; }
.imp-field input[aria-invalid="true"], .imp-field textarea[aria-invalid="true"] { border-color: var(--imp-danger); }

/* ── order details, tickets, profile (doc 109) ── */
.imp-section-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-block-end: 1.25rem; }
.imp-section-head .imp-h3 { margin: 0; }
.imp-back { display: inline-flex; align-items: center; gap: .4rem; margin-block-end: 1rem; }
.imp-order-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-block-end: 1rem; }
.imp-order-no { margin: 0 0 .25rem; font-size: clamp(1.5rem, 2.6vw, 2.2rem); }
.imp-order-head p { margin: 0; }
.imp-order-total { font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 300; letter-spacing: -.02em; }
.imp-order-status { list-style: none; margin: 0 0 1.5rem; padding: 0; }
.imp-pill.is-ok { background: #e8f5ec; border-color: #b9e0c4; color: #1d7a3a; }
.imp-pill.is-warn { background: #fff4de; border-color: #f0d9a4; color: #9a6a00; }
.imp-order-grid { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: 1.5rem; align-items: start; }
.imp-card-box { border: 1px solid var(--imp-line); border-radius: var(--imp-radius); padding: 1.5rem; margin-block-end: 1.25rem; background: var(--imp-white); }
.imp-card-box > .imp-h4 { margin: 0 0 1rem; }
.imp-lines { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.imp-line { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding-block-end: 1rem; border-block-end: 1px solid var(--imp-line); }
.imp-line:last-child { border: 0; padding: 0; }
.imp-line-thumb { aspect-ratio: 322 / 374; border-radius: var(--imp-radius-sm); overflow: hidden; background: var(--imp-surface); }
.imp-line-thumb img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.imp-line-text { display: grid; gap: .2rem; font-size: .9rem; }
.imp-line-price { font-weight: 500; white-space: nowrap; }
.imp-order-summary { background: var(--imp-surface); border-color: transparent; }
.imp-bill-title { margin-block: 1.5rem .5rem; }
.imp-bill { margin: 0 0 1.25rem; white-space: pre-line; }
.imp-note { margin: 0; padding: .75rem 1rem; border-radius: var(--imp-radius-sm); background: var(--imp-white); font-size: .85rem; }
.imp-select { min-block-size: 40px; border: 1px solid var(--imp-line); border-radius: 999px; padding-inline: 1rem; background: var(--imp-white); font-size: .85rem; }
.imp-block-text { display: block; margin-block-start: .2rem; font-size: .8rem; }
.imp-thread { display: grid; gap: 1rem; margin-block: 1.5rem; }
.imp-thread > .imp-h4 { margin: 0; }
.imp-msg { border: 1px solid var(--imp-line); border-radius: var(--imp-radius); padding: 1.1rem 1.25rem; max-inline-size: 46rem; }
.imp-msg.is-mine { background: var(--imp-surface); border-color: transparent; }
.imp-msg-head { display: flex; align-items: center; gap: .6rem; margin-block-end: .6rem; font-size: .88rem; }
.imp-msg-head time { margin-inline-start: auto; font-size: .78rem; }
.imp-avatar { display: grid; place-items: center; inline-size: 2rem; block-size: 2rem; border-radius: 50%; background: var(--imp-ink); color: var(--imp-white); font-size: .8rem; text-transform: uppercase; }
.imp-msg-body { line-height: 1.65; overflow-wrap: anywhere; }
.imp-ticket-desc { margin: 0; white-space: pre-line; }
.imp-reply { max-inline-size: 46rem; }
.imp-reply > .imp-h4 { margin: 0 0 1rem; }
.imp-narrow { max-inline-size: 28rem; }
.imp-hint { margin: 0; font-size: .78rem; }
.imp-two { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.imp-ticket-form { max-inline-size: 40rem; }
.impluse .imp-form textarea { inline-size: 100%; border: 1px solid var(--imp-line); border-radius: var(--imp-radius-sm); padding: .7rem .9rem; font: inherit; }
@media (max-width: 860px) { .imp-order-grid { grid-template-columns: minmax(0, 1fr); } .imp-two { grid-template-columns: 1fr; } }

/* the shared profile component (used by every theme) skinned under .imp-account: pill tabs, outlined cards, Impluse fields and buttons */
.imp-account .ma-tabs { border: 0; gap: .5rem; padding-block-end: .25rem; margin-block-end: 1.5rem; }
.imp-account .ma-tab-btn { border: 1px solid var(--imp-line); border-radius: 999px; margin: 0; padding: .55rem 1.2rem; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--imp-ink-soft); background: var(--imp-white); }
.imp-account .ma-tab-btn.ma-active { background: var(--imp-ink); border-color: var(--imp-ink); color: var(--imp-white); }
.imp-account .ma-card { border: 1px solid var(--imp-line); border-radius: var(--imp-radius); box-shadow: none; }
.imp-account .ma-card-head { border-color: var(--imp-line); font-weight: 500; font-size: 1rem; }
.imp-account .ma-card-head i { color: var(--imp-ink); }
.imp-account .ma-photo-row { border: 1px solid var(--imp-line); background: var(--imp-surface); border-radius: var(--imp-radius); }
.imp-account .ma-label { font-size: .8rem; font-weight: 500; color: var(--imp-ink); }
.imp-account .ma-input { border: 1px solid var(--imp-line); border-radius: var(--imp-radius-sm); min-block-size: 46px; }
.imp-account .ma-input:focus { border-color: var(--imp-ink); box-shadow: var(--imp-focus); }
.imp-account .ma-btn { background: var(--imp-ink); color: var(--imp-white); border-radius: 999px; padding: .75rem 1.9rem; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.imp-account .modal-content { border-radius: var(--imp-radius); }
.imp-account .modal-footer { gap: .5rem; }

@media (max-width: 860px) {
    .imp-account-layout { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
    .imp-account-nav { overflow-x: auto; margin-inline: calc(var(--imp-gutter) * -1); padding-inline: var(--imp-gutter); scrollbar-width: none; }
    .imp-account-nav::-webkit-scrollbar { display: none; }
    .imp-account-nav ul { display: flex; gap: .5rem; inline-size: max-content; }
    .imp-account-nav li a { border: 1px solid var(--imp-line); white-space: nowrap; }
    .imp-account-nav li.active a { border-color: var(--imp-ink); }
}
.impluse .imp-ticket-desc, .impluse .imp-card-box > p:not(.imp-muted) { color: var(--imp-ink); }
.impluse .imp-account .imp-muted { color: var(--imp-ink-soft); }
.impluse .imp-account .btn-info, .impluse .imp-account .btn-primary, .impluse .imp-account .btn-danger { background: var(--imp-ink); border-color: var(--imp-ink); color: var(--imp-white); border-radius: 999px; }
