/* Customer Portal 1.0.0 — isolated responsive design system. */
.swcp-wrap {
  --swcp-page: #f4f7fb;
  --swcp-surface: #ffffff;
  --swcp-surface-raised: #ffffff;
  --swcp-soft: #edf2f9;
  --swcp-ink: #1b2638;
  --swcp-muted: #607086;
  --swcp-line: #dbe3ee;
  --swcp-primary: #3157d5;
  --swcp-primary-hover: #2446b8;
  --swcp-on-primary: #ffffff;
  --swcp-focus: #3157d566;
  --swcp-success-bg: #e8f7ed;
  --swcp-success-ink: #17613a;
  --swcp-warning-bg: #fff5dc;
  --swcp-warning-ink: #7a4b00;
  --swcp-danger-bg: #fff0ef;
  --swcp-danger-ink: #982d28;
  --swcp-shadow: 0 9px 28px rgb(20 35 60 / 7%);
  box-sizing: border-box;
  position: relative;
  isolation: isolate;
  width: min(100%, 1180px);
  margin: clamp(12px, 3vw, 34px) auto;
  padding: clamp(16px, 3vw, 32px);
  border: 1px solid var(--swcp-line);
  border-radius: 22px;
  background: var(--swcp-page);
  color: var(--swcp-ink);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.6;
  text-align: start;
  overflow-wrap: anywhere;
  color-scheme: light;
}
.swcp-wrap[data-theme="dark"] {
  --swcp-page: #111827;
  --swcp-surface: #1b2636;
  --swcp-surface-raised: #222f42;
  --swcp-soft: #29384d;
  --swcp-ink: #eff4fc;
  --swcp-muted: #bdc8d9;
  --swcp-line: #3c4b61;
  --swcp-primary: #a9bcff;
  --swcp-primary-hover: #d0d9ff;
  --swcp-on-primary: #142033;
  --swcp-focus: #9fb4ff85;
  --swcp-success-bg: #183c32;
  --swcp-success-ink: #c4f3dd;
  --swcp-warning-bg: #4b371b;
  --swcp-warning-ink: #ffe1a2;
  --swcp-danger-bg: #4a282b;
  --swcp-danger-ink: #ffd4d2;
  --swcp-shadow: 0 12px 32px rgb(0 0 0 / 22%);
  color-scheme: dark;
}
.swcp-wrap[data-theme="colorful"] {
  --swcp-page: #eef1ff;
  --swcp-surface: #fdfdff;
  --swcp-surface-raised: #f7f5ff;
  --swcp-soft: #e7e9ff;
  --swcp-ink: #202344;
  --swcp-muted: #5f668a;
  --swcp-line: #d2d7fb;
  --swcp-primary: #4b43c9;
  --swcp-primary-hover: #3630a7;
  --swcp-on-primary: #ffffff;
  --swcp-focus: #6159db66;
  --swcp-success-bg: #e1f8f0;
  --swcp-success-ink: #155b4b;
  --swcp-warning-bg: #fff2d6;
  --swcp-warning-ink: #805000;
  --swcp-danger-bg: #ffeded;
  --swcp-danger-ink: #942e37;
  --swcp-shadow: 0 12px 34px rgb(69 66 190 / 12%);
  color-scheme: light;
  border-color: #cdd2fb;
  border-top: 5px solid var(--swcp-primary);
  background-image: linear-gradient(135deg, rgb(79 70 229 / 5%), transparent 42%), linear-gradient(315deg, rgb(13 148 136 / 5%), transparent 38%);
}
.swcp-wrap *, .swcp-wrap *::before, .swcp-wrap *::after { box-sizing: border-box; }
.swcp-wrap :where(p, ul, ol) { margin-block: .65rem; }
.swcp-wrap a { color: var(--swcp-primary); text-underline-offset: 3px; overflow-wrap: anywhere; }
.swcp-wrap a:hover { color: var(--swcp-primary-hover); }
.swcp-wrap :where(h1,h2,h3,h4) { color: var(--swcp-ink); line-height: 1.3; overflow-wrap: anywhere; }
.swcp-brand { display: flex; align-items: center; justify-content: center; margin: 0 auto clamp(18px, 3vw, 28px); }
.swcp-brand img { display: block; width: auto; height: auto; max-width: min(100%, 250px); max-height: 100px; object-fit: contain; }
.swcp-page-title { color: var(--swcp-ink); line-height: 1.25; letter-spacing: normal; margin: 0 0 1.2rem; overflow-wrap: anywhere; }
.swcp-title-small { font-size: 1.15rem; }
.swcp-title-medium { font-size: 1.45rem; }
.swcp-title-large { font-size: clamp(1.65rem, 3.5vw, 2.25rem); }
.swcp-title-xlarge { font-size: clamp(1.9rem, 4vw, 2.65rem); }
.swcp-header { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; margin-bottom: 1.5rem; padding: 0 0 1.25rem; border-bottom: 1px solid var(--swcp-line); }
.swcp-header > div:first-child { min-width: 0; }
.swcp-header h1 { margin: .1rem 0 .5rem; }
.swcp-header p { color: var(--swcp-muted); margin: .4rem 0; }
.swcp-eyebrow { text-transform: uppercase; letter-spacing: .07em; font-size: .76rem; font-weight: 750; }
.swcp-header-actions { display: flex; align-items: flex-end; justify-content: flex-end; gap: .85rem; flex-wrap: wrap; min-width: 0; }
.swcp-theme-form { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; min-width: 150px; }
.swcp-theme-form label { display: block; font-size: .84rem; font-weight: 700; color: var(--swcp-muted); }
.swcp-theme-form select { width: auto; min-width: 130px; max-width: 180px; }
.swcp-logout { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .62rem 1rem; border: 1px solid var(--swcp-line); border-radius: 10px; text-decoration: none; white-space: nowrap; background: var(--swcp-surface); color: var(--swcp-ink) !important; font-weight: 650; }
.swcp-layout { display: grid; grid-template-columns: 225px minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.swcp-nav { display: flex; flex-direction: column; gap: .32rem; padding: .65rem; background: var(--swcp-surface); border: 1px solid var(--swcp-line); border-radius: 16px; position: sticky; top: 1rem; min-width: 0; }
.swcp-nav a { display: block; padding: .72rem .85rem; border-radius: 10px; text-decoration: none; color: var(--swcp-ink); font-weight: 600; white-space: nowrap; word-break: keep-all; overflow-wrap: normal; }
.swcp-nav a:hover, .swcp-nav a.is-active { background: var(--swcp-soft); color: var(--swcp-primary); }
.swcp-nav a.is-active { box-shadow: inset 3px 0 var(--swcp-primary); font-weight: 750; }
.swcp-wrap[dir="rtl"] .swcp-nav a.is-active { box-shadow: inset -3px 0 var(--swcp-primary); }
.swcp-main { min-width: 0; }
.swcp-card, .swcp-help { min-width: 0; background: var(--swcp-surface); border: 1px solid var(--swcp-line); border-radius: 18px; padding: clamp(18px, 3vw, 30px); margin: 0 0 1rem; box-shadow: var(--swcp-shadow); color: var(--swcp-ink); }
.swcp-card h1, .swcp-card h2, .swcp-card h3, .swcp-help h2 { color: var(--swcp-ink); margin-block-start: 0; letter-spacing: normal; }
.swcp-auth-card { width: min(100%, 560px); margin: 0 auto; padding: clamp(22px, 4vw, 42px); }
.swcp-auth-card .swcp-page-title { margin-bottom: 1.5rem; }
.swcp-auth-switch { padding-block-start: .25rem; color: var(--swcp-muted); }
.swcp-auth-switch a { display: inline-block; margin-inline-start: .25rem; font-weight: 750; }
.swcp-form { display: grid; gap: 1rem; max-width: 720px; min-width: 0; }
.swcp-form label { display: grid; gap: .42rem; font-weight: 650; font-size: .93rem; color: var(--swcp-ink); min-width: 0; }
.swcp-form input:not([type="checkbox"]):not([type="file"]), .swcp-form textarea, .swcp-form select, .swcp-theme-form select { width: 100%; min-width: 0; min-height: 46px; padding: .7rem .82rem; border: 1px solid var(--swcp-line); border-radius: 10px; background: var(--swcp-surface-raised); color: var(--swcp-ink); font: inherit; }
.swcp-form input::placeholder, .swcp-form textarea::placeholder { color: var(--swcp-muted); opacity: 1; }
.swcp-form textarea { resize: vertical; min-height: 120px; }
.swcp-form input[type="file"] { width: 100%; min-height: 44px; max-width: 100%; color: var(--swcp-ink); font: inherit; }
.swcp-form input[type="checkbox"] { inline-size: 1.1rem; block-size: 1.1rem; accent-color: var(--swcp-primary); }
.swcp-form :where(input,textarea,select):focus-visible, .swcp-theme-form select:focus-visible { outline: 3px solid var(--swcp-focus); outline-offset: 2px; border-color: var(--swcp-primary); }
.swcp-form button, .swcp-card button { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; max-width: 100%; border: 1px solid transparent; border-radius: 10px; background: var(--swcp-primary); color: var(--swcp-on-primary); padding: .76rem 1.2rem; min-height: 46px; font: inherit; font-weight: 750; line-height: 1.3; cursor: pointer; justify-self: start; overflow-wrap: anywhere; }
.swcp-form button:hover, .swcp-card button:hover { filter: brightness(1.07); }
.swcp-button-secondary { background: var(--swcp-soft) !important; color: var(--swcp-ink) !important; border-color: var(--swcp-line) !important; }
.swcp-button-danger { background: #b42318 !important; color: #ffffff !important; }
.swcp-check { display: flex !important; align-items: center; gap: .55rem !important; }
.swcp-notice { padding: .9rem 1rem; border-radius: 12px; background: var(--swcp-success-bg); border: 1px solid var(--swcp-line); color: var(--swcp-success-ink); margin: 0 0 1rem; overflow-wrap: anywhere; }
.swcp-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); gap: .85rem; }
.swcp-stat { display: grid; align-content: start; gap: .55rem; min-width: 0; padding: 1.15rem; border: 1px solid var(--swcp-line); border-radius: 14px; text-decoration: none; background: var(--swcp-surface-raised); color: var(--swcp-ink) !important; box-shadow: 0 4px 14px rgb(20 35 60 / 3%); }
.swcp-stat:hover { border-color: var(--swcp-primary); background: var(--swcp-soft); }
.swcp-stat strong { overflow-wrap: anywhere; }
.swcp-stat span { color: var(--swcp-muted); font-size: .9rem; }
.swcp-address, .swcp-notification, .swcp-message, .swcp-ticket, .swcp-order { border: 1px solid var(--swcp-line); border-radius: 13px; padding: 1rem; margin: .8rem 0; background: var(--swcp-surface-raised); overflow-wrap: anywhere; }
.swcp-ticket summary, .swcp-order summary { cursor: pointer; font-weight: 750; }
.swcp-ticket summary { line-height: 1.8; }
.swcp-ticket summary small { display: inline-block; color: var(--swcp-muted); font-weight: 500; }
.swcp-message { background: var(--swcp-soft); }
.swcp-message p { white-space: pre-wrap; overflow-wrap: anywhere; }
.swcp-message > strong { display: block; margin-block-end: .35rem; }
.swcp-pill { display: inline-block; max-width: 100%; padding: .22rem .6rem; background: var(--swcp-soft); color: var(--swcp-ink); border: 1px solid var(--swcp-line); border-radius: 99px; font-size: .78rem; font-weight: 750; vertical-align: middle; overflow-wrap: anywhere; }
.swcp-wrap details { margin-block: 1rem; }
.swcp-wrap table { display: block; width: 100%; max-width: 100%; border-collapse: collapse; overflow-x: auto; }
.swcp-wrap th, .swcp-wrap td { padding: .7rem; border-bottom: 1px solid var(--swcp-line); text-align: start; }
.swcp-wrap img, .swcp-wrap iframe { max-width: 100%; }
.swcp-wrap :where(button,a,summary,input,select,textarea):focus-visible { outline: 3px solid var(--swcp-focus); outline-offset: 3px; }
.swcp-wrap[dir="rtl"] .swcp-form button, .swcp-wrap[dir="rtl"] .swcp-card button { justify-self: start; }
.swcp-wrap[dir="rtl"] .swcp-auth-switch a { margin-inline-start: .35rem; }
.swcp-wrap[data-theme="dark"] .swcp-page-title { color: var(--swcp-ink); }
.swcp-wrap[data-theme="dark"] .swcp-logout { background: var(--swcp-surface-raised); }
.swcp-wrap[data-theme="colorful"] .swcp-nav { border-color: #cfd3fb; box-shadow: 0 6px 24px rgb(79 70 229 / 7%); }
.swcp-wrap[data-theme="colorful"] .swcp-card, .swcp-wrap[data-theme="colorful"] .swcp-help { border-inline-start: 3px solid var(--swcp-primary); }
.swcp-wrap[data-theme="colorful"] .swcp-form button, .swcp-wrap[data-theme="colorful"] .swcp-card button { box-shadow: 0 4px 12px rgb(75 67 201 / 16%); }
.swcp-wrap[data-theme="colorful"] .swcp-stat { border-top: 3px solid var(--swcp-primary); }
@media (max-width: 820px) {
  .swcp-wrap { border-radius: 16px; }
  .swcp-layout { grid-template-columns: minmax(0, 1fr); }
  .swcp-nav { position: static; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; scrollbar-width: thin; }
  .swcp-nav a { flex: 0 0 auto; }
  .swcp-nav a.is-active { box-shadow: inset 0 -3px var(--swcp-primary); }
  .swcp-wrap[dir="rtl"] .swcp-nav a.is-active { box-shadow: inset 0 -3px var(--swcp-primary); }
  .swcp-header { align-items: flex-start; }
}
@media (max-width: 560px) {
  .swcp-wrap { margin: 12px auto; padding: 14px; border-radius: 14px; font-size: 15px; }
  .swcp-header { flex-direction: column; gap: .85rem; }
  .swcp-header-actions { width: 100%; justify-content: flex-start; align-items: stretch; gap: .65rem; }
  .swcp-theme-form { flex: 1 1 140px; min-width: 0; }
  .swcp-theme-form select { width: 100%; max-width: none; }
  .swcp-logout { flex: 0 0 auto; }
  .swcp-stat-grid { grid-template-columns: minmax(0, 1fr); }
  .swcp-card, .swcp-help { padding: 16px; border-radius: 14px; }
  .swcp-auth-card { padding: 20px 16px; }
  .swcp-form button, .swcp-card button { min-height: 46px; justify-self: stretch; width: 100%; }
  .swcp-wrap th, .swcp-wrap td { padding: .55rem; }
}
@media (prefers-reduced-motion: reduce) {
  .swcp-wrap *, .swcp-wrap *::before, .swcp-wrap *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Frontend layout refinements — Customer Portal 1.0.0 */
.swcp-auth-links { display: grid; gap: .45rem; margin-block-start: .85rem; }
.swcp-auth-links p { margin: 0; }
.swcp-auth-switch { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .38rem; row-gap: .2rem; padding-block-start: .15rem; color: var(--swcp-ink); }
.swcp-auth-switch a, .swcp-auth-secondary a { font-weight: 750; }
.swcp-auth-secondary { color: var(--swcp-muted); }
.swcp-page-dashboard, .swcp-account-portal { min-width: 0; }
/* All authenticated account tabs share one centered wrapper. The maximum is 10%
   narrower than the previous 1296px account layout and scoped to plugin markup only. */
.swcp-wrap.swcp-account-portal { width: min(100%, 1166px); max-width: 1166px; min-width: 0; margin-inline: auto; }
.swcp-account-portal :where(.swcp-header, .swcp-layout, .swcp-nav, .swcp-main, .swcp-card, .swcp-help, .swcp-ticket-area, .swcp-ticket-history, .swcp-form, table, form, section, article, details) { min-width: 0; max-width: 100%; }
.swcp-account-portal .swcp-layout { grid-template-columns: minmax(0, 225px) minmax(0, 1fr); gap: clamp(16px, 2vw, 28px); width: 100%; }
.swcp-account-portal .swcp-main { width: 100%; overflow-wrap: anywhere; }
.swcp-account-portal .swcp-card, .swcp-account-portal .swcp-help { width: 100%; }
.swcp-account-portal .swcp-stat-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }
.swcp-account-portal :where(input, select, textarea, button) { max-width: 100%; }
.swcp-account-portal :where(th, td, p, a, strong, span, summary) { overflow-wrap: anywhere; }
.swcp-account-portal table { table-layout: fixed; }
@media (min-width: 1000px) {
  /* Shared desktop breakout for every account tab. Auth forms keep their compact, centered width. */
  .swcp-wrap.swcp-account-portal {
    width: min(calc(100vw - 48px), 1166px);
    max-width: 1166px;
    margin-left: calc(50% - 50vw + max(24px, (100vw - 1166px) / 2));
    margin-right: auto;
  }
  .swcp-account-portal .swcp-layout { grid-template-columns: minmax(200px, 240px) minmax(0, 1fr); gap: clamp(18px, 2vw, 32px); }
}
@media (max-width: 999px) {
  .swcp-wrap.swcp-account-portal { width: min(100%, 956px); max-width: 100%; margin-inline: auto; }
  .swcp-account-portal .swcp-layout { grid-template-columns: minmax(0, 1fr); }
  .swcp-account-portal .swcp-nav { position: static; display: flex; flex-direction: row; flex-wrap: nowrap; overflow-x: auto; white-space: nowrap; }
  .swcp-account-portal .swcp-nav a { flex: 0 0 auto; }
}
@media (max-width: 560px) {
  .swcp-wrap.swcp-account-portal { padding: 14px; border-radius: 14px; }
  .swcp-account-portal .swcp-nav { min-width: 0; max-width: 100%; }
  .swcp-account-portal .swcp-form { max-width: 100%; }
}
.swcp-ticket-area { overflow: hidden; }
.swcp-ticket-compose { padding: clamp(16px, 2.4vw, 26px); margin: 0 0 1.5rem; border: 1px solid var(--swcp-line); border-radius: 14px; background: var(--swcp-surface-raised); }
.swcp-ticket-compose h3, .swcp-ticket-history h3 { margin-block: 0 .55rem; }
.swcp-section-intro { color: var(--swcp-muted); margin-block: .25rem 1rem; }
.swcp-ticket-create-form, .swcp-ticket-reply-form { max-width: none; }
.swcp-ticket-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1rem; }
.swcp-ticket-create-form label:nth-of-type(3), .swcp-ticket-create-form label:nth-of-type(4) { grid-column: 1 / -1; }
.swcp-ticket-create-form button { grid-column: 1 / -1; justify-self: start; }
.swcp-section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-block-end: .8rem; }
.swcp-ticket-item { min-width: 0; border: 1px solid var(--swcp-line); border-radius: 14px; background: var(--swcp-surface-raised); padding: clamp(14px, 2vw, 20px); margin-block: .85rem; }
.swcp-ticket-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; min-width: 0; }
.swcp-ticket-title { min-width: 0; flex: 1 1 auto; }
.swcp-ticket-title h4 { margin: 0; line-height: 1.45; color: var(--swcp-ink); overflow-wrap: anywhere; }
.swcp-ticket-meta { display: flex; flex-wrap: wrap; gap: .3rem 1rem; color: var(--swcp-muted); font-size: .88rem; margin-block: .45rem 0; }
.swcp-ticket-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .7rem; }
.swcp-ticket-open-link { display: inline-flex; min-height: 38px; align-items: center; padding: .4rem .72rem; border: 1px solid var(--swcp-line); border-radius: 9px; text-decoration: none; font-weight: 700; }
.swcp-ticket details, .swcp-ticket-item details { margin-block: .8rem 0; }
.swcp-ticket-item details > summary { cursor: pointer; padding: .7rem .8rem; border-radius: 9px; background: var(--swcp-soft); font-weight: 750; color: var(--swcp-ink); }
.swcp-status-new { background: var(--swcp-warning-bg); color: var(--swcp-warning-ink); }
.swcp-status-open, .swcp-status-awaiting_support { background: var(--swcp-soft); color: var(--swcp-primary); }
.swcp-status-awaiting_customer { background: #fff4d6; color: #765000; }
.swcp-status-answered, .swcp-status-resolved { background: var(--swcp-success-bg); color: var(--swcp-success-ink); }
.swcp-status-closed { background: var(--swcp-soft); color: var(--swcp-muted); }
.swcp-empty-state { border: 1px dashed var(--swcp-line); border-radius: 12px; padding: 1.2rem; background: var(--swcp-surface-raised); }
.swcp-empty-state p { margin-block-end: 0; color: var(--swcp-muted); }
.swcp-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .8rem; padding-block: 1rem .2rem; }
.swcp-pagination a { display: inline-flex; align-items: center; min-height: 42px; padding: .45rem .8rem; border: 1px solid var(--swcp-line); border-radius: 9px; text-decoration: none; }
.swcp-pagination span { color: var(--swcp-muted); }
.swcp-wrap .swcp-button-secondary { color: var(--swcp-ink); background: var(--swcp-soft); }
@media (max-width: 720px) {
  .swcp-ticket-create-form { grid-template-columns: minmax(0, 1fr); }
  .swcp-ticket-create-form label:nth-of-type(3), .swcp-ticket-create-form label:nth-of-type(4), .swcp-ticket-create-form button { grid-column: auto; }
  .swcp-ticket-heading { flex-direction: column; }
  .swcp-ticket-actions { justify-content: flex-start; width: 100%; }
  .swcp-ticket-create-form button, .swcp-ticket-reply-form button { width: 100%; }
}
@media (max-width: 480px) {
  .swcp-auth-links { gap: .7rem; }
  .swcp-ticket-actions { align-items: flex-start; }
  .swcp-ticket-meta { display: grid; gap: .25rem; }
  .swcp-ticket-open-link { width: 100%; justify-content: center; }
}
.swcp-wrap[data-theme="dark"] .swcp-status-awaiting_customer { background: var(--swcp-warning-bg); color: var(--swcp-warning-ink); }

/* Additional width guards for long customer data and theme-provided content wrappers. */
.swcp-wrap, .swcp-wrap :where(*, *::before, *::after) { box-sizing: border-box; }
.swcp-wrap { min-width: 0; max-width: calc(100vw - 16px); }
.swcp-wrap :where(form, section, article, main, nav, header, div, fieldset, table, figure, details) { min-width: 0; }
.swcp-wrap :where(input, select, textarea, button, img, iframe) { max-width: 100%; }
.swcp-wrap :where(pre, code, a, td, th, p, li, summary) { overflow-wrap: anywhere; }
.swcp-wrap .swcp-stat-grid > *, .swcp-wrap .swcp-layout > *, .swcp-wrap .swcp-header > * { min-width: 0; }
.swcp-wrap .swcp-form input:not([type="checkbox"]):not([type="file"]), .swcp-wrap .swcp-form textarea, .swcp-wrap .swcp-form select { max-width: 100%; }

/* Password controls, secure account verification, and AJAX states. */
.swcp-wrap .swcp-password-field { display: flex; align-items: stretch; gap: .35rem; width: 100%; min-width: 0; }
.swcp-wrap .swcp-password-field input { flex: 1 1 auto; min-width: 0; width: 100%; }
.swcp-wrap .swcp-password-toggle { display: inline-flex; flex: 0 0 44px; align-items: center; justify-content: center; width: 44px; min-width: 44px; min-height: 44px; padding: .55rem; border: 1px solid var(--swcp-line); border-radius: 9px; background: var(--swcp-surface-raised); color: var(--swcp-ink); cursor: pointer; }
.swcp-wrap .swcp-password-toggle svg { width: 21px; height: 21px; }
.swcp-password-strength { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-block: -.35rem .65rem; color: var(--swcp-muted); font-size: .88rem; }
.swcp-strength-meter { display: block; flex: 1 1 100px; height: 6px; min-width: 70px; overflow: hidden; border-radius: 100px; background: var(--swcp-line); }
.swcp-strength-meter > span { display: block; height: 100%; width: 0; background: var(--swcp-warning-ink); transition: width .15s ease; }
.swcp-password-strength.is-strong .swcp-strength-meter > span { background: var(--swcp-success-ink); }
.swcp-password-match { margin-block: -.2rem .5rem; color: var(--swcp-muted); font-size: .88rem; }
.swcp-password-match.is-error { color: var(--swcp-danger-ink); }
.swcp-password-match.is-success { color: var(--swcp-success-ink); }
.swcp-password-guidance { margin-block: -.25rem .85rem; color: var(--swcp-muted); font-size: .88rem; line-height: 1.6; }
.swcp-notice-error { border-color: var(--swcp-danger-ink); }
.swcp-verified-channel { padding: .6rem .8rem; border-radius: 8px; color: var(--swcp-success-ink); background: var(--swcp-success-bg); }
.swcp-content-region { min-width: 0; width: 100%; }
.swcp-ajax-status { margin: 0; min-height: 0; color: var(--swcp-muted); font-size: .9rem; }
.swcp-ajax-status:empty { display: none; }
.swcp-is-loading .swcp-main { opacity: .58; pointer-events: none; }
.swcp-auth-switch { line-height: 1.65; }
@media (max-width: 520px) {
  .swcp-wrap .swcp-password-field { gap: .25rem; }
  .swcp-wrap .swcp-password-toggle { flex-basis: 42px; width: 42px; min-width: 42px; }
}
/* The plugin does not manage theme header/footer or page-template selection. */
@media (max-width: 560px) {
  .swcp-wrap.swcp-account-portal { font-size: 15px; line-height: 1.55; }
  .swcp-account-portal h1, .swcp-account-portal .swcp-header h1 { font-size: 26px; font-weight: 700; line-height: 1.25; margin-block: 0 .7rem; overflow-wrap: anywhere; }
  .swcp-account-portal h2 { font-size: 21px; font-weight: 700; line-height: 1.35; margin-block: 0 .7rem; }
  .swcp-account-portal h3 { font-size: 18px; font-weight: 700; line-height: 1.4; }
  .swcp-account-portal h4 { font-size: 17px; font-weight: 700; line-height: 1.4; }
  .swcp-account-portal p, .swcp-account-portal li { font-size: 15px; line-height: 1.55; }
  .swcp-account-portal label, .swcp-account-portal .swcp-form label { font-size: 14.5px; line-height: 1.45; }
  .swcp-account-portal input, .swcp-account-portal select, .swcp-account-portal textarea { font-size: 15px; line-height: 1.45; }
  .swcp-account-portal .swcp-nav a { font-size: 14px; line-height: 1.4; padding: .58rem .72rem; }
  .swcp-account-portal table { font-size: 14px; line-height: 1.45; }
  .swcp-account-portal th, .swcp-account-portal td { padding: .45rem; }
  .swcp-account-portal .swcp-ticket-meta, .swcp-account-portal small, .swcp-account-portal .swcp-pill { font-size: 13px; line-height: 1.45; }
  .swcp-account-portal .swcp-form button, .swcp-account-portal .swcp-card button, .swcp-account-portal .swcp-logout { font-size: 14.5px; line-height: 1.35; min-height: 44px; }
}

/* Mobile portal navigation is stable: no transform, scaling, animation, or font-weight
   changes on hover/tap/focus/active. Only the surface and foreground colors may change.
   Kept inside Customer Portal Pro account markup to avoid host/admin navigation styles. */
@media (max-width: 999px) {
  .swcp-wrap.swcp-account-portal .swcp-nav a,
  .swcp-wrap.swcp-account-portal .swcp-nav a:hover,
  .swcp-wrap.swcp-account-portal .swcp-nav a:focus,
  .swcp-wrap.swcp-account-portal .swcp-nav a:focus-visible,
  .swcp-wrap.swcp-account-portal .swcp-nav a:active,
  .swcp-wrap.swcp-account-portal .swcp-nav a.is-active {
    transform: none !important;
    scale: none !important;
    translate: none !important;
    animation: none !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    transition: background-color .12s ease, color .12s ease !important;
  }
  .swcp-wrap.swcp-account-portal .swcp-nav a:hover,
  .swcp-wrap.swcp-account-portal .swcp-nav a:focus,
  .swcp-wrap.swcp-account-portal .swcp-nav a:focus-visible,
  .swcp-wrap.swcp-account-portal .swcp-nav a:active,
  .swcp-wrap.swcp-account-portal .swcp-nav a.is-active {
    background-color: var(--swcp-soft) !important;
    color: var(--swcp-primary) !important;
  }
}



/* Dark-mode heading contrast fix (1.0.0). Keep the rule scoped to the portal and
   deliberately more specific than host-theme heading rules, without affecting
   Light or Colorful themes. */
.swcp-wrap[data-theme="dark"] h1,
.swcp-wrap[data-theme="dark"] h2,
.swcp-wrap[data-theme="dark"] h3,
.swcp-wrap[data-theme="dark"] h4,
.swcp-wrap[data-theme="dark"] h5,
.swcp-wrap[data-theme="dark"] h6,
.swcp-wrap[data-theme="dark"] [role="heading"],
.swcp-wrap[data-theme="dark"] .swcp-page-title,
.swcp-wrap[data-theme="dark"] .swcp-card h1,
.swcp-wrap[data-theme="dark"] .swcp-card h2,
.swcp-wrap[data-theme="dark"] .swcp-card h3,
.swcp-wrap[data-theme="dark"] .swcp-card h4,
.swcp-wrap[data-theme="dark"] .swcp-card h5,
.swcp-wrap[data-theme="dark"] .swcp-card h6,
.swcp-wrap[data-theme="dark"] .swcp-help h1,
.swcp-wrap[data-theme="dark"] .swcp-help h2,
.swcp-wrap[data-theme="dark"] .swcp-help h3,
.swcp-wrap[data-theme="dark"] .swcp-help h4,
.swcp-wrap[data-theme="dark"] .swcp-help h5,
.swcp-wrap[data-theme="dark"] .swcp-help h6,
.swcp-wrap[data-theme="dark"] .swcp-modal h1,
.swcp-wrap[data-theme="dark"] .swcp-modal h2,
.swcp-wrap[data-theme="dark"] .swcp-modal h3,
.swcp-wrap[data-theme="dark"] .swcp-modal h4,
.swcp-wrap[data-theme="dark"] .swcp-modal h5,
.swcp-wrap[data-theme="dark"] .swcp-modal h6 {
  color: var(--swcp-ink, #eff4fc) !important;
}


/* Customer dashboard UX: persistent, accessible notification bell and inbox. */
.swcp-account-portal .swcp-header-actions { align-items: center; }
.swcp-notification-menu { position: relative; display: inline-flex; flex: 0 0 auto; margin: 0; }
.swcp-notification-trigger { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0; border: 1px solid var(--swcp-line); border-radius: 13px; background: var(--swcp-surface); color: var(--swcp-ink); cursor: pointer; list-style: none; transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.swcp-notification-trigger::-webkit-details-marker { display: none; }
.swcp-notification-trigger::marker { content: ''; }
.swcp-notification-trigger:hover, .swcp-notification-menu[open] > .swcp-notification-trigger { border-color: var(--swcp-primary); background: var(--swcp-soft); }
.swcp-notification-trigger svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.swcp-notification-count { position: absolute; inset-block-start: -6px; inset-inline-end: -6px; display: inline-flex; align-items: center; justify-content: center; min-width: 21px; height: 21px; padding: 0 5px; border: 2px solid var(--swcp-surface); border-radius: 99px; background: #d92d20; color: #fff; font-size: 11px; line-height: 1; font-weight: 800; box-shadow: 0 2px 5px rgb(0 0 0 / 12%); }
.swcp-notification-popover { position: absolute; z-index: 10000; top: calc(100% + 10px); inset-inline-end: 0; width: min(360px, calc(100vw - 36px)); max-height: min(70vh, 520px); overflow: auto; padding: 10px; border: 1px solid var(--swcp-line); border-radius: 16px; background: var(--swcp-surface); color: var(--swcp-ink); box-shadow: 0 18px 48px rgb(12 24 48 / 18%); white-space: normal; }
.swcp-notification-popover-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 8px 12px; border-bottom: 1px solid var(--swcp-line); }
.swcp-notification-popover-head strong { font-size: 1rem; }
.swcp-notification-popover-head > span { color: var(--swcp-muted); font-size: .82rem; }
.swcp-notification-preview { display: grid; gap: 5px; padding: 12px 10px; margin-block-start: 4px; border-radius: 10px; color: var(--swcp-ink) !important; text-decoration: none; }
.swcp-notification-preview:hover, .swcp-notification-preview:focus-visible { background: var(--swcp-soft); }
.swcp-notification-preview.is-unread { background: var(--swcp-soft); }
.swcp-notification-preview-title { font-weight: 750; overflow-wrap: anywhere; }
.swcp-notification-preview.is-unread .swcp-notification-preview-title::before { content: ''; display: inline-block; width: 7px; height: 7px; margin-inline-end: 7px; vertical-align: middle; border-radius: 50%; background: var(--swcp-primary); }
.swcp-notification-preview-body { color: var(--swcp-muted); font-size: .87rem; line-height: 1.5; }
.swcp-notification-preview time { color: var(--swcp-muted); font-size: .76rem; }
.swcp-notification-all { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 10px 8px; margin-block-start: 5px; border-top: 1px solid var(--swcp-line); font-weight: 750; text-decoration: none; }
.swcp-notification-empty { padding: 14px 10px; color: var(--swcp-muted); text-align: center; }
.swcp-notifications-page { scroll-margin-top: 24px; }
.swcp-notifications-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-block-end: 18px; }
.swcp-notifications-heading h2 { margin-block-end: 5px; }
.swcp-notifications-heading p { color: var(--swcp-muted); margin-block: 0; }
.swcp-notifications-total, .swcp-notification-new { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 99px; background: var(--swcp-soft); color: var(--swcp-primary); font-size: .78rem; font-weight: 800; }
.swcp-account-portal .swcp-notification { padding: 18px; margin-block: 12px; transition: border-color .15s ease, background .15s ease; scroll-margin-top: 24px; }
.swcp-account-portal .swcp-notification.is-unread { border-inline-start: 4px solid var(--swcp-primary); background: var(--swcp-soft); }
.swcp-notification-item-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.swcp-notification-item-heading strong { font-size: 1.03rem; line-height: 1.5; }
.swcp-notification-item-footer { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding-block-start: 4px; color: var(--swcp-muted); font-size: .82rem; }
.swcp-notification-item-footer time { margin-inline-end: auto; }
.swcp-notification-item-footer a { font-weight: 700; }
.swcp-notifications-page > .swcp-form { margin-block: 0 18px; }
.swcp-notification-empty-state { display: grid; justify-items: center; padding: clamp(22px, 5vw, 46px) 16px; text-align: center; border: 1px dashed var(--swcp-line); border-radius: 14px; background: var(--swcp-surface-raised); }
.swcp-notification-empty-state h3 { margin: 12px 0 3px; }
.swcp-notification-empty-state p { margin: 0; color: var(--swcp-muted); }
.swcp-notification-empty-icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--swcp-soft); color: var(--swcp-primary); font-size: 27px; }
@media (max-width: 560px) {
  .swcp-account-portal .swcp-header-actions { align-items: center; }
  .swcp-notification-menu { order: -1; }
  .swcp-notification-popover { position: fixed; top: auto; inset-block-start: 125px; inset-inline: 12px; width: auto; max-height: calc(100vh - 150px); }
  .swcp-notifications-heading { flex-direction: column; }
  .swcp-notifications-total { align-self: flex-start; }
}

.swcp-account-portal .swcp-stat.has-unread { border-color: var(--swcp-primary); background: var(--swcp-soft); }
.swcp-account-portal .swcp-stat.has-unread span { color: var(--swcp-primary); font-weight: 750; }


/* Expanded WooCommerce order details and digital delivery. */
.swcp-orders-page > .swcp-orders-heading { margin-block-end: 18px; }
.swcp-orders-heading h2 { margin-block-end: 5px; }
.swcp-orders-heading p { margin: 0; color: var(--swcp-muted); }
.swcp-order { padding: 0; overflow: hidden; }
.swcp-order > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px; list-style: none; }
.swcp-order > summary::-webkit-details-marker { display: none; }
.swcp-order > summary::marker { content: ''; }
.swcp-order-summary-main, .swcp-order-summary-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-width: 0; }
.swcp-order-summary-main > strong { font-size: 1.06rem; }
.swcp-order-status { display: inline-flex; padding: 4px 9px; border-radius: 999px; background: var(--swcp-soft); color: var(--swcp-ink); font-size: .78rem; font-weight: 750; }
.swcp-order-summary-meta { justify-content: flex-end; color: var(--swcp-muted); font-size: .84rem; }
.swcp-order-summary-total { color: var(--swcp-ink); font-size: 1rem; }
.swcp-order-view-label { color: var(--swcp-primary); font-weight: 750; }
.swcp-order > summary:hover, .swcp-order[open] > summary { background: var(--swcp-soft); }
.swcp-order-details { padding: 0 18px 18px; border-block-start: 1px solid var(--swcp-line); }
.swcp-order-details > h3 { margin-block: 18px 12px; font-size: 1.15rem; }
.swcp-order-facts { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,170px),1fr)); gap: 10px; margin-block-end: 20px; }
.swcp-order-facts > div { display: grid; gap: 4px; padding: 12px; background: var(--swcp-surface-raised); border: 1px solid var(--swcp-line); border-radius: 10px; min-width: 0; }
.swcp-order-facts span { color: var(--swcp-muted); font-size: .82rem; }
.swcp-order-facts strong { overflow-wrap: anywhere; }
.swcp-order-block { margin-block: 20px; min-width: 0; }
.swcp-order-block h4 { margin: 0 0 10px; font-size: 1rem; }
.swcp-order-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--swcp-line); border-radius: 10px; }
.swcp-wrap .swcp-order-items-table { display: table; min-width: 560px; margin: 0; border: 0; }
.swcp-order-items-table th { background: var(--swcp-soft); font-size: .82rem; }
.swcp-order-items-table td { vertical-align: top; }
.swcp-order-items-table th:last-child, .swcp-order-items-table td:last-child { text-align: end; white-space: nowrap; }
.swcp-order-item-meta { display: grid; gap: 4px; margin: 7px 0 0; font-size: .82rem; }
.swcp-order-item-meta > div, .swcp-order-license dl > div { display: flex; flex-wrap: wrap; gap: 5px 8px; }
.swcp-order-item-meta dt, .swcp-order-license dt { color: var(--swcp-muted); }
.swcp-order-item-meta dd, .swcp-order-license dd { margin: 0; overflow-wrap: anywhere; }
.swcp-order-muted { color: var(--swcp-muted); }
.swcp-order-license { padding: 14px; border: 1px solid var(--swcp-line); border-inline-start: 4px solid var(--swcp-primary); border-radius: 12px; background: var(--swcp-soft); }
.swcp-order-license-group + .swcp-order-license-group { margin-block-start: 14px; padding-block-start: 12px; border-block-start: 1px solid var(--swcp-line); }
.swcp-order-license-group > strong { display: block; margin-block-end: 8px; }
.swcp-order-license dl { display: grid; gap: 8px; margin: 0; }
.swcp-order-license dd code { display: inline-block; max-width: 100%; padding: 5px 8px; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--swcp-ink); background: var(--swcp-surface-raised); border: 1px solid var(--swcp-line); border-radius: 7px; font-size: .88rem; }
.swcp-order-downloads ul { display: grid; gap: 8px; list-style: none; padding: 0; margin: 0; }
.swcp-order-downloads li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 12px; background: var(--swcp-surface-raised); border: 1px solid var(--swcp-line); border-radius: 10px; }
.swcp-order-downloads li small { color: var(--swcp-muted); font-size: .8rem; }
.swcp-order-download-link { display: inline-flex; gap: 6px; align-items: center; font-weight: 750; text-decoration: none; overflow-wrap: anywhere; }
.swcp-order-address-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap: 12px; }
.swcp-order-address-grid .swcp-order-block { padding: 13px; border: 1px solid var(--swcp-line); border-radius: 10px; background: var(--swcp-surface-raised); }
.swcp-order-address-grid address { font-style: normal; line-height: 1.8; }
.swcp-order-address-grid p { margin: 6px 0 0; overflow-wrap: anywhere; }
.swcp-order-customer-note { white-space: pre-wrap; overflow-wrap: anywhere; }
.swcp-order-empty { padding: 25px 16px; border: 1px dashed var(--swcp-line); border-radius: 12px; text-align: center; }
.swcp-order-empty h3 { margin: 0 0 5px; }
.swcp-order-empty p { margin: 0; color: var(--swcp-muted); }
@media (max-width: 620px) {
  .swcp-order > summary { align-items: flex-start; flex-direction: column; gap: 8px; }
  .swcp-order-summary-meta { justify-content: flex-start; }
  .swcp-order-details { padding-inline: 12px; }
}

.swcp-order-totals { width: min(100%, 430px); margin-inline-start: auto; padding: 14px; border: 1px solid var(--swcp-line); border-radius: 11px; background: var(--swcp-surface-raised); }
.swcp-order-totals h4 { margin: 0 0 8px; }
.swcp-order-totals dl { display: grid; gap: 8px; margin: 0; }
.swcp-order-totals dl > div { display: flex; justify-content: space-between; gap: 16px; }
.swcp-order-totals dt { color: var(--swcp-muted); }
.swcp-order-totals dd { margin: 0; font-weight: 650; text-align: end; }
.swcp-order-totals .swcp-order-grand-total { border-block-start: 1px solid var(--swcp-line); margin-block-start: 3px; padding-block-start: 10px; font-weight: 800; }
.swcp-order-totals .swcp-order-grand-total dt, .swcp-order-totals .swcp-order-grand-total dd { color: var(--swcp-ink); font-weight: 800; }

/* 1.1.5 visual refresh inspired by the supplied customer-panel reference. */
.swcp-wrap {
  --swcp-page:#f2f4f7; --swcp-surface:#fff; --swcp-surface-raised:#fff;
  --swcp-soft:#f3f1f7; --swcp-ink:#33264f; --swcp-muted:#8585a5;
  --swcp-line:#eceaf1; --swcp-primary:#432d6d; --swcp-primary-hover:#352153;
  --swcp-on-primary:#fff; --swcp-focus:#8d78b866; --swcp-shadow:0 12px 30px rgba(35,25,58,.055);
  width:min(100%,1400px); max-width:1400px; padding:0; margin:24px auto;
  border:0; border-radius:0; background:var(--swcp-page); color:var(--swcp-ink);
}
.swcp-wrap[data-theme="dark"] { --swcp-page:#171421;--swcp-surface:#242031;--swcp-surface-raised:#2b2639;--swcp-soft:#352e45;--swcp-ink:#f4f0fb;--swcp-muted:#b7aec9;--swcp-line:#40384f;--swcp-primary:#8d75bd;--swcp-primary-hover:#a18bce;--swcp-on-primary:#fff; }
.swcp-wrap[data-theme="colorful"] { --swcp-page:#f2f4f7;--swcp-surface:#fff;--swcp-surface-raised:#fff;--swcp-soft:#f3f1f7;--swcp-ink:#33264f;--swcp-muted:#8585a5;--swcp-line:#eceaf1;--swcp-primary:#432d6d;--swcp-primary-hover:#352153;--swcp-on-primary:#fff; }
.swcp-wrap.swcp-account-portal { width:min(calc(100% - 32px),1400px); max-width:1400px; margin:24px auto; }
.swcp-account-portal .swcp-header { min-height:82px; margin:0 0 24px; padding:18px 28px; background:#432d6d; color:#fff; border:0; border-radius:16px; box-shadow:0 8px 24px rgba(40,25,65,.13); }
.swcp-account-portal .swcp-header h1,.swcp-account-portal .swcp-header p,.swcp-account-portal .swcp-header .swcp-eyebrow { color:#fff; }
.swcp-account-portal .swcp-header p { opacity:.82; }
.swcp-account-portal .swcp-logout { color:#432d6d!important; background:#fff; border:0; border-radius:999px; }
.swcp-account-portal .swcp-layout { grid-template-columns:minmax(250px,280px) minmax(0,1fr); gap:24px; align-items:stretch; }
.swcp-account-portal .swcp-nav { position:sticky; top:18px; display:flex; flex-direction:column; gap:5px; padding:18px 12px; border:0; border-radius:20px; background:#fff; box-shadow:var(--swcp-shadow); }
.swcp-profile-card { display:grid; justify-items:center; gap:10px; padding:8px 8px 22px; margin:0 0 10px; text-align:center; border-bottom:1px solid #f0eef4; }
.swcp-profile-avatar { width:88px!important; height:88px!important; border-radius:20px!important; object-fit:cover; background:#f1f1f5; padding:5px; }
.swcp-profile-card strong { color:#33264f; font-size:1rem; }
.swcp-profile-card span { max-width:100%; color:#8585a5; font-size:.78rem; overflow-wrap:anywhere; }
.swcp-account-portal .swcp-nav a { display:flex; align-items:center; min-height:46px; padding:10px 14px; border-radius:999px; color:#514b5d; font-weight:600; transition:background .18s ease,color .18s ease; }
.swcp-account-portal .swcp-nav a:hover { background:#f4f1f8; color:#432d6d; }
.swcp-account-portal .swcp-nav a.is-active { background:#432d6d; color:#fff; box-shadow:none; }
.swcp-account-portal .swcp-main { min-width:0; }
.swcp-account-portal .swcp-card,.swcp-account-portal .swcp-help { padding:clamp(20px,2.5vw,30px); margin-bottom:20px; border:0; border-radius:16px; background:#fff; box-shadow:var(--swcp-shadow); }
.swcp-account-portal .swcp-card h1,.swcp-account-portal .swcp-card h2,.swcp-account-portal .swcp-card h3 { color:#39295a; }
.swcp-account-portal .swcp-stat-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr)); gap:14px; }
.swcp-account-portal .swcp-stat { min-height:118px; padding:20px; border:1px solid #efedf3; border-radius:14px; background:#fff; box-shadow:0 5px 16px rgba(35,25,58,.035); }
.swcp-account-portal .swcp-stat:hover { border-color:#b9a9d2; background:#faf9fc; }
.swcp-account-portal .swcp-stat strong { color:#39295a; }
.swcp-account-portal .swcp-stat span { color:#8585a5; }
.swcp-account-portal .swcp-notification,.swcp-account-portal .swcp-order,.swcp-account-portal .swcp-ticket-item { border-color:#eeebf2; border-radius:13px; background:#fff; }
.swcp-account-portal .swcp-form input:not([type=checkbox]):not([type=file]),.swcp-account-portal .swcp-form textarea,.swcp-account-portal .swcp-form select { border:1px solid #e5e8f0; border-radius:10px; background:#fff; }
.swcp-account-portal .swcp-form button,.swcp-account-portal .swcp-card button { background:#432d6d; color:#fff; border-radius:10px; }

/* Login / registration screen: compact white card with the purple wave header. */
.swcp-wrap.swcp-page-login,.swcp-wrap.swcp-page-register,.swcp-wrap.swcp-page-forgot,.swcp-wrap.swcp-page-reset { width:min(calc(100% - 28px),560px); margin:42px auto; padding:0; background:transparent; border:0; }
.swcp-wrap.swcp-page-login .swcp-brand,.swcp-wrap.swcp-page-register .swcp-brand,.swcp-wrap.swcp-page-forgot .swcp-brand,.swcp-wrap.swcp-page-reset .swcp-brand { margin-bottom:16px; }
.swcp-wrap .swcp-auth-card { position:relative; overflow:hidden; width:100%; padding:34px 26px 28px; border:0; border-radius:15px; background:#fff; box-shadow:0 14px 36px rgba(35,25,58,.07); }
.swcp-wrap .swcp-auth-card > .swcp-page-title { position:relative; z-index:2; display:flex; align-items:center; justify-content:center; min-height:112px; margin:-34px -26px 36px; padding:20px 24px 40px; color:#fff; text-align:center!important; font-size:1.35rem; }
.swcp-wrap .swcp-auth-card > .wave.-three { position:absolute; z-index:1; top:0; left:-8%; width:116%; height:145px; background:#39245e; border-radius:0 0 50% 50% / 0 0 78% 78%; pointer-events:none; }
.swcp-wrap .swcp-auth-card > form { position:relative; z-index:2; }
.swcp-wrap .swcp-auth-card > form label { display:grid; gap:8px; margin-block:14px; color:#8585a5; font-size:.9rem; font-weight:650; }
.swcp-wrap .swcp-auth-card > form input:not([type=hidden]) { min-height:58px; padding:14px 16px; border:2px solid #e7eaf2; border-radius:12px; background:#fff; color:#39295a; }
.swcp-wrap .swcp-auth-card .swcp-password-field input { padding-inline-end:48px; }
.swcp-wrap .swcp-auth-card > form button[type=submit] { width:100%; min-height:48px; justify-self:stretch; margin-top:8px; border-radius:11px; background:#39245e; color:#fff; }
.swcp-wrap .swcp-auth-card .swcp-math-captcha { display:grid; grid-template-columns:1fr minmax(100px,150px); align-items:center; gap:12px; padding:12px; border-radius:11px; background:#f7f6fa; color:#51466a; }
.swcp-wrap .swcp-auth-card .swcp-math-captcha input { min-height:46px!important; }
.swcp-wrap .swcp-auth-links { position:relative; z-index:2; margin-top:20px; text-align:center; }
.swcp-wrap .swcp-auth-links a { color:#39245e; }
@media (max-width:999px) {
 .swcp-wrap.swcp-account-portal { width:calc(100% - 24px); margin:14px auto; }
 .swcp-account-portal .swcp-layout { grid-template-columns:minmax(0,1fr); gap:16px; }
 .swcp-account-portal .swcp-nav { position:static; display:flex; flex-direction:column; overflow:visible; white-space:normal; padding:12px; }
 .swcp-profile-card { display:flex; align-items:center; justify-content:flex-start; text-align:start; padding:4px 8px 14px; }
 .swcp-profile-avatar { width:56px!important; height:56px!important; border-radius:14px!important; }
 .swcp-profile-card span { margin-inline-start:auto; text-align:end; }
 .swcp-account-portal .swcp-nav a { flex:0 0 auto; }
}
@media (max-width:560px) {
 .swcp-wrap.swcp-account-portal { width:calc(100% - 20px); padding:0; margin:10px auto; }
 .swcp-account-portal .swcp-header { min-height:0; padding:16px; margin-bottom:12px; border-radius:13px; flex-direction:row; align-items:center; }
 .swcp-account-portal .swcp-header-actions { width:auto; justify-content:flex-end; align-items:center; }
 .swcp-account-portal .swcp-theme-form { display:none; }
 .swcp-account-portal .swcp-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; border-radius:14px; }
 .swcp-account-portal .swcp-nav a { justify-content:center; min-height:42px; padding:8px 6px; white-space:normal; text-align:center; font-size:.84rem; }
 .swcp-profile-card { grid-column:1/-1; }
 .swcp-account-portal .swcp-card,.swcp-account-portal .swcp-help { padding:16px; border-radius:13px; }
 .swcp-account-portal .swcp-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
 .swcp-account-portal .swcp-stat { min-height:96px; padding:13px; }
 .swcp-wrap.swcp-page-login,.swcp-wrap.swcp-page-register,.swcp-wrap.swcp-page-forgot,.swcp-wrap.swcp-page-reset { width:calc(100% - 24px); margin:24px auto; }
 .swcp-wrap .swcp-auth-card { padding:26px 18px 22px; }
 .swcp-wrap .swcp-auth-card > .swcp-page-title { margin:-26px -18px 30px; min-height:105px; }
 .swcp-wrap .swcp-auth-card > .wave.-three { height:135px; }
 .swcp-wrap .swcp-auth-card .swcp-math-captcha { grid-template-columns:1fr 110px; }
}

/* 1.1.6: configurable two-layer authentication header and complete dark surfaces. */
.swcp-wrap .swcp-auth-card > .wave.-three {
  height:var(--swcp-auth-height,145px);
  background:var(--swcp-auth-wave,#39245e);
  border-radius:0;
  clip-path: polygon(0 0,100% 0,100% 72%,92% 82%,80% 91%,65% 97%,50% 100%,35% 97%,20% 91%,8% 82%,0 72%);
}
.swcp-wrap .swcp-auth-card > .wave.-three::after {
  content:""; position:absolute; z-index:0; left:0; right:0; bottom:-1px; height:34%;
  background:var(--swcp-auth-layer,#6b55a0); opacity:.9;
  clip-path:polygon(0 38%,12% 15%,27% 30%,43% 5%,59% 28%,76% 10%,90% 27%,100% 12%,100% 100%,0 100%);
}
.swcp-wrap[style*="--swcp-auth-shape:curve"] .swcp-auth-card > .wave.-three { clip-path:none; border-radius:0 0 50% 50% / 0 0 78% 78%; }
.swcp-wrap[style*="--swcp-auth-shape:wave"] .swcp-auth-card > .wave.-three { clip-path:polygon(0 0,100% 0,100% 72%,90% 82%,78% 68%,65% 86%,51% 72%,37% 91%,23% 75%,10% 88%,0 76%); }
.swcp-wrap[style*="--swcp-auth-shape:slant"] .swcp-auth-card > .wave.-three { clip-path:polygon(0 0,100% 0,100% 70%,0 100%); }
.swcp-wrap[style*="--swcp-auth-shape:flat"] .swcp-auth-card > .wave.-three { clip-path:none; border-radius:0; }
.swcp-wrap .swcp-auth-card > .swcp-page-title { min-height:calc(var(--swcp-auth-height,145px) - 25px); }
.swcp-wrap[data-theme="dark"] .swcp-auth-card { background:var(--swcp-surface); color:var(--swcp-ink); border:1px solid var(--swcp-line); }
.swcp-wrap[data-theme="dark"] .swcp-auth-card > .swcp-page-title { color:#fff; }
.swcp-wrap[data-theme="dark"] .swcp-auth-card > form label,
.swcp-wrap[data-theme="dark"] .swcp-auth-card .swcp-auth-switch,
.swcp-wrap[data-theme="dark"] .swcp-auth-card p { color:var(--swcp-ink); }
.swcp-wrap[data-theme="dark"] .swcp-auth-card > form input:not([type=hidden]),
.swcp-wrap[data-theme="dark"] .swcp-auth-card input:not([type=hidden]) { background:#111827; color:#f8fafc; border-color:#475569; }
.swcp-wrap[data-theme="dark"] .swcp-auth-card input::placeholder { color:#cbd5e1; }
.swcp-wrap[data-theme="dark"] .swcp-auth-card .swcp-math-captcha { background:#263449; color:#f1f5f9; }
.swcp-wrap[data-theme="dark"] .swcp-auth-links a { color:#c4b5fd; }
.swcp-wrap[data-theme="dark"] .swcp-auth-card button[type=submit] { background:var(--swcp-primary); color:var(--swcp-on-primary); }
.swcp-wrap[data-theme="dark"] .swcp-notice { background:var(--swcp-success-bg); color:var(--swcp-success-ink); }
.swcp-wrap[data-theme="dark"] .swcp-table-wrap,
.swcp-wrap[data-theme="dark"] table,
.swcp-wrap[data-theme="dark"] th,
.swcp-wrap[data-theme="dark"] td { background:var(--swcp-surface); color:var(--swcp-ink); border-color:var(--swcp-line); }
.swcp-wrap[data-theme="dark"] .swcp-stat,
.swcp-wrap[data-theme="dark"] .swcp-order,
.swcp-wrap[data-theme="dark"] .swcp-ticket,
.swcp-wrap[data-theme="dark"] .swcp-notification-item,
.swcp-wrap[data-theme="dark"] .swcp-address { background:var(--swcp-surface-raised); color:var(--swcp-ink); border-color:var(--swcp-line); }
.swcp-wrap[data-theme="dark"] hr { border-color:var(--swcp-line); }
.swcp-avatar-editor { display:grid; grid-template-columns:76px minmax(0,1fr); gap:8px 16px; align-items:center; margin:0 0 22px; padding:14px; border:1px solid var(--swcp-line); border-radius:14px; background:var(--swcp-surface-raised); }
.swcp-avatar-editor img { grid-row:span 2; width:76px; height:76px; border-radius:50%; object-fit:cover; }
.swcp-avatar-editor label { display:grid; gap:6px; color:var(--swcp-ink); font-weight:650; }
.swcp-avatar-editor small { color:var(--swcp-muted); }
.swcp-profile-avatar { object-fit:cover; }
@media(max-width:560px) { .swcp-avatar-editor { grid-template-columns:64px minmax(0,1fr); gap:8px 12px; } .swcp-avatar-editor img { width:64px; height:64px; } }
.swcp-wrap[data-theme="dark"] .swcp-account-portal .swcp-form input:not([type=checkbox]):not([type=file]),
.swcp-wrap[data-theme="dark"] .swcp-account-portal .swcp-form textarea,
.swcp-wrap[data-theme="dark"] .swcp-account-portal .swcp-form select,
.swcp-wrap[data-theme="dark"] .swcp-theme-form select,
.swcp-wrap[data-theme="dark"] .swcp-account-portal input[type="search"],
.swcp-wrap[data-theme="dark"] .swcp-account-portal input[type="text"],
.swcp-wrap[data-theme="dark"] .swcp-account-portal input[type="email"],
.swcp-wrap[data-theme="dark"] .swcp-account-portal input[type="tel"],
.swcp-wrap[data-theme="dark"] .swcp-account-portal input[type="number"] { background:#111827!important; color:#f8fafc!important; border-color:#475569!important; }
.swcp-wrap[data-theme="dark"] .swcp-nav a { color:var(--swcp-ink); }
.swcp-wrap[data-theme="dark"] .swcp-nav a:hover,
.swcp-wrap[data-theme="dark"] .swcp-nav a.is-active { background:#34445d; color:#fff; }
.swcp-wrap[data-theme="dark"] .swcp-profile-card,
.swcp-wrap[data-theme="dark"] .swcp-header,
.swcp-wrap[data-theme="dark"] .swcp-card,
.swcp-wrap[data-theme="dark"] .swcp-help,
.swcp-wrap[data-theme="dark"] .swcp-stat,
.swcp-wrap[data-theme="dark"] .swcp-auth-card { background:var(--swcp-surface)!important; color:var(--swcp-ink)!important; border-color:var(--swcp-line)!important; }
.swcp-wrap[data-theme="dark"] .swcp-wrap input::placeholder,
.swcp-wrap[data-theme="dark"] input::placeholder,
.swcp-wrap[data-theme="dark"] textarea::placeholder { color:#aebbd0!important; }
.swcp-wrap[data-theme="dark"] .swcp-muted,
.swcp-wrap[data-theme="dark"] .description,
.swcp-wrap[data-theme="dark"] small { color:var(--swcp-muted); }
.swcp-wrap[data-theme="dark"] .swcp-notification-popover { background:var(--swcp-surface); color:var(--swcp-ink); border-color:var(--swcp-line); }
.swcp-wrap[data-theme="dark"] .swcp-notification-preview { border-color:var(--swcp-line); color:var(--swcp-ink); }
