/* ==========================================================================
   Sendashopping - shared "account & commerce" components (ac-*)
   Used by: cart, checkout, payment results, my account, settings, orders,
   purchases, sell, listings and chat. Extends the --sp-* tokens in
   marketplace-bs5.css. Page-specific styles live in their own files.

   Sections
     1. Page frame, breadcrumbs, heading
     2. Account shell + side navigation
     3. Cards, key/value rows, stat tiles
     4. Badges, buttons helpers, chips
     5. Toolbars, tabs, segmented controls
     6. Tables & list rows
     7. Forms
     8. Empty / notice / skeleton
     9. Stepper, timeline
    10. Summary (sticky order summary)
    11. Product tiles, baskets (cart)
    12. Pagination, modal
   ========================================================================== */

/* 1. Page frame ------------------------------------------------------------ */
.ac-page { padding-block: 1.5rem 4.5rem; min-height: 60vh; background: var(--sp-surface); }
.ac-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; margin-bottom: 1rem; font-size: 0.85rem; color: var(--sp-muted); }
.ac-crumbs a { color: var(--sp-muted); text-decoration: none; }
.ac-crumbs a:hover { color: var(--sp-accent-ink); text-decoration: none; }
.ac-crumbs i { font-size: 0.7rem; }
.ac-crumbs [aria-current] { color: var(--sp-ink); font-weight: 600; }

.ac-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.ac-head h1 { margin: 0 0 0.25rem; font-size: clamp(1.5rem, 1.15rem + 1.3vw, 2.1rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.15; }
.ac-head p { margin: 0; color: var(--sp-muted); max-width: 62ch; font-size: 0.95rem; }
.ac-head__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }

/* 2. Shell + side nav ------------------------------------------------------ */
.ac-shell { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
@media (min-width: 992px) { .ac-shell { grid-template-columns: 260px minmax(0, 1fr); } }
.ac-main { min-width: 0; display: grid; gap: 1.25rem; }

.ac-side { background: #fff; border: 1px solid var(--sp-border); border-radius: var(--sp-radius); box-shadow: var(--sp-shadow-sm); padding: 1rem; }
@media (min-width: 992px) { .ac-side { position: sticky; top: calc(var(--sp-nav-h, 72px) + 1rem); } }
.ac-me { display: flex; align-items: center; gap: 0.75rem; padding: 0.25rem 0.25rem 1rem; margin-bottom: 0.5rem; border-bottom: 1px solid var(--sp-border); }
.ac-me img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; background: var(--sp-surface-2); flex: none; }
.ac-me strong { display: block; font-size: 0.95rem; line-height: 1.2; overflow-wrap: anywhere; }
.ac-me span { font-size: 0.78rem; color: var(--sp-muted); }
.ac-nav { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; }
.ac-nav__label { margin: 0.9rem 0.6rem 0.3rem; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sp-muted); }
.ac-nav a { display: flex; align-items: center; gap: 0.7rem; padding: 0.6rem 0.75rem; border-radius: var(--sp-radius-sm); color: var(--sp-ink-2); font-weight: 500; font-size: 0.92rem; text-decoration: none; transition: var(--sp-ease); }
.ac-nav a i { font-size: 1.05rem; color: var(--sp-muted); width: 1.25rem; text-align: center; }
.ac-nav a:hover { background: var(--sp-surface-2); color: var(--sp-ink); }
.ac-nav a.is-active { background: var(--sp-accent-50); color: var(--sp-accent-ink); font-weight: 700; }
.ac-nav a.is-active i { color: var(--sp-accent-ink); }
.ac-nav .ac-count { margin-left: auto; min-width: 1.5rem; padding: 0.05rem 0.45rem; border-radius: 999px; background: var(--sp-accent); color: var(--sp-on-accent); font-size: 0.72rem; font-weight: 700; text-align: center; }
/* On phones the side nav becomes a horizontal scroller. */
@media (max-width: 991.98px) {
    .ac-side { padding: 0.5rem; }
    .ac-me, .ac-nav__label { display: none; }
    .ac-nav { display: flex; overflow-x: auto; gap: 0.25rem; scrollbar-width: none; }
    .ac-nav::-webkit-scrollbar { display: none; }
    .ac-nav li { flex: none; }
    .ac-nav a { white-space: nowrap; padding: 0.5rem 0.8rem; }
}

/* 3. Cards ----------------------------------------------------------------- */
.ac-card { background: #fff; border: 1px solid var(--sp-border); border-radius: var(--sp-radius); box-shadow: var(--sp-shadow-sm); }
.ac-card__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--sp-border); }
.ac-card__head h2, .ac-card__head h3 { margin: 0; font-size: 1.05rem; font-weight: 700; letter-spacing: -0.01em; }
.ac-card__head p { margin: 0.15rem 0 0; font-size: 0.85rem; color: var(--sp-muted); }
.ac-card__body { padding: 1.25rem; }
.ac-card__foot { padding: 0.9rem 1.25rem; border-top: 1px solid var(--sp-border); background: var(--sp-surface); border-radius: 0 0 var(--sp-radius) var(--sp-radius); }
.ac-card--flush .ac-card__body { padding: 0; }

.ac-kv { display: grid; margin: 0; }
.ac-kv > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.65rem 0; border-bottom: 1px dashed var(--sp-border); }
.ac-kv > div:last-child { border-bottom: 0; }
.ac-kv dt { font-weight: 500; color: var(--sp-muted); font-size: 0.9rem; }
.ac-kv dd { margin: 0; font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.ac-kv .is-total dt, .ac-kv .is-total dd { color: var(--sp-ink); font-size: 1.05rem; font-weight: 800; }

.ac-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1rem; }
.ac-stat { display: flex; align-items: center; gap: 0.9rem; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--sp-border); border-radius: var(--sp-radius); box-shadow: var(--sp-shadow-sm); text-decoration: none; color: inherit; transition: var(--sp-ease); }
a.ac-stat:hover { transform: translateY(-2px); box-shadow: var(--sp-shadow); border-color: var(--sp-accent-100); }
.ac-stat__icon { flex: none; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 14px; background: var(--sp-accent-50); color: var(--sp-accent-ink); font-size: 1.25rem; }
.ac-stat__icon--green { background: #dcfce7; color: #166534; }
.ac-stat__icon--amber { background: #fef3c7; color: #92400e; }
.ac-stat__icon--violet { background: #ede9fe; color: #5b21b6; }
.ac-stat__icon--rose { background: #ffe4e6; color: #9f1239; }
.ac-stat strong { display: block; font-size: 1.35rem; font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; }
.ac-stat span { font-size: 0.8rem; color: var(--sp-muted); }

/* 4. Badges, chips --------------------------------------------------------- */
.ac-badge { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.2rem 0.65rem; border-radius: 999px; font-size: 0.75rem; font-weight: 700; background: var(--sp-surface-2); color: var(--sp-ink-2); white-space: nowrap; }
.ac-badge--ok { background: #dcfce7; color: #166534; }
.ac-badge--warn { background: #fef3c7; color: #92400e; }
.ac-badge--bad { background: #ffe4e6; color: #9f1239; }
.ac-badge--info { background: var(--sp-accent-50); color: var(--sp-accent-ink); }
.ac-badge--violet { background: #ede9fe; color: #5b21b6; }
.ac-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; margin-top: 1.5rem; }
.ac-chip { padding: 0.4rem 0.9rem; border: 1px solid var(--sp-border); border-radius: 999px; background: #fff; color: var(--sp-ink-2); font-size: 0.85rem; font-weight: 500; text-decoration: none; transition: var(--sp-ease); }
.ac-chip:hover { border-color: var(--sp-accent); color: var(--sp-accent-ink); background: var(--sp-accent-50); }
.ac-linkbtn { border: 0; background: none; padding: 0; color: var(--sp-accent-ink); font-weight: 600; cursor: pointer; text-decoration: none; }
.ac-linkbtn:hover { text-decoration: none; }
.ac-linkbtn--danger { color: #be123c; }
.ac-icon-btn { width: 36px; height: 36px; display: inline-grid; place-items: center; border: 1px solid var(--sp-border); border-radius: 10px; background: #fff; color: var(--sp-ink-2); cursor: pointer; transition: var(--sp-ease); }
.ac-icon-btn:hover { border-color: var(--sp-accent); color: var(--sp-accent-ink); background: var(--sp-accent-50); }
.ac-icon-btn--danger:hover { border-color: #fda4af; color: #be123c; background: #fff1f2; }

/* 5. Toolbars & tabs ------------------------------------------------------- */
.ac-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; padding: 0.9rem 1.25rem; }
.ac-search { position: relative; flex: 1 1 240px; min-width: 0; }
.ac-search i { position: absolute; left: 0.9rem; top: 50%; transform: translateY(-50%); color: var(--sp-muted); pointer-events: none; }
.ac-search input { width: 100%; min-height: 42px; padding: 0.55rem 0.9rem 0.55rem 2.5rem; border: 1px solid var(--sp-border-strong); border-radius: 999px; font: inherit; font-size: 0.92rem; outline: 0; transition: var(--sp-ease); }
.ac-search input:focus { border-color: var(--sp-accent); box-shadow: var(--sp-ring); }
.ac-select { min-height: 42px; padding: 0.5rem 2.2rem 0.5rem 0.9rem; border: 1px solid var(--sp-border-strong); border-radius: 999px; background: #fff; font: inherit; font-size: 0.9rem; color: var(--sp-ink-2); cursor: pointer; outline: 0; }
.ac-select:focus { border-color: var(--sp-accent); box-shadow: var(--sp-ring); }

.ac-tabs { display: flex; gap: 0.25rem; overflow-x: auto; padding: 0.3rem; background: var(--sp-surface-2); border-radius: 999px; scrollbar-width: none; width: fit-content; max-width: 100%; }
.ac-tabs::-webkit-scrollbar { display: none; }
.ac-tab { flex: none; padding: 0.45rem 1rem; border: 0; border-radius: 999px; background: transparent; color: var(--sp-ink-2); font-weight: 600; font-size: 0.88rem; cursor: pointer; text-decoration: none; transition: var(--sp-ease); white-space: nowrap; }
.ac-tab:hover { color: var(--sp-ink); }
.ac-tab.is-active, .ac-tab[aria-selected="true"] { background: #fff; color: var(--sp-ink); box-shadow: var(--sp-shadow-sm); }
.ac-tab .ac-count { margin-left: 0.35rem; font-size: 0.72rem; color: var(--sp-muted); }

/* 6. Tables & list rows ---------------------------------------------------- */
.ac-table-wrap { overflow-x: auto; }
.ac-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.ac-table th { padding: 0.75rem 1.25rem; text-align: left; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--sp-muted); background: var(--sp-surface); border-bottom: 1px solid var(--sp-border); white-space: nowrap; }
.ac-table td { padding: 0.9rem 1.25rem; border-bottom: 1px solid var(--sp-border); vertical-align: middle; }
.ac-table tbody tr:last-child td { border-bottom: 0; }
.ac-table tbody tr:hover td { background: #fbfdff; }
.ac-table .is-num { text-align: right; font-variant-numeric: tabular-nums; }

.ac-list { list-style: none; margin: 0; padding: 0; }
.ac-row { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--sp-border); }
.ac-row:last-child { border-bottom: 0; }
.ac-row__img { flex: none; width: 64px; height: 64px; border-radius: var(--sp-radius-sm); background: var(--sp-surface-2); overflow: hidden; display: block; }
.ac-row__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ac-row__body { flex: 1 1 auto; min-width: 0; }
.ac-row__title { margin: 0 0 0.15rem; font-size: 0.95rem; font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ac-row__title a { color: inherit; text-decoration: none; }
.ac-row__title a:hover { color: var(--sp-accent-ink); }
.ac-row__meta { display: flex; flex-wrap: wrap; gap: 0.25rem 0.9rem; font-size: 0.8rem; color: var(--sp-muted); }
.ac-row__side { flex: none; text-align: right; display: grid; gap: 0.35rem; justify-items: end; }
.ac-row__price { font-weight: 800; font-size: 1rem; letter-spacing: -0.01em; }
@media (max-width: 575.98px) {
    .ac-row { flex-wrap: wrap; align-items: flex-start; }
    .ac-row__side { width: 100%; flex-direction: row; display: flex; justify-content: space-between; align-items: center; }
}

/* 7. Forms ----------------------------------------------------------------- */
.ac-form { display: grid; gap: 1.1rem; }
.ac-form__grid { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.ac-field label, .ac-label { display: block; margin-bottom: 0.4rem; font-size: 0.85rem; font-weight: 600; color: var(--sp-ink-2); }
.ac-field .ac-req { color: #e11d48; }
.ac-input, .ac-textarea, .ac-field select { width: 100%; min-height: 46px; padding: 0.65rem 0.9rem; border: 1px solid var(--sp-border-strong); border-radius: var(--sp-radius-sm); background: #fff; font: inherit; font-size: 0.95rem; color: var(--sp-ink); outline: 0; transition: var(--sp-ease); }
.ac-textarea { min-height: 110px; resize: vertical; }
.ac-input:hover, .ac-textarea:hover, .ac-field select:hover { border-color: #94a3b8; }
.ac-input:focus, .ac-textarea:focus, .ac-field select:focus { border-color: var(--sp-accent); box-shadow: var(--sp-ring); }
.ac-input.is-invalid, .ac-textarea.is-invalid, .ac-field select.is-invalid { border-color: #e11d48; }
.ac-input[readonly], .ac-input:disabled { background: var(--sp-surface); color: var(--sp-muted); }
.ac-hint { margin: 0.35rem 0 0; font-size: 0.78rem; color: var(--sp-muted); }
.ac-error { margin: 0.35rem 0 0; font-size: 0.8rem; font-weight: 500; color: #e11d48; display: none; }
.ac-error.is-shown { display: block; }
.ac-check { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.9rem; cursor: pointer; margin: 0; }
.ac-check input { width: 1.1rem; height: 1.1rem; margin-top: 0.15rem; accent-color: #00b0e8; flex: none; }
.ac-switch { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.8rem 0; border-bottom: 1px dashed var(--sp-border); }
.ac-switch:last-child { border-bottom: 0; }
.ac-switch strong { display: block; font-size: 0.92rem; }
.ac-switch span { font-size: 0.8rem; color: var(--sp-muted); }
.ac-switch .form-check-input { width: 2.6rem; height: 1.4rem; cursor: pointer; margin: 0; flex: none; }
.ac-switch .form-check-input:checked { background-color: var(--sp-accent); border-color: var(--sp-accent); }

/* 8. Empty / notice / skeleton -------------------------------------------- */
.ac-empty { text-align: center; padding: 3.5rem 1.25rem; background: #fff; border: 1px dashed var(--sp-border-strong); border-radius: var(--sp-radius); }
.ac-empty__icon { width: 72px; height: 72px; margin: 0 auto 1rem; display: grid; place-items: center; border-radius: 22px; background: var(--sp-accent-50); color: var(--sp-accent-ink); font-size: 2rem; }
.ac-empty h2 { margin: 0 0 0.4rem; font-size: 1.25rem; font-weight: 700; }
.ac-empty p { margin: 0 auto 1.25rem; max-width: 42ch; color: var(--sp-muted); }
.ac-notice { display: flex; gap: 0.7rem; align-items: flex-start; padding: 0.85rem 1rem; border-radius: var(--sp-radius-sm); background: var(--sp-accent-50); color: var(--sp-accent-ink); font-size: 0.9rem; border: 1px solid var(--sp-accent-100); }
.ac-notice i { margin-top: 0.1rem; }
.ac-notice--warn { background: #fffbeb; color: #92400e; border-color: #fde68a; }
.ac-notice--bad { background: #fff1f2; color: #9f1239; border-color: #fecdd3; }
.ac-notice--ok { background: #f0fdf4; color: #166534; border-color: #bbf7d0; }
.ac-skel { background: linear-gradient(90deg, var(--sp-surface-2) 25%, #e8eef5 37%, var(--sp-surface-2) 63%); background-size: 400% 100%; animation: ac-shimmer 1.4s ease infinite; border-radius: 8px; min-height: 1rem; }
@keyframes ac-shimmer { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
@media (prefers-reduced-motion: reduce) { .ac-skel { animation: none; } }

/* 9. Stepper & timeline ---------------------------------------------------- */
.ac-stepper { display: flex; gap: 0.5rem; list-style: none; margin: 0 0 1.5rem; padding: 0; counter-reset: ac-step; }
.ac-stepper li { flex: 1; display: flex; flex-direction: column; gap: 0.4rem; font-size: 0.8rem; font-weight: 600; color: var(--sp-muted); }
.ac-stepper li::before { content: ""; height: 4px; border-radius: 999px; background: var(--sp-border); }
.ac-stepper li.is-done::before, .ac-stepper li.is-current::before { background: var(--sp-accent); }
.ac-stepper li.is-current { color: var(--sp-ink); }
.ac-stepper li.is-done { color: var(--sp-accent-ink); }

.ac-timeline { list-style: none; margin: 0; padding: 0 0 0 1.4rem; position: relative; }
.ac-timeline::before { content: ""; position: absolute; left: 0.45rem; top: 0.4rem; bottom: 0.4rem; width: 2px; background: var(--sp-border); }
.ac-timeline li { position: relative; padding: 0 0 1.1rem 0.9rem; font-size: 0.9rem; }
.ac-timeline li:last-child { padding-bottom: 0; }
.ac-timeline li::before { content: ""; position: absolute; left: -1.25rem; top: 0.35rem; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 2px solid var(--sp-border-strong); }
.ac-timeline li.is-done::before { background: var(--sp-accent); border-color: var(--sp-accent); }
.ac-timeline li.is-bad::before { background: #e11d48; border-color: #e11d48; }
.ac-timeline strong { display: block; }
.ac-timeline small { color: var(--sp-muted); }

/* 10. Summary -------------------------------------------------------------- */
.ac-split { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 992px) { .ac-split { grid-template-columns: minmax(0, 1fr) 360px; } }
.ac-summary { position: relative; }
@media (min-width: 992px) { .ac-summary { position: sticky; top: calc(var(--sp-nav-h, 72px) + 1rem); } }
.ac-secure { display: flex; align-items: center; gap: 0.5rem; font-size: 0.8rem; color: var(--sp-muted); }
.ac-secure i { color: #16a34a; }

/* 11. Product tiles & baskets --------------------------------------------- */
.ac-section { margin-top: 2.5rem; }
.ac-section__title { margin: 0 0 1rem; font-size: 1.2rem; font-weight: 800; letter-spacing: -0.02em; }
.ac-products { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 1rem; }
.ac-product { display: grid; gap: 0.5rem; padding: 0.6rem; background: #fff; border: 1px solid var(--sp-border); border-radius: var(--sp-radius); text-decoration: none; color: inherit; transition: var(--sp-ease); }
.ac-product:hover { transform: translateY(-3px); box-shadow: var(--sp-shadow); border-color: var(--sp-accent-100); }
.ac-product__img { aspect-ratio: 1 / 1; border-radius: var(--sp-radius-sm); overflow: hidden; background: var(--sp-surface-2); display: block; }
.ac-product__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ac-product__title { font-size: 0.88rem; font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ac-product__price { font-weight: 800; font-size: 0.95rem; }
.ac-product__price del { margin-left: 0.4rem; font-weight: 500; font-size: 0.8rem; color: var(--sp-muted); }

.ac-baskets { display: grid; gap: 1rem; }
.ac-basket { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 1rem 2rem; padding: 1.1rem 1.25rem; background: #fff; border: 1px solid var(--sp-border); border-radius: var(--sp-radius); box-shadow: var(--sp-shadow-sm); transition: var(--sp-ease); }
.ac-basket:hover { box-shadow: var(--sp-shadow); border-color: var(--sp-accent-100); }
.ac-basket__who { display: flex; align-items: center; gap: 0.9rem; min-width: 0; }
.ac-basket__who img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; background: var(--sp-surface-2); flex: none; }
.ac-basket__label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--sp-muted); }
.ac-basket__who h2 { margin: 0; font-size: 1.05rem; font-weight: 700; overflow-wrap: anywhere; }
.ac-basket__who h2 a { color: inherit; text-decoration: none; }
.ac-basket__who h2 a:hover { color: var(--sp-accent-ink); }
.ac-basket__meta { display: flex; gap: 2rem; margin: 0; }
.ac-basket__meta dt { font-size: 0.75rem; font-weight: 600; color: var(--sp-muted); }
.ac-basket__meta dd { margin: 0; font-size: 1.05rem; font-weight: 800; }
.ac-basket__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; justify-content: flex-end; }
@media (max-width: 767.98px) {
    .ac-basket { grid-template-columns: minmax(0, 1fr); }
    .ac-basket__actions { justify-content: stretch; }
    .ac-basket__actions .btn { flex: 1; }
}

/* 12. Pagination & modal --------------------------------------------------- */
.ac-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.35rem; padding: 1.25rem; }
.ac-pager a, .ac-pager span, .ac-pager button { min-width: 38px; height: 38px; padding: 0 0.6rem; display: inline-grid; place-items: center; border: 1px solid var(--sp-border); border-radius: 10px; background: #fff; color: var(--sp-ink-2); font-size: 0.88rem; font-weight: 600; text-decoration: none; cursor: pointer; transition: var(--sp-ease); }
.ac-pager a:hover, .ac-pager button:hover { border-color: var(--sp-accent); color: var(--sp-accent-ink); }
.ac-pager .is-active { background: var(--sp-accent); border-color: var(--sp-accent); color: var(--sp-on-accent); }
.ac-pager .is-disabled { opacity: 0.45; pointer-events: none; }

.ac-modal .modal-content { border: 0; border-radius: var(--sp-radius-lg); box-shadow: var(--sp-shadow-lg); }
.ac-modal .modal-header { border-bottom: 1px solid var(--sp-border); padding: 1.1rem 1.4rem; }
.ac-modal .modal-title { font-size: 1.1rem; font-weight: 700; }
.ac-modal .modal-body { padding: 1.4rem; }
.ac-modal .modal-footer { border-top: 1px solid var(--sp-border); padding: 0.9rem 1.4rem; gap: 0.5rem; }
