/* ═══════════════════════════════════════════════════════════════
   FAT BOY FRAMES – PORTAL / ADMIN / DEALER CSS
   All shared portal styles. Tailwind CDN handles utility classes.
   ═══════════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    background-color: #1a2a3d;
    color: #f8fbff;
    font-family: 'Space Grotesk', ui-sans-serif, system-ui, sans-serif;
}
body.portal-shell-page {
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
}

::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(70,210,255,0.20); border-radius: 9px; }

/* ── Zero out the parent's padding so the shell owns the full viewport ── */
main.portal-main-auth { padding: 0 !important; overflow: hidden; height: 100dvh; }
main.portal-main-guest {
    max-width: 80rem;
    margin: 0 auto;
    padding: 1.5rem 1.5rem 3rem;
}

.portal-bg-gradient {
    position: fixed;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(ellipse at 50% 0%, rgba(70,210,255,0.16) 0%, transparent 55%),
        radial-gradient(ellipse at 100% 0%, rgba(255,255,255,0.06) 0%, transparent 40%),
        linear-gradient(180deg, #1e3148 0%, #18273b 40%, #111e2d 100%);
}
.portal-flash-wrap {
    position: fixed;
    inset-inline: 0;
    top: 0;
    z-index: 9999;
    padding: 1rem;
}
.portal-flash {
    max-width: 28rem;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    border-radius: 1rem;
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
    box-shadow: 0 20px 60px rgba(0,0,0,0.4);
    backdrop-filter: blur(12px);
}
.portal-flash-success {
    border: 1px solid rgba(70,210,255,0.30);
    background: rgba(22,38,57,0.97);
    color: #46d2ff;
}
.portal-flash-error {
    border: 1px solid rgba(255,123,123,0.30);
    background: rgba(22,38,57,0.97);
    color: #ffd6d6;
}
.portal-flash-icon {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    margin-top: 0.1rem;
}
.portal-loading-spinner {
    display: inline-block;
    width: 0.9em;
    height: 0.9em;
    margin-right: 0.45em;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: portal-spin .6s linear infinite;
    vertical-align: -0.1em;
}
.portal-loading-link-active { pointer-events:none; opacity:.72; }
.portal-flash-exit {
    transition: opacity .4s ease, transform .4s ease;
    opacity: 0;
    transform: translateY(-0.5rem);
}
@keyframes portal-spin { to { transform: rotate(360deg); } }

/* ══ Shell (flex row: sidebar | main) ══════════════════════════ */
.ds-shell {
    display: flex;
    height: 100dvh;
    min-height: 100vh;
    min-height: 100dvh;
    border-radius: 0;
    overflow: hidden;
    border: none;
    box-shadow: none;
}
@media (min-width: 1024px) {
    main.portal-main-auth { padding: 0.75rem !important; overflow: hidden; height: 100vh; height: 100dvh; }
    .ds-shell {
        height: calc(100dvh - 1.5rem);
        border-radius: 1.25rem;
        min-height: calc(100vh - 1.5rem);
        min-height: calc(100dvh - 1.5rem);
        border: 1px solid rgba(255,255,255,0.07);
        box-shadow: 0 40px 100px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.03);
    }
}
@media (min-width: 640px) {
    main.portal-main-guest { padding: 1.5rem 2rem 3rem; }
}

/* ══ Sidebar ════════════════════════════════════════════════════ */
.ds-sidebar {
    flex-shrink: 0;
    width: 17rem;
    display: flex;
    flex-direction: column;
    background: linear-gradient(180deg, #0a1220 0%, #0d1828 100%);
    border-right: 1px solid rgba(255,255,255,0.06);
    position: sticky;
    top: 0;
    max-height: 100vh;
    overflow: hidden;
}
@media (min-width: 1024px) {
    .ds-sidebar { max-height: calc(100vh - 1.5rem); }
}

/* ── Brand ── */
.ds-brand { flex-shrink:0; padding:1.375rem 1.125rem 1.125rem; border-bottom:1px solid rgba(255,255,255,0.05); }
.ds-brand-row { display:flex; align-items:center; gap:0.5rem; }
.ds-brand-inner { display:flex; align-items:center; gap:0.875rem; text-decoration:none; }
.ds-brand-grow { flex:1; }
.ds-brand-logo { background: white;flex-shrink:0; width:3rem; height:3rem; border-radius:0.75rem; border:1px solid rgba(70,210,255,0.18); display:flex; align-items:center; justify-content:center; padding:0.375rem; }
.ds-brand-logo img { width:100%; height:100%; object-fit:contain; }
.ds-brand-name { font-family:'Fraunces',ui-serif,serif; font-size:1.05rem; font-weight:800; color:white; line-height:1.15; letter-spacing:-0.01em; }
.ds-brand-badge { display:inline-flex; align-items:center; margin-top:0.3rem; font-size:0.6rem; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:#46d2ff; background:rgba(70,210,255,0.10); border:1px solid rgba(70,210,255,0.22); border-radius:9999px; padding:0.15rem 0.55rem; }

/* ── User card ── */
.ds-user-card { flex-shrink:0; margin:0.875rem 0.875rem 0; border-radius:0.875rem; border:1px solid rgba(255,255,255,0.06); background:rgba(255,255,255,0.03); padding:0.75rem; }
.ds-user-row { display:flex; align-items:center; gap:0.625rem; }
.ds-avatar { flex-shrink:0; width:2.25rem; height:2.25rem; border-radius:50%; background:linear-gradient(135deg,rgba(70,210,255,0.25),rgba(70,210,255,0.10)); border:1px solid rgba(70,210,255,0.25); display:flex; align-items:center; justify-content:center; font-size:0.9rem; font-weight:800; color:#46d2ff; }
.ds-avatar-frame { border-radius:0.5rem; overflow:hidden; background:white; padding:2px; }
.ds-avatar-image { width:100%; height:100%; object-fit:contain; }
.ds-user-meta { min-width:0; }
.ds-user-name { font-size:0.8rem; font-weight:700; color:rgba(255,255,255,0.90); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ds-user-role { font-size:0.68rem; color:rgba(70,210,255,0.60); font-weight:600; margin-top:0.05rem; }
.ds-user-email { margin-top:0.55rem; font-size:0.67rem; color:rgba(255,255,255,0.62); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ── Nav ── */
.ds-nav-scroll { flex:1; overflow-y:auto; padding:0.875rem 0.875rem 0.5rem; }
.ds-nav-scroll::-webkit-scrollbar { width:3px; }
.ds-nav-scroll::-webkit-scrollbar-track { background:transparent; }
.ds-nav-scroll::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.07); border-radius:9px; }
.ds-nav-section-label { font-size:0.6rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:rgba(255,255,255,0.44); padding:0 0.5rem; margin:0.875rem 0 0.375rem; }
.ds-nav-item { display:flex; align-items:center; gap:0.7rem; border-radius:0.625rem; padding:0.6rem 0.75rem; font-size:0.8125rem; font-weight:500; color:rgba(255,255,255,0.74); text-decoration:none; transition:background 130ms,color 130ms; margin-bottom:2px; width:100%; box-sizing:border-box; border:none; cursor:pointer; font-family:inherit; }
.ds-nav-item:hover { background:rgba(255,255,255,0.055); color:rgba(255,255,255,0.85); }
.ds-nav-item.active { background:linear-gradient(135deg,rgba(70,210,255,0.14),rgba(70,210,255,0.06)); color:#46d2ff; }
.ds-nav-item.disabled { opacity:0.35; pointer-events:none; }
.ds-nav-item svg { flex-shrink:0; width:1rem; height:1rem; }
.ds-nav-dot { margin-left:auto; width:0.35rem; height:0.35rem; border-radius:50%; background:#46d2ff; box-shadow:0 0 6px #46d2ff; }
.ds-nav-badge { margin-left:auto; font-size:0.55rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.42); }
.ds-nav-count { margin-left:auto; min-width:1.25rem; height:1.25rem; display:inline-flex; align-items:center; justify-content:center; border-radius:9999px; background:#fbbf24; color:#281b00; padding:0 0.35rem; font-size:0.62rem; font-weight:800; box-shadow:0 0 12px rgba(251,191,36,0.28); }

/* ── Sign out bar ── */
.ds-signout-bar { flex-shrink:0; border-top:1px solid rgba(255,255,255,0.06); padding:0.875rem; }
.ds-signout-btn { display:flex; align-items:center; gap:0.7rem; width:100%; border-radius:0.625rem; padding:0.65rem 0.875rem; font-size:0.8125rem; font-weight:600; color:rgba(255,100,100,0.75); background:rgba(255,80,80,0.06); border:1px solid rgba(255,80,80,0.12); cursor:pointer; font-family:inherit; text-align:left; transition:background 130ms,color 130ms,border-color 130ms; }
.ds-signout-btn:hover { background:rgba(255,80,80,0.12); color:rgba(255,120,120,1); border-color:rgba(255,80,80,0.28); }
.ds-signout-btn svg { flex-shrink:0; width:1rem; height:1rem; }
.ds-signout-copy { margin-top:0.625rem; text-align:center; font-size:0.6rem; color:rgba(255,255,255,0.34); letter-spacing:0.06em; }

/* ══ Main content area ═════════════════════════════════════════ */
.ds-main { flex:1; min-width:0; min-height:0; display:flex; flex-direction:column; background:#0f1d2e; max-height:100vh; max-height:100dvh; overflow:hidden; }
@media (min-width: 1024px) {
    .ds-main { max-height: calc(100vh - 1.5rem); max-height: calc(100dvh - 1.5rem); }
}

/* ── Top bar ── */
.ds-topbar { flex-shrink:0; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.375rem 2rem; background:linear-gradient(180deg,rgba(8,16,28,0.95),rgba(10,20,32,0.90)); border-bottom:1px solid rgba(255,255,255,0.06); backdrop-filter:blur(20px); }
.ds-topbar-main, .ds-topbar-actions { display:flex; align-items:center; }
.ds-topbar-main { gap:0.875rem; }
.ds-topbar-actions { gap:0.75rem; }
.ds-topbar-title { font-family:'Fraunces',ui-serif,serif; font-size:1.75rem; font-weight:800; color:white; line-height:1.1; }
.ds-topbar-eyebrow { font-size:0.62rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:rgba(70,210,255,0.55); margin-bottom:0.25rem; }
.ds-live-pill { display:flex; align-items:center; gap:0.5rem; border-radius:9999px; border:1px solid rgba(52,211,153,0.25); background:rgba(52,211,153,0.07); padding:0.4rem 1rem; font-size:0.72rem; font-weight:600; color:rgb(110,231,183); }
.ds-viewsite { display:flex; align-items:center; gap:0.4rem; font-size:0.72rem; font-weight:500; color:rgba(255,255,255,0.62); text-decoration:none; border-radius:9999px; border:1px solid rgba(255,255,255,0.08); background:rgba(255,255,255,0.03); padding:0.4rem 0.9rem; white-space:nowrap; transition:color 130ms,border-color 130ms,background 130ms; }
.ds-viewsite:hover { color:rgba(255,255,255,0.70); border-color:rgba(255,255,255,0.18); background:rgba(255,255,255,0.06); }
.ds-viewsite-icon { width:0.7rem; height:0.7rem; }
.ds-notification-button { position:relative; width:2.15rem; height:2.15rem; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; border:1px solid rgba(255,255,255,0.09); background:rgba(255,255,255,0.04); color:rgba(255,255,255,0.64); text-decoration:none; transition:all 140ms; }
.ds-notification-button:hover,.ds-notification-button.has-unread { color:#fbbf24; border-color:rgba(251,191,36,0.30); background:rgba(251,191,36,0.08); }
.ds-notification-button svg { width:1rem; height:1rem; }
.ds-notification-count { position:absolute; top:-0.35rem; right:-0.35rem; min-width:1.1rem; height:1.1rem; display:inline-flex; align-items:center; justify-content:center; border-radius:9999px; border:2px solid #091424; background:#fbbf24; color:#281b00; padding:0 0.2rem; font-size:0.55rem; font-weight:800; }

/* Dealer reward notifications */
.dealer-redemption-alert { border-radius:1rem; border:1px solid rgba(251,191,36,0.24); background:linear-gradient(135deg,rgba(251,191,36,0.10),rgba(251,191,36,0.035)); overflow:hidden; box-shadow:0 0 24px rgba(251,191,36,0.05); }
.dealer-redemption-alert-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.25rem; border-bottom:1px solid rgba(251,191,36,0.12); }
.dealer-redemption-alert-eyebrow { margin-bottom:0.2rem; color:#fbbf24; font-size:0.6rem; font-weight:800; letter-spacing:0.18em; text-transform:uppercase; }
.dealer-redemption-alert h2 { color:rgba(255,255,255,0.92); font-size:0.95rem; font-weight:700; }
.dealer-redemption-alert-list { display:grid; }
.dealer-redemption-alert-item { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0.75rem 1.25rem; border-bottom:1px solid rgba(255,255,255,0.045); color:rgba(255,255,255,0.72); text-decoration:none; font-size:0.78rem; transition:background 140ms; }
.dealer-redemption-alert-item:last-child { border-bottom:0; }
.dealer-redemption-alert-item:hover { background:rgba(251,191,36,0.06); }
.dealer-redemption-alert-item strong { color:#fff; }
.dealer-redemption-alert-item > span:last-child { flex-shrink:0; color:rgba(255,255,255,0.46); font-size:0.7rem; }
.dealer-notifications-panel { border-radius:1rem; border:1px solid rgba(255,255,255,0.07); background:rgba(255,255,255,0.025); overflow:hidden; }
.dealer-notifications-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.375rem; border-bottom:1px solid rgba(255,255,255,0.06); color:rgba(255,255,255,0.88); font-size:0.875rem; font-weight:700; }
.dealer-notifications-summary { color:rgba(255,255,255,0.48); font-size:0.72rem; font-weight:500; }
.dealer-notification-row { position:relative; display:flex; align-items:center; gap:0.9rem; padding:1rem 1.375rem; border-bottom:1px solid rgba(255,255,255,0.045); color:inherit; text-decoration:none; transition:background 140ms,border-color 140ms; }
.dealer-notification-row:last-of-type { border-bottom:0; }
.dealer-notification-row:hover { background:rgba(255,255,255,0.035); }
.dealer-notification-row.is-unread { background:linear-gradient(90deg,rgba(70,210,255,0.10),rgba(70,210,255,0.025)); border-left:3px solid #46d2ff; padding-left:calc(1.375rem - 3px); }
.dealer-notification-icon { width:2.5rem; height:2.5rem; flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; border-radius:0.75rem; background:rgba(70,210,255,0.10); color:#46d2ff; }
.dealer-notification-icon svg { width:1.15rem; height:1.15rem; }
.dealer-notification-copy { min-width:0; flex:1; display:flex; flex-direction:column; gap:0.2rem; }
.dealer-notification-title { color:rgba(255,255,255,0.88); font-size:0.82rem; font-weight:650; overflow-wrap:anywhere; }
.dealer-notification-meta { color:rgba(255,255,255,0.48); font-size:0.7rem; }
.dealer-notification-new { border-radius:9999px; background:rgba(70,210,255,0.12); border:1px solid rgba(70,210,255,0.22); color:#46d2ff; padding:0.2rem 0.55rem; font-size:0.58rem; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; }
.dealer-notification-action { color:#46d2ff; font-size:0.72rem; font-weight:700; }
.dealer-notifications-empty { padding:3rem 1.5rem; text-align:center; }
.dealer-notifications-empty p { color:rgba(255,255,255,0.78); font-size:0.9rem; font-weight:700; }
.dealer-notifications-empty span { display:block; margin-top:0.3rem; color:rgba(255,255,255,0.42); font-size:0.76rem; }
.dealer-redemption-item { padding:0.9rem; border-bottom:1px solid rgba(148,163,184,0.18); border-radius:0.75rem; scroll-margin-top:2rem; transition:background 180ms,box-shadow 180ms; }
.dealer-redemption-item:target { background:rgba(70,210,255,0.09); box-shadow:inset 3px 0 0 #46d2ff,0 0 18px rgba(70,210,255,0.07); }

@media (max-width: 700px) {
    .dealer-redemption-alert-head,.dealer-redemption-alert-item { align-items:flex-start; flex-direction:column; }
    .dealer-notification-row { align-items:flex-start; flex-wrap:wrap; }
    .dealer-notification-action { margin-left:3.4rem; }
}

/* ── Body ── */
.ds-body { flex:1; min-height:0; overflow-y:auto; padding:1.5rem 1.875rem; display:flex; flex-direction:column; gap:1.125rem; overscroll-behavior:contain; scrollbar-gutter:stable; scrollbar-width:thin; scrollbar-color:rgba(70,210,255,0.30) rgba(255,255,255,0.025); }
.ds-body::-webkit-scrollbar { width:5px; }
.ds-body::-webkit-scrollbar-track { background:rgba(255,255,255,0.025); }
.ds-body::-webkit-scrollbar-thumb { background:rgba(70,210,255,0.30); border-radius:9px; }
.ds-body::-webkit-scrollbar-thumb:hover { background:rgba(70,210,255,0.48); }

/* ══ Stat cards ════════════════════════════════════════════════ */
.ds-cards { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.ds-card { border-radius:1rem; border:1px solid rgba(255,255,255,0.06); background:linear-gradient(145deg,rgba(255,255,255,0.04),rgba(255,255,255,0.02)); padding:1.25rem; position:relative; overflow:hidden; transition:border-color 150ms,transform 150ms; }
.ds-card::before { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:linear-gradient(90deg,transparent,rgba(255,255,255,0.10),transparent); }
.ds-card:hover { border-color:rgba(255,255,255,0.12); transform:translateY(-1px); }
.ds-card-glow { position:absolute; top:0; left:0; right:0; height:1px; }
.ds-card-header { display:flex; align-items:flex-start; justify-content:space-between; gap:0.5rem; }
.ds-card-icon { display:flex; align-items:center; justify-content:center; width:2.5rem; height:2.5rem; border-radius:0.75rem; flex-shrink:0; }
.ds-card-icon svg { width:1.125rem; height:1.125rem; }
.ds-card-icon-spaced { margin-bottom:0.875rem; }
.ds-card-tag { font-size:0.58rem; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; color:rgba(255,255,255,0.46); }
.ds-card-num { max-width:100%; font-family:'Fraunces',ui-serif,serif; font-size:clamp(1.85rem,2.5vw,2.75rem); font-weight:800; line-height:1; margin-top:1rem; letter-spacing:-0.02em; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.ds-card-label { font-size:0.8125rem; font-weight:600; color:rgba(255,255,255,0.78); margin-top:0.35rem; }
.ds-card-detail { font-size:0.72rem; line-height:1.5; color:rgba(255,255,255,0.66); margin-top:0.15rem; }

/* ── Accent colours ── */
.accent-cyan    { color:#46d2ff; }
.accent-violet  { color:#a78bfa; }
.accent-amber   { color:#fbbf24; }
.accent-emerald { color:#34d399; }
.bg-icon-cyan    { background:rgba(70,210,255,0.12);  box-shadow:0 0 14px rgba(70,210,255,0.12); }
.bg-icon-violet  { background:rgba(167,139,250,0.12); box-shadow:0 0 14px rgba(167,139,250,0.12); }
.bg-icon-amber   { background:rgba(251,191,36,0.12);  box-shadow:0 0 14px rgba(251,191,36,0.12); }
.bg-icon-emerald { background:rgba(52,211,153,0.12);  box-shadow:0 0 14px rgba(52,211,153,0.12); }
.glow-cyan    { background:linear-gradient(90deg,transparent,rgba(70,210,255,0.35),transparent); }
.glow-violet  { background:linear-gradient(90deg,transparent,rgba(167,139,250,0.35),transparent); }
.glow-amber   { background:linear-gradient(90deg,transparent,rgba(251,191,36,0.35),transparent); }
.glow-emerald { background:linear-gradient(90deg,transparent,rgba(52,211,153,0.35),transparent); }

/* ══ Section panels ════════════════════════════════════════════ */
.ds-panels { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.ds-panel { border-radius:1rem; border:1px solid rgba(255,255,255,0.06); background:rgba(255,255,255,0.025); padding:1.125rem; }
.ds-panel-label { display:flex; align-items:center; gap:0.45rem; font-size:0.65rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:rgba(255,255,255,0.66); margin-bottom:0.75rem; }
.ds-panel-dot { width:0.45rem; height:0.45rem; border-radius:50%; flex-shrink:0; }
.dot-cyan    { background:#46d2ff; box-shadow:0 0 6px rgba(70,210,255,0.6); }
.dot-amber   { background:#fbbf24; box-shadow:0 0 6px rgba(251,191,36,0.6); }
.dot-emerald { background:#34d399; box-shadow:0 0 6px rgba(52,211,153,0.6); }
.dot-violet  { background:#a78bfa; box-shadow:0 0 6px rgba(167,139,250,0.6); }
.ds-panel-body { font-size:0.7875rem; line-height:1.75; color:rgba(255,255,255,0.66); }

/* ══ Bottom layout ════════════════════════════════════════════= */
.ds-bottom { display:grid; grid-template-columns:minmax(0,1fr) 16.5rem; gap:1rem; align-items:start; }
.dealer-dashboard-bottom { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(18rem,0.75fr); gap:1rem; align-items:start; }
.dealer-dashboard-stack { display:flex; flex-direction:column; gap:1rem; min-width:0; }

/* ══ Table card ════════════════════════════════════════════════ */
.ds-table-card { border-radius:1rem; border:1px solid rgba(255,255,255,0.06); background:rgba(255,255,255,0.025); overflow:hidden; }
.ds-table-head-row { display:flex; align-items:center; justify-content:space-between; padding:1rem 1.375rem; border-bottom:1px solid rgba(255,255,255,0.05); }
.ds-table-title { font-size:0.875rem; font-weight:700; color:rgba(255,255,255,0.88); }
.ds-table-sub   { font-size:0.72rem; color:rgba(255,255,255,0.62); margin-top:0.1rem; }
.ds-table-badge { font-size:0.68rem; border-radius:9999px; border:1px solid rgba(255,255,255,0.10); background:rgba(255,255,255,0.07); padding:0.2rem 0.65rem; color:rgba(255,255,255,0.66); }
.ds-table-wrap { overflow-x:auto; overflow-y:hidden; }
.ds-table-wrap::-webkit-scrollbar { height:6px; }
.ds-table-wrap::-webkit-scrollbar-track { background:rgba(255,255,255,0.02); }
.ds-table-wrap::-webkit-scrollbar-thumb { background:rgba(255,255,255,0.12); border-radius:9999px; }
.ds-table-wrap-scroll {
    max-height:min(56vh, 36rem);
    overflow:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(70,210,255,0.32) rgba(255,255,255,0.025);
}
.ds-table-wrap-scroll-lg {
    height:clamp(28rem, 64vh, 46rem);
    max-height:none;
}
.ds-table-wrap-scroll::-webkit-scrollbar {
    width:6px;
    height:6px;
}
.ds-table-wrap-scroll::-webkit-scrollbar-thumb { background:rgba(70,210,255,0.32); }
.ds-table-wrap-scroll::-webkit-scrollbar-thumb:hover { background:rgba(70,210,255,0.50); }
.ds-table { width:100%; border-collapse:collapse; font-size:0.7875rem; }
.ds-table-wide { min-width:72rem; }
.ds-table-sticky thead th {
    position:sticky;
    top:0;
    z-index:2;
    background:#132235;
    box-shadow:inset 0 -1px 0 rgba(255,255,255,0.04);
}
.ds-table th { padding:0.625rem 1.375rem; text-align:left; font-size:0.63rem; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; color:rgba(255,255,255,0.52); border-bottom:1px solid rgba(255,255,255,0.04); }
.ds-table th:last-child { text-align:right; }
.ds-table td { padding:0.875rem 1.375rem; border-bottom:1px solid rgba(255,255,255,0.03); vertical-align:middle; }
.ds-table tbody tr:last-child td { border-bottom:none; }
.ds-table tbody tr { transition:background 110ms; }
.ds-table tbody tr:hover { background:rgba(255,255,255,0.025); }
.td-name { font-weight:600; color:rgba(255,255,255,0.85); }
.td-type { color:rgba(255,255,255,0.66); }
.td-date { text-align:right; font-size:0.72rem; color:rgba(255,255,255,0.66); }
.td-points { color:#46d2ff; font-weight:700; }
.ds-table-empty { padding:3rem; text-align:center; color:rgba(255,255,255,0.62); font-size:0.8125rem; }
.ds-table-footer { display:flex; align-items:center; justify-content:center; padding:1rem 1.375rem; border-top:1px solid rgba(255,255,255,0.05); }

/* Portal pagination */
.ds-pagination { width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.ds-pagination-summary { font-size:0.75rem; color:rgba(255,255,255,0.66); }
.ds-pagination-summary strong { color:rgba(255,255,255,0.88); font-weight:700; }
.ds-pagination-nav { display:flex; align-items:center; gap:0.375rem; flex-wrap:wrap; margin-left:auto; }
.ds-pagination-link,
.ds-pagination-current,
.ds-pagination-gap {
    min-width:2.5rem;
    height:2.5rem;
    padding:0 0.85rem;
    border-radius:0.75rem;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:0.8125rem;
    font-weight:700;
    text-decoration:none;
    transition:border-color 140ms,background 140ms,color 140ms,transform 140ms;
}
.ds-pagination-link {
    border:1px solid rgba(255,255,255,0.09);
    background:rgba(255,255,255,0.04);
    color:rgba(255,255,255,0.66);
}
.ds-pagination-link:hover {
    border-color:rgba(70,210,255,0.24);
    background:rgba(70,210,255,0.08);
    color:#46d2ff;
    transform:translateY(-1px);
}
.ds-pagination-current {
    border:1px solid rgba(70,210,255,0.24);
    background:linear-gradient(135deg,rgba(70,210,255,0.18),rgba(40,184,224,0.14));
    color:#46d2ff;
    box-shadow:0 8px 24px rgba(70,210,255,0.14);
}
.ds-pagination-link.is-disabled {
    border-color:rgba(255,255,255,0.06);
    background:rgba(255,255,255,0.02);
    color:rgba(255,255,255,0.20);
    pointer-events:none;
}
.ds-pagination-gap {
    min-width:auto;
    padding:0 0.25rem;
    color:rgba(255,255,255,0.18);
}
.ds-pagination-icon {
    width:0.9rem;
    height:0.9rem;
    flex-shrink:0;
}

.portal-pagination-bar {
    overflow:visible;
    background:rgba(11,23,37,0.92);
}
.portal-pagination-bar-body {
    padding:0.95rem 1.15rem;
}
.portal-pagination-bar .ds-pagination {
    gap:0.75rem;
}
.portal-pagination-bar .ds-pagination-summary {
    font-size:0.7rem;
}
.portal-pagination-bar .ds-pagination-link,
.portal-pagination-bar .ds-pagination-current,
.portal-pagination-bar .ds-pagination-gap {
    min-width:2.2rem;
    height:2.2rem;
    padding:0 0.7rem;
    font-size:0.76rem;
    border-radius:0.65rem;
}

/* ══ Status badges ═════════════════════════════════════════════ */
.badge { display:inline-flex; align-items:center; border-radius:9999px; padding:0.22rem 0.7rem; font-size:0.68rem; font-weight:700; border:1px solid transparent; white-space:nowrap; }
.badge-g { border-color:rgba(52,211,153,.25);  background:rgba(52,211,153,.10);  color:rgb(110,231,183); }
.badge-a { border-color:rgba(251,191,36,.25);  background:rgba(251,191,36,.10);  color:rgb(252,211,77); }
.badge-c { border-color:rgba(70,210,255,.25);  background:rgba(70,210,255,.10);  color:#46d2ff; }
.badge-r { border-color:rgba(255,100,100,.25); background:rgba(255,100,100,.10); color:rgb(252,165,165); }
.badge-d { border-color:rgba(255,255,255,.10); background:rgba(255,255,255,.04); color:rgba(255,255,255,.35); }

/* ══ Right-side widgets ════════════════════════════════════════ */
.ds-widget { border-radius:1rem; border:1px solid rgba(255,255,255,0.06); background:rgba(255,255,255,0.025); padding:1.125rem; }
.ds-widget+.ds-widget { margin-top:1rem; }
.ds-widget-title { font-size:0.63rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:rgba(255,255,255,0.54); margin-bottom:0.875rem; }
.ds-svc-row { display:flex; align-items:center; justify-content:space-between; padding:0.45rem 0; border-bottom:1px solid rgba(255,255,255,0.04); }
.ds-svc-row:last-child { border-bottom:none; padding-bottom:0; }
.ds-svc-name { font-size:0.7875rem; color:rgba(255,255,255,0.72); }
.ds-svc-status { display:flex; align-items:center; gap:0.375rem; font-size:0.7rem; font-weight:700; }
.ds-svc-dot { width:0.4rem; height:0.4rem; border-radius:50%; }
.ds-svc-status-online { color:rgb(110,231,183); }
.ds-svc-status-standby { color:rgba(255,255,255,0.60); }
.ds-svc-dot-online { background:rgb(52,211,153); box-shadow:0 0 6px rgba(52,211,153,0.6); }
.ds-svc-dot-standby { background:rgba(255,255,255,0.32); }
.ds-qa-btn { display:flex; align-items:center; justify-content:space-between; width:100%; border-radius:0.625rem; border:1px solid rgba(255,255,255,0.06); background:rgba(255,255,255,0.025); padding:0.6rem 0.875rem; font-size:0.7875rem; color:rgba(255,255,255,0.72); transition:border-color 130ms,background 130ms,color 130ms; cursor:pointer; text-align:left; margin-bottom:0.5rem; font-family:inherit; line-height:1; text-decoration:none; }
.ds-qa-btn:last-child { margin-bottom:0; }
.ds-qa-btn:hover { border-color:rgba(70,210,255,0.25); background:rgba(70,210,255,0.05); color:rgba(255,255,255,0.85); }
.ds-qa-btn svg { width:0.8rem; height:0.8rem; flex-shrink:0; color:rgba(255,255,255,0.46); }
.ds-link-reset { text-decoration:none; }
.ds-muted-copy { font-size:0.72rem; color:rgba(255,255,255,0.46); margin-top:0.15rem; }
.ds-widget-copy { font-size:0.775rem; line-height:1.75; color:rgba(255,255,255,0.68); }
.ds-link-accent { color:#46d2ff; text-decoration:none; }
.ds-text-right { text-align:right !important; }
.ds-mono-code { font-family:monospace; font-size:0.8rem; letter-spacing:0.08em; }
.ds-hidden { display:none !important; }
.ds-inline-spinner {
    display:inline-block;
    width:.9em;
    height:.9em;
    margin-right:.4em;
    border:2px solid currentColor;
    border-right-color:transparent;
    border-radius:50%;
    animation:portal-spin .55s linear infinite;
    vertical-align:-.12em;
}

/* ══ Live pulse ════════════════════════════════════════════════ */
@keyframes ds-ping { 0% { transform:scale(1);opacity:.7; } 100% { transform:scale(2.2);opacity:0; } }
.ds-live-dot { position:relative; display:inline-block; width:0.5rem; height:0.5rem; flex-shrink:0; }
.ds-live-dot::before { content:''; position:absolute; inset:0; border-radius:50%; background:rgb(52,211,153); animation:ds-ping 2s ease-out infinite; }
.ds-live-dot::after  { content:''; position:absolute; inset:0; border-radius:50%; background:rgb(52,211,153); }

/* ══ Page section headers ══════════════════════════════════════ */
.ds-page-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:0.25rem; }
.ds-page-title { margin:0; font-family:'Fraunces',ui-serif,serif; font-size:1.5rem; font-weight:800; color:white; line-height:1.1; }
.ds-page-sub { margin:0; font-size:0.8rem; color:rgba(255,255,255,0.66); }
.ds-page-sub + .ds-page-title,
.ds-page-title + .ds-page-sub { margin-top:0.625rem; }

/* ══ Standalone portal dashboard ══════════════════════════════ */
.portal-dashboard { display:flex; flex-direction:column; gap:1rem; }
.portal-dashboard-header { border-radius:1rem; border:1px solid rgba(255,255,255,0.07); background:rgba(10,18,30,0.80); backdrop-filter:blur(14px); padding:0.875rem 1.25rem; }
.portal-dashboard-header-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.portal-dashboard-brand { display:flex; align-items:center; gap:0.875rem; }
.portal-dashboard-brand-link { display:inline-flex; align-items:center; gap:0.6rem; border-radius:0.75rem; border:1px solid rgba(70,210,255,0.18); background:rgba(70,210,255,0.06); padding:0.45rem 0.75rem; text-decoration:none; }
.portal-dashboard-brand-logo { height:1.75rem; width:auto; }
.portal-dashboard-brand-name { font-family:'Fraunces',ui-serif,serif; font-size:0.875rem; font-weight:800; color:white; }
.portal-dashboard-brand-divider { width:1px; height:1.5rem; background:rgba(255,255,255,0.08); }
.portal-dashboard-context-label { font-size:0.65rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:rgba(70,210,255,0.65); }
.portal-dashboard-context-value { font-size:0.8125rem; font-weight:600; color:rgba(255,255,255,0.88); margin-top:0.05rem; }
.portal-dashboard-actions { display:flex; align-items:center; gap:0.75rem; flex-wrap:wrap; }
.portal-dashboard-email { font-size:0.72rem; color:rgba(255,255,255,0.66); border-radius:9999px; border:1px solid rgba(255,255,255,0.07); padding:0.3rem 0.75rem; }
.portal-dashboard-signout { display:inline-flex; align-items:center; gap:0.4rem; border-radius:9999px; background:#46d2ff; padding:0.45rem 1.1rem; font-size:0.775rem; font-weight:700; color:#071220; border:none; cursor:pointer; font-family:inherit; }
.portal-dashboard-signout-icon { width:0.8rem; height:0.8rem; }
.portal-dashboard-hero { border-radius:1rem; border:1px solid rgba(255,255,255,0.07); background:linear-gradient(145deg,rgba(255,255,255,0.04),rgba(255,255,255,0.02)); padding:1.75rem 2rem; position:relative; overflow:hidden; }
.portal-dashboard-hero-glow { position:absolute; top:0; right:0; width:20rem; height:100%; background:radial-gradient(ellipse at right,rgba(70,210,255,0.07),transparent 70%); pointer-events:none; }
.portal-dashboard-eyebrow { font-size:0.65rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:rgba(70,210,255,0.65); }
.portal-dashboard-title { font-family:'Fraunces',ui-serif,serif; font-size:2.25rem; font-weight:800; color:white; margin-top:0.4rem; line-height:1.15; }
.portal-dashboard-intro { margin-top:0.75rem; font-size:0.875rem; line-height:1.75; color:rgba(255,255,255,0.72); max-width:40rem; }
.portal-dashboard-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.portal-overview { border-radius:1rem; border:1px solid rgba(255,255,255,0.07); background:rgba(255,255,255,0.025); padding:1.375rem 1.625rem; }
.portal-overview-label { font-size:0.63rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:rgba(255,255,255,0.54); margin-bottom:0.875rem; }
.portal-overview-list { display:flex; flex-direction:column; gap:0.625rem; list-style:none; padding:0; margin:0; }
.portal-overview-item { display:flex; align-items:flex-start; gap:0.625rem; font-size:0.8125rem; line-height:1.75; color:rgba(255,255,255,0.74); }
.portal-overview-icon { width:0.875rem; height:0.875rem; flex-shrink:0; margin-top:0.3rem; color:rgba(70,210,255,0.55); }

/* ══ Form elements ═════════════════════════════════════════════ */
.ds-input, .ds-select, .ds-textarea {
    width:100%; border-radius:0.75rem;
    border:1px solid rgba(255,255,255,0.09);
    background:rgba(8,18,34,0.65);
    padding:0.75rem 1rem;
    font-size:0.875rem; font-family:'Space Grotesk',sans-serif;
    color:rgba(255,255,255,0.88); outline:none;
    transition:border-color 150ms,box-shadow 150ms;
    box-sizing:border-box;
}
.ds-input::placeholder, .ds-textarea::placeholder { color:rgba(255,255,255,0.46); }
.ds-input:focus, .ds-select:focus, .ds-textarea:focus {
    border-color:rgba(70,210,255,0.40);
    box-shadow:0 0 0 3px rgba(70,210,255,0.09);
}
.ds-select {
    appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='rgba(70,210,255,0.45)' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='m19.5 8.25-7.5 7.5-7.5-7.5'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 0.875rem center; background-size:1rem;
    padding-right:2.5rem;
    cursor:pointer;
}
.ds-select option { background:#0d1b2a; color:white; }
.ds-textarea { resize:vertical; min-height:7rem; }
.ds-label { display:block; font-size:0.72rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.62); margin-bottom:0.4rem; }
.ds-field { margin-bottom:1rem; }
.ds-field:last-child { margin-bottom:0; }
.ds-error { font-size:0.75rem; color:rgba(252,165,165,0.85); margin-top:0.3rem; }
.ds-input-err { border-color:rgba(252,165,165,0.45) !important; }

/* ══ Buttons ═══════════════════════════════════════════════════ */
.ds-btn { display:inline-flex; align-items:center; gap:0.45rem; border-radius:0.75rem; padding:0.65rem 1.25rem; font-size:0.8375rem; font-weight:700; font-family:'Space Grotesk',sans-serif; cursor:pointer; border:none; text-decoration:none; white-space:nowrap; transition:all 140ms; line-height:1; }
.ds-btn-primary { background:linear-gradient(135deg,#46d2ff,#28b8e0); color:#03101e; box-shadow:0 4px 18px rgba(70,210,255,0.28); }
.ds-btn-primary:hover { box-shadow:0 6px 24px rgba(70,210,255,0.42); transform:translateY(-1px); }
.ds-btn-ghost { background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.10); color:rgba(255,255,255,0.65); }
.ds-btn-ghost:hover { background:rgba(255,255,255,0.09); border-color:rgba(255,255,255,0.18); color:rgba(255,255,255,0.88); }
.ds-btn-danger { background:rgba(255,80,80,0.10); border:1px solid rgba(255,80,80,0.20); color:rgba(255,120,120,0.85); }
.ds-btn-danger:hover { background:rgba(255,80,80,0.18); color:rgba(255,140,140,1); }
.ds-btn-sm { padding:0.45rem 0.875rem; font-size:0.75rem; border-radius:0.5rem; }
.ds-btn svg { width:0.875rem; height:0.875rem; flex-shrink:0; }
.ds-btn-block { width:100%; justify-content:center; }
.ds-btn-fill { flex:1; justify-content:center; min-width:0; }
.ds-btn-tight { gap:0.35rem; }

/* ══ Detail card ═══════════════════════════════════════════════ */
.ds-detail-card { border-radius:1rem; border:1px solid rgba(255,255,255,0.07); background:rgba(255,255,255,0.025); overflow:hidden; }
.ds-detail-card-header { padding:1.125rem 1.5rem; border-bottom:1px solid rgba(255,255,255,0.05); display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.ds-detail-card-title { font-size:0.875rem; font-weight:700; color:rgba(255,255,255,0.82); }
.ds-detail-card-body { padding:1.5rem; }
.ds-dl { display:grid; grid-template-columns:9rem 1fr; gap:0.625rem 1rem; }
.ds-dl dt { font-size:0.72rem; font-weight:700; letter-spacing:0.10em; text-transform:uppercase; color:rgba(255,255,255,0.66); padding-top:0.1rem; }
.ds-dl dd { font-size:0.8375rem; color:rgba(255,255,255,0.72); margin:0; word-break:break-word; }

/* ══ Form card (create/edit pages) ════════════════════════════ */
.ds-form-card { border-radius:1rem; border:1px solid rgba(255,255,255,0.07); background:rgba(8,18,34,0.55); overflow:hidden; }
.ds-form-card-header { padding:1.125rem 1.5rem; border-bottom:1px solid rgba(255,255,255,0.05); }
.ds-form-card-section { font-size:0.65rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:rgba(70,210,255,0.55); margin-bottom:0.25rem; }
.ds-form-card-title { font-size:1rem; font-weight:700; color:rgba(255,255,255,0.88); }
.ds-form-card-body { padding:1.5rem; }
.ds-divider { height:1px; background:rgba(255,255,255,0.05); margin:1.25rem 0; }

/* ══ Logo upload preview ══════════════════════════════════════ */
.ds-logo-preview { width:5rem; height:5rem; border-radius:0.875rem; border:1.5px dashed rgba(70,210,255,0.30); background:rgba(70,210,255,0.04); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ds-logo-preview img { width:100%; height:100%; object-fit:contain; }

/* ══ Dealer landing page editor ════════════════════════════════ */
.lp-header-actions { display:flex; align-items:center; gap:0.625rem; }
.lp-preview-btn { display:flex; align-items:center; gap:0.35rem; }
.lp-preview-icon { width:0.7rem; height:0.7rem; }
.lp-flow-strip,
.qr-guide-strip {
    border-radius:1rem;
    border:1px solid rgba(70,210,255,0.12);
    background:rgba(70,210,255,0.04);
    padding:0.875rem 1.25rem;
    display:flex;
    align-items:center;
    gap:1.25rem;
    flex-wrap:wrap;
}
.qr-guide-strip { padding:1rem 1.375rem; }
.lp-flow-icon { width:1.375rem; height:1.375rem; flex-shrink:0; color:rgba(70,210,255,0.60); }
.qr-guide-icon { width:1.5rem; height:1.5rem; flex-shrink:0; color:rgba(70,210,255,0.65); }
.lp-flow-copy,
.qr-guide-copy { flex:1; min-width:0; }
.lp-flow-copy { font-size:0.78rem; color:rgba(255,255,255,0.45); line-height:1.6; }
.qr-guide-title { font-size:0.75rem; font-weight:700; color:rgba(255,255,255,0.75); margin-bottom:0.1rem; }
.qr-guide-body { font-size:0.75rem; color:rgba(255,255,255,0.38); line-height:1.6; }
.lp-flow-strong,
.qr-guide-strong { color:rgba(255,255,255,0.65); }
.qr-guide-muted-strong { color:rgba(255,255,255,0.55); }
.lp-stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.875rem; }
.lp-stat-card { padding:0.875rem 1rem; }
.lp-stat-title { font-size:0.62rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.28); margin-bottom:0.3rem; }
.lp-stat-value { font-family:'Fraunces',serif; font-size:2rem; font-weight:800; line-height:1; }
.lp-stat-caption { font-size:0.72rem; font-weight:600; color:rgba(255,255,255,0.40); margin-top:0.25rem; }
.lp-stat-url { font-family:monospace; font-size:0.78rem; font-weight:700; color:rgba(255,255,255,0.35); word-break:break-all; }
.lp-dealer-grid { display:grid; grid-template-columns:1fr 19rem; gap:1.25rem; align-items:start; }
.lp-form-stack,
.lp-sidebar-stack { display:flex; flex-direction:column; gap:1.25rem; }
.ds-field-compact { margin-bottom:0; }
.lp-field-help { margin-top:0.3rem; font-size:0.68rem; color:rgba(255,255,255,0.25); }
.lp-publish-row { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.lp-publish-title { font-size:0.8125rem; font-weight:600; color:rgba(255,255,255,0.75); }
.lp-publish-body { font-size:0.72rem; color:rgba(255,255,255,0.30); margin-top:0.2rem; line-height:1.5; }
.lp-toggle-label { position:relative; display:inline-flex; align-items:center; cursor:pointer; flex-shrink:0; margin-top:0.15rem; }
.lp-toggle-input { position:absolute; opacity:0; width:0; height:0; }
.lp-toggle-track {
    width:2.5rem;
    height:1.375rem;
    border-radius:9999px;
    background:rgba(255,255,255,0.12);
    border:1px solid rgba(255,255,255,0.10);
    position:relative;
    cursor:pointer;
    flex-shrink:0;
    transition:background 150ms, border-color 150ms;
}
.lp-toggle-knob {
    position:absolute;
    top:50%;
    left:3px;
    transform:translateY(-50%);
    width:1rem;
    height:1rem;
    border-radius:50%;
    background:rgba(255,255,255,0.55);
    transition:left 150ms, background 150ms;
}
.lp-toggle-input:checked + .lp-toggle-track {
    background:rgba(70,210,255,0.30);
    border-color:rgba(70,210,255,0.40);
}
.lp-toggle-input:checked + .lp-toggle-track .lp-toggle-knob {
    left:calc(100% - 1.1rem);
    background:#46d2ff;
}
.lp-logo-row { display:flex; align-items:center; gap:1rem; margin-bottom:0.875rem; }
.lp-logo-preview {
    width:3.75rem;
    height:3.75rem;
    border-radius:0.75rem;
    overflow:hidden;
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.09);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}
.lp-logo-preview-image { width:100%; height:100%; object-fit:contain; }
.lp-logo-preview-empty { width:1.5rem; height:1.5rem; color:rgba(255,255,255,0.20); }
.lp-logo-copy { flex:1; min-width:0; }
.lp-logo-title { font-size:0.78rem; font-weight:600; color:rgba(255,255,255,0.60); }
.lp-logo-body { font-size:0.68rem; color:rgba(255,255,255,0.25); margin-top:0.15rem; }
.lp-upload-btn { cursor:pointer; display:inline-flex; width:100%; justify-content:center; }
.lp-file-input {
    position:fixed;
    top:0;
    left:0;
    width:1px;
    height:1px;
    margin:0;
    padding:0;
    border:0;
    opacity:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    clip-path:inset(50%);
}
.lp-upload-icon,
.lp-preview-live-icon { width:0.875rem; height:0.875rem; }
.lp-upload-error { margin-top:0.4rem; }
.lp-upload-note { font-size:0.65rem; color:rgba(255,255,255,0.20); margin-top:0.5rem; text-align:center; }

/* ══ Dealer QR codes page ══════════════════════════════════════ */
.qr-lock-strip {
    border-radius:1rem;
    border:1px solid rgba(251,191,36,0.18);
    background:rgba(251,191,36,0.06);
    padding:1rem 1.375rem;
    display:flex;
    align-items:flex-start;
    gap:0.875rem;
}
.qr-lock-icon { width:1.25rem; height:1.25rem; flex-shrink:0; color:rgba(251,191,36,0.82); margin-top:0.05rem; }
.qr-lock-title { font-size:0.78rem; font-weight:700; color:rgba(251,191,36,0.88); margin-bottom:0.2rem; }
.qr-lock-body { font-size:0.74rem; line-height:1.55; color:rgba(255,255,255,0.46); }
.qr-filter-row { display:flex; align-items:center; gap:0.75rem; flex-wrap:wrap; }
.qr-filter-select { width:12rem; }
.qr-filter-summary-wrap { flex:1; display:flex; justify-content:flex-end; }
.qr-filter-summary { font-size:0.8125rem; color:rgba(255,255,255,0.40); }
.qr-filter-total { font-weight:700; color:white; }
.qr-filter-available { font-weight:700; color:#34d399; }
.qr-filter-assigned { font-weight:700; color:#46d2ff; }
.qr-empty-state { border-radius:1rem; border:1px solid rgba(255,255,255,0.07); background:rgba(255,255,255,0.025); padding:3.5rem; text-align:center; }
.qr-empty-title { font-size:0.9375rem; font-weight:700; color:rgba(255,255,255,0.60); }
.qr-empty-body { font-size:0.8125rem; color:rgba(255,255,255,0.28); margin-top:0.375rem; }
.qr-card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(15rem,17rem)); justify-content:start; gap:0.875rem; }
.qr-card { border-radius:0.875rem; border:1px solid rgba(255,255,255,0.07); background:rgba(255,255,255,0.025); overflow:hidden; display:flex; flex-direction:column; transition:border-color 140ms, transform 140ms; }
.qr-card:hover { border-color:rgba(70,210,255,0.18); transform:translateY(-2px); }
.qr-card-media { background:white; padding:0.875rem; display:flex; align-items:center; justify-content:center; position:relative; }
.qr-card-image { display:block; width:128px; height:128px; }
.qr-card-badge { position:absolute; top:0.5rem; right:0.5rem; }
.qr-card-badge .badge { font-size:0.56rem; padding:0.18rem 0.55rem; }
.qr-card-body { padding:0.8rem 0.875rem; flex:1; display:flex; flex-direction:column; gap:0.55rem; }
.qr-card-code-label { font-size:0.56rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:rgba(255,255,255,0.28); margin-bottom:0.12rem; }
.qr-card-code-value { font-family:monospace; font-size:0.9rem; font-weight:800; letter-spacing:0.12em; color:#46d2ff; }
.qr-card-assigned { background:rgba(70,210,255,0.06); border:1px solid rgba(70,210,255,0.15); border-radius:0.5rem; padding:0.5rem 0.6rem; }
.qr-card-assigned-label { font-size:0.54rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:rgba(70,210,255,0.50); margin-bottom:0.12rem; }
.qr-card-assigned-name { font-size:0.74rem; font-weight:600; color:rgba(255,255,255,0.80); }
.qr-card-assigned-meta { font-size:0.64rem; color:rgba(255,255,255,0.35); margin-top:0.08rem; line-height:1.35; }
.qr-card-assigned-plate { font-family:monospace; font-size:0.64rem; font-weight:700; color:rgba(255,255,255,0.45); letter-spacing:0.08em; margin-top:0.08rem; }
.qr-card-assigned-link { font-size:0.64rem; color:#46d2ff; text-decoration:none; display:inline-flex; align-items:center; gap:0.25rem; margin-top:0.3rem; }
.qr-card-stats { display:flex; align-items:center; gap:0.75rem; padding:0.3rem 0; border-top:1px solid rgba(255,255,255,0.05); border-bottom:1px solid rgba(255,255,255,0.05); }
.qr-card-stat { text-align:center; flex:1; }
.qr-card-stat-value { font-size:0.95rem; font-weight:800; color:rgba(255,255,255,0.85); }
.qr-card-stat-value-sm { font-size:0.64rem; font-weight:700; color:rgba(255,255,255,0.55); }
.qr-card-stat-label { font-size:0.54rem; font-weight:600; color:rgba(255,255,255,0.28); text-transform:uppercase; letter-spacing:0.10em; }
.qr-card-stats-divider { width:1px; height:1.55rem; background:rgba(255,255,255,0.07); }
.qr-card-actions { display:flex; gap:0.45rem; margin-top:auto; padding-top:0.15rem; flex-wrap:wrap; }
.qr-card-actions .ds-btn-sm { padding:0.45rem 0.7rem; font-size:0.68rem; }
.qr-card-unassign-form { display:flex; flex:1; }
.qr-card-unassign-form .ds-btn { width:100%; }
.qr-card-note { flex:1; text-align:center; font-size:0.62rem; color:rgba(255,255,255,0.28); padding:0.4rem 0; }
.qr-card-small-btn { font-size:0.64rem; }
.qr-pagination { display:flex; justify-content:center; }
.qr-assign-modal { display:none; position:fixed; inset:0; z-index:200; align-items:center; justify-content:center; padding:1rem; }
.qr-assign-modal.is-open { display:flex; }
.qr-assign-backdrop { position:absolute; inset:0; background:rgba(0,0,0,0.72); backdrop-filter:blur(8px); }
.qr-assign-panel {
    position:relative;
    z-index:1;
    background:linear-gradient(145deg,#0d1b2a,#0a1520);
    border:1px solid rgba(255,255,255,0.10);
    border-radius:1.5rem;
    padding:2rem;
    width:100%;
    max-width:22rem;
    box-shadow:0 40px 100px rgba(0,0,0,0.70);
}
.qr-assign-close {
    position:absolute;
    top:1rem;
    right:1rem;
    width:2rem;
    height:2rem;
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.12);
    background:rgba(255,255,255,0.06);
    color:rgba(255,255,255,0.55);
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
}
.qr-assign-close-icon { width:0.875rem; height:0.875rem; }
.qr-assign-eyebrow { font-size:0.62rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; color:rgba(70,210,255,0.60); margin-bottom:0.25rem; }
.qr-assign-code { font-family:'Fraunces',serif; font-size:1.25rem; font-weight:800; color:white; letter-spacing:0.12em; margin-bottom:0.25rem; }
.qr-assign-note { font-size:0.72rem; color:rgba(255,255,255,0.28); margin-bottom:1.25rem; }
.qr-assign-field { margin-bottom:1.125rem; }

/* ══ Admin dealer pages ════════════════════════════════════════ */
.admin-dealer-back { display:inline-flex; align-items:center; gap:0.4rem; font-size:0.78rem; font-weight:600; color:rgba(255,255,255,0.38); text-decoration:none; }
.admin-dealer-back-block { margin-bottom:1rem; }
.admin-dealer-back-tight { margin-bottom:0.5rem; }
.admin-dealer-back-icon { width:0.875rem; height:0.875rem; }
.admin-dealer-page-header-flat { margin-bottom:0; }
.admin-dealer-grid { display:grid; grid-template-columns:1fr 20rem; gap:1.25rem; align-items:start; }
.admin-dealer-stack { display:flex; flex-direction:column; gap:1.25rem; }
.admin-dealer-split-2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.admin-dealer-split-3 { display:grid; grid-template-columns:1fr 1fr 6rem; gap:1rem; }
.admin-dealer-helper { font-size:0.72rem; color:rgba(255,255,255,0.28); padding:0 0.25rem; }
.admin-dealer-helper-pad { margin-top:0.3rem; padding-left:1.5rem; }
.admin-dealer-required { color:#f87171; }
.admin-dealer-error-hidden { display:none; }
.admin-dealer-upload-row { display:flex; align-items:center; gap:1rem; margin-bottom:0.5rem; }
.admin-dealer-upload-label { cursor:pointer; }
.admin-dealer-logo-icon { width:1.5rem; height:1.5rem; color:rgba(70,210,255,0.30); }
.admin-dealer-checkbox-label { display:flex; align-items:center; gap:0.5rem; cursor:pointer; }
.admin-dealer-checkbox-input { width:1rem; height:1rem; accent-color:#46d2ff; }
.admin-dealer-checkbox-text { font-size:0.8125rem; font-weight:600; color:rgba(255,255,255,0.72); }
.admin-dealer-user-fields.is-open { display:block !important; }
.admin-dealer-filter { display:flex; align-items:center; gap:0.75rem; flex-wrap:wrap; }
.admin-dealer-search { width:14rem; }
.admin-dealer-status { width:10rem; }
.admin-dealer-row { display:flex; align-items:center; gap:0.625rem; }
.admin-dealer-thumb { width:2rem; height:2rem; border-radius:0.375rem; object-fit:contain; background:white; padding:2px; border:1px solid rgba(255,255,255,0.08); }
.admin-dealer-thumb-fallback { width:2rem; height:2rem; border-radius:0.375rem; background:rgba(70,210,255,0.10); border:1px solid rgba(70,210,255,0.18); display:flex; align-items:center; justify-content:center; font-size:0.75rem; font-weight:800; color:#46d2ff; flex-shrink:0; }
.admin-dealer-meta-copy { font-size:0.7rem; color:rgba(255,255,255,0.30); margin-top:1px; }
.admin-dealer-count-accent { font-size:0.8rem; font-weight:700; color:rgba(70,210,255,0.85); }
.admin-dealer-count-muted { font-size:0.8rem; font-weight:700; color:rgba(255,255,255,0.65); }
.admin-dealer-actions { display:flex; align-items:center; justify-content:flex-end; gap:0.5rem; }
.admin-dealer-header-main { display:flex; align-items:center; gap:1rem; }
.admin-dealer-hero-logo { width:3.5rem; height:3.5rem; border-radius:0.75rem; object-fit:contain; background:white; padding:4px; border:1px solid rgba(255,255,255,0.10); }
.admin-dealer-hero-fallback { width:3.5rem; height:3.5rem; border-radius:0.75rem; background:rgba(70,210,255,0.10); border:1px solid rgba(70,210,255,0.20); display:flex; align-items:center; justify-content:center; font-size:1.5rem; font-weight:800; color:#46d2ff; flex-shrink:0; }
.admin-dealer-header-actions { display:flex; align-items:center; gap:0.625rem; flex-wrap:wrap; }
.admin-dealer-inline-btn { display:flex; align-items:center; gap:0.35rem; }
.admin-dealer-inline-btn-icon-sm { width:0.75rem; height:0.75rem; }
.admin-dealer-inline-btn-icon-xs { width:0.7rem; height:0.7rem; }
.admin-dealer-stat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.875rem; }
.admin-dealer-stat-card { padding:1rem; }
.admin-dealer-stat-value { font-family:'Fraunces',serif; font-size:2.25rem; font-weight:800; line-height:1; }
.admin-dealer-stat-label { font-size:0.78rem; font-weight:600; color:rgba(255,255,255,0.55); margin-top:0.25rem; }
.admin-dealer-two-col { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.admin-dealer-empty-copy { font-size:0.8rem; color:rgba(255,255,255,0.30); }
.admin-dealer-danger { border-radius:1rem; border:1px solid rgba(255,80,80,0.15); background:rgba(255,80,80,0.04); padding:1.25rem 1.5rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.admin-dealer-danger-title { font-size:0.8125rem; font-weight:700; color:rgba(255,120,120,0.85); }
.admin-dealer-danger-copy { font-size:0.75rem; color:rgba(255,255,255,0.30); margin-top:0.2rem; }
.admin-dealer-url-box { font-size:0.72rem; color:rgba(255,255,255,0.35); word-break:break-all; font-family:monospace; background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.07); border-radius:0.5rem; padding:0.5rem 0.625rem; }
.admin-dealer-url-note { font-size:0.68rem; color:rgba(255,255,255,0.22); margin-top:0.5rem; }
.admin-dealer-divider-note { margin-top:0.875rem; font-size:0.68rem; color:rgba(255,255,255,0.22); border-top:1px solid rgba(255,255,255,0.06); padding-top:0.75rem; }
.admin-dealer-toggle-row { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.admin-dealer-toggle-title { font-size:0.8125rem; font-weight:600; color:rgba(255,255,255,0.75); }
.admin-dealer-toggle-copy { font-size:0.72rem; color:rgba(255,255,255,0.30); margin-top:0.2rem; line-height:1.5; }
.admin-dealer-highlight { color:rgba(255,255,255,0.65); }

/* ══ Hamburger / mobile overlay ════════════════════════════════ */
.ds-hamburger { display:none; align-items:center; justify-content:center; width:2rem; height:2rem; border-radius:0.5rem; border:1px solid rgba(255,255,255,0.10); background:rgba(255,255,255,0.05); cursor:pointer; color:rgba(255,255,255,0.70); flex-shrink:0; transition:background 130ms; }
.ds-hamburger:hover { background:rgba(255,255,255,0.10); color:white; }
.ds-hamburger svg { width:1rem; height:1rem; }
.ds-sidebar-close { display:none; align-items:center; justify-content:center; width:1.875rem; height:1.875rem; border-radius:0.5rem; border:1px solid rgba(255,255,255,0.10); background:rgba(255,255,255,0.05); cursor:pointer; color:rgba(255,255,255,0.55); flex-shrink:0; transition:background 130ms; margin-left:auto; }
.ds-sidebar-close svg { width:0.875rem; height:0.875rem; }
.ds-overlay { display:none; position:fixed; inset:0; z-index:90; background:rgba(0,0,0,0.65); backdrop-filter:blur(4px); }
.ds-overlay.is-open { display:block; }

/* ══ QR code display ═══════════════════════════════════════════ */
.ds-qr-box { width:5.5rem; height:5.5rem; border-radius:0.75rem; border:1px solid rgba(255,255,255,0.08); background:white; padding:0.375rem; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ds-qr-box img { width:100%; height:100%; object-fit:contain; }

/* Dealer analytics */
.analytics-page-header { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.analytics-period-filter { display:inline-flex; align-items:center; padding:0.25rem; border:1px solid rgba(255,255,255,0.08); border-radius:0.75rem; background:rgba(255,255,255,0.035); }
.analytics-period-option { padding:0.5rem 0.75rem; border-radius:0.55rem; color:rgba(255,255,255,0.42); font-size:0.72rem; font-weight:700; text-decoration:none; transition:background 140ms,color 140ms,box-shadow 140ms; }
.analytics-period-option:hover { color:rgba(255,255,255,0.82); }
.analytics-period-option.is-active { color:#08131f; background:#46d2ff; box-shadow:0 5px 18px rgba(70,210,255,0.18); }
.analytics-card { position:relative; min-width:0; max-width:100%; border:1px solid rgba(255,255,255,0.07); border-radius:1rem; background:rgba(8,18,34,0.55); overflow:hidden; overflow:clip; contain:layout paint; }
.analytics-card-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:4.25rem; padding:1rem 1.25rem; border-bottom:1px solid rgba(255,255,255,0.055); }
.analytics-eyebrow { margin-bottom:0.2rem; color:rgba(70,210,255,0.56); font-size:0.625rem; font-weight:700; letter-spacing:0.17em; text-transform:uppercase; }
.analytics-card-title { color:rgba(255,255,255,0.9); font-size:0.95rem; font-weight:700; }
.analytics-card-note { color:rgba(255,255,255,0.3); font-size:0.7rem; }
.analytics-chart-shell { position:relative; width:100%; max-width:100%; min-width:0; padding:1rem 1.25rem 1.25rem; overflow:hidden; overflow:clip; contain:layout size paint; }
.analytics-chart-shell canvas { display:block !important; width:100% !important; max-width:100% !important; height:100% !important; max-height:100% !important; }
.analytics-chart-shell-wide { height:21rem; }
.analytics-chart-shell-dashboard { height:15rem; }
.analytics-chart-shell-donut { height:19rem; }
.analytics-chart-shell-bars { height:22rem; }
.dashboard-performance-card { margin-top:0.1rem; }
.analytics-two-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.analytics-breakdown { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0.5rem; margin:0 1.25rem 1.25rem; padding-top:1rem; border-top:1px solid rgba(255,255,255,0.055); }
.analytics-breakdown-item { display:flex; align-items:center; justify-content:space-between; gap:0.75rem; min-width:0; padding:0.55rem 0.65rem; border:1px solid rgba(255,255,255,0.055); border-radius:0.6rem; background:rgba(255,255,255,0.02); color:rgba(255,255,255,0.4); font-size:0.68rem; }
.analytics-breakdown-label { display:flex; align-items:center; gap:0.45rem; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.analytics-breakdown-dot { width:0.45rem; height:0.45rem; border-radius:50%; background:#46d2ff; flex-shrink:0; }
.analytics-breakdown-item:nth-child(2) .analytics-breakdown-dot { background:#fbbf24; }
.analytics-breakdown-item:nth-child(3) .analytics-breakdown-dot { background:#34d399; }
.analytics-breakdown-item:nth-child(4) .analytics-breakdown-dot { background:#a78bfa; }
.analytics-breakdown-item:nth-child(5) .analytics-breakdown-dot { background:#fb7185; }
.analytics-breakdown-item strong { color:rgba(255,255,255,0.86); font-size:0.75rem; }
.analytics-breakdown-item small { margin-left:0.2rem; color:rgba(255,255,255,0.28); font-size:0.62rem; }
.analytics-main-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(15rem,0.65fr); gap:1rem; align-items:stretch; }
.analytics-empty { display:flex; align-items:center; justify-content:center; min-height:13rem; padding:2rem; color:rgba(255,255,255,0.32); font-size:0.78rem; text-align:center; }
.analytics-summary-card { display:flex; flex-direction:column; }
.analytics-summary-list { padding:0.5rem 1.25rem 0; }
.analytics-summary-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0.9rem 0; border-bottom:1px solid rgba(255,255,255,0.055); color:rgba(255,255,255,0.4); font-size:0.75rem; }
.analytics-summary-row strong { color:#fff; font-family:'Fraunces',ui-serif,serif; font-size:1.1rem; }
.analytics-browser-list { margin:auto 1.25rem 1.25rem; padding:1rem; border:1px solid rgba(255,255,255,0.06); border-radius:0.75rem; background:rgba(255,255,255,0.025); }
.analytics-browser-title { margin-bottom:0.65rem; color:rgba(255,255,255,0.65); font-size:0.7rem; font-weight:700; }
.analytics-browser-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0.3rem 0; color:rgba(255,255,255,0.34); font-size:0.7rem; }
.analytics-browser-row span:last-child { color:rgba(255,255,255,0.72); font-weight:700; }
.analytics-code { color:#46d2ff; font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace; font-size:0.75rem; font-weight:700; letter-spacing:0.055em; }
.analytics-referrer { max-width:18rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-analytics-totals { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0.75rem; }
.admin-analytics-total { display:flex; flex-direction:column; min-width:0; padding:1rem 1.1rem; border:1px solid rgba(255,255,255,0.065); border-radius:0.85rem; background:rgba(255,255,255,0.025); }
.admin-analytics-total span { color:rgba(255,255,255,0.42); font-size:0.68rem; font-weight:700; }
.admin-analytics-total strong { max-width:100%; margin-top:0.4rem; color:#fff; font-family:'Fraunces',ui-serif,serif; font-size:clamp(1.25rem,1.8vw,1.65rem); line-height:1; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.admin-analytics-total small { margin-top:0.35rem; color:rgba(255,255,255,0.27); font-size:0.62rem; }
.admin-analytics-dealer-chart { height:25rem; }
.admin-analytics-browser-list { display:flex; flex-direction:column; gap:0.6rem; padding:1.25rem; }
.admin-analytics-browser-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0.85rem 1rem; border:1px solid rgba(255,255,255,0.06); border-radius:0.7rem; background:rgba(255,255,255,0.025); }
.admin-analytics-browser-row div { display:flex; flex-direction:column; gap:0.2rem; min-width:0; }
.admin-analytics-browser-row span { color:rgba(255,255,255,0.72); font-size:0.74rem; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-analytics-browser-row small { color:rgba(255,255,255,0.3); font-size:0.62rem; }
.admin-analytics-browser-row strong { color:#46d2ff; font-family:'Fraunces',ui-serif,serif; font-size:1.15rem; }
.admin-analytics-table-tools { display:flex; align-items:center; gap:0.65rem; padding:0.85rem 1.25rem; border-bottom:1px solid rgba(255,255,255,0.055); background:rgba(255,255,255,0.015); }
.admin-analytics-dealer-search { flex:1; min-width:12rem; }
.admin-analytics-dealer-sort { width:10rem; flex-shrink:0; }
.admin-analytics-pagination { padding:0.85rem 1.25rem; border-top:1px solid rgba(255,255,255,0.055); }

/* ══ Responsive ════════════════════════════════════════════════ */
@media (max-width: 1023px) {
    .ds-sidebar { position:fixed; left:-18rem; top:0; height:100vh; max-height:100vh; z-index:100; transition:left 230ms cubic-bezier(.4,0,.2,1); box-shadow:none; border-radius:0; }
    .ds-sidebar.is-open { left:0; box-shadow:8px 0 48px rgba(0,0,0,0.55); }
    .ds-sidebar-close { display:flex; }
    .ds-hamburger { display:flex; }
    .ds-topbar { padding:0.875rem 1rem; gap:0.75rem; min-height:4rem; }
    .ds-topbar-eyebrow { display:none; }
    .ds-topbar-title { font-size:1.0625rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:9rem; }
    .ds-live-pill { padding:0.375rem 0.625rem; gap:0.35rem; }
    .ds-live-text { display:none; }
    .ds-viewsite { display:none !important; }
    .ds-body { padding:1rem; gap:1rem; }
    .ds-cards { grid-template-columns:repeat(2,1fr); gap:0.75rem; }
    .lp-stats-grid { grid-template-columns:1fr; }
    .lp-dealer-grid { grid-template-columns:1fr; }
    .admin-dealer-grid,
    .admin-dealer-two-col { grid-template-columns:1fr; }
    .ds-panels { grid-template-columns:1fr; gap:0.75rem; }
    .ds-bottom { grid-template-columns:1fr; gap:1rem; }
    .dealer-dashboard-bottom { grid-template-columns:1fr; }
    .analytics-main-grid { grid-template-columns:1fr; }
    .admin-analytics-totals { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .qr-card-grid { grid-template-columns:repeat(auto-fill,minmax(15rem,17rem)); }
}
@media (min-width: 640px) and (max-width: 1023px) {
    .ds-topbar { padding:1rem 1.25rem; min-height:4.25rem; }
    .ds-topbar-title { max-width:16rem; font-size:1.1875rem; }
    .ds-panels { grid-template-columns:repeat(2,1fr); }
    .ds-body { padding:1.25rem; }
}
@media (max-width: 479px) {
    .portal-dashboard-header { padding:0.875rem 1rem; }
    .portal-dashboard-brand { width:100%; flex-wrap:wrap; gap:0.75rem; }
    .portal-dashboard-actions { width:100%; }
    .portal-dashboard-email { width:100%; }
    .portal-dashboard-hero { padding:1.25rem; }
    .portal-dashboard-title { font-size:1.75rem; }
    .portal-dashboard-grid { grid-template-columns:1fr; }
    .portal-overview { padding:1.125rem 1rem; }
    .admin-dealer-header-main,
    .admin-dealer-header-actions,
    .admin-dealer-filter,
    .admin-dealer-upload-row,
    .admin-dealer-toggle-row,
    .admin-dealer-checkbox-label { width:100%; flex-wrap:wrap; }
    .admin-dealer-stat-grid,
    .admin-dealer-split-2,
    .admin-dealer-split-3 { grid-template-columns:1fr; }
    .admin-dealer-search,
    .admin-dealer-status { width:100%; }
    .lp-header-actions,
    .lp-publish-row,
    .lp-logo-row,
    .qr-guide-strip,
    .qr-filter-row { width:100%; }
    .lp-header-actions,
    .lp-logo-row { flex-wrap:wrap; }
    .lp-preview-btn,
    .qr-filter-select,
    .qr-filter-summary-wrap,
    .qr-filter-summary { width:100%; }
    .qr-filter-summary-wrap { justify-content:flex-start; }
    .qr-empty-state { padding:2rem 1.25rem; }
    .qr-card-grid { grid-template-columns:1fr; }
    .qr-card-media { padding:0.875rem; }
    .qr-card-image { width:128px; height:128px; }
    .analytics-page-header { align-items:stretch; }
    .analytics-period-filter { width:100%; }
    .analytics-period-option { flex:1; text-align:center; }
    .analytics-two-column { grid-template-columns:1fr; }
    .analytics-breakdown { grid-template-columns:1fr; }
    .analytics-card-header { align-items:flex-start; flex-wrap:wrap; }
    .analytics-chart-shell-wide { height:18rem; }
    .analytics-chart-shell-dashboard { height:13rem; }
    .admin-analytics-totals { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .admin-analytics-dealer-chart { height:22rem; }
    .admin-analytics-table-tools { align-items:stretch; flex-wrap:wrap; }
    .admin-analytics-dealer-search { width:100%; flex-basis:100%; }
    .admin-analytics-dealer-sort { flex:1; width:auto; }
    .qr-assign-panel { padding:1.5rem 1.25rem; }
    .ds-topbar { padding:0.75rem; min-height:3.75rem; }
    .ds-topbar-title { font-size:0.9375rem; max-width:7.5rem; }
    .ds-body { padding:0.75rem; gap:0.75rem; }
    .ds-cards { gap:0.5rem; }
    .ds-card { padding:0.875rem; }
    .ds-card-num { font-size:1.875rem; }
    .ds-table th, .ds-table td { padding:0.55rem 0.75rem; }
    .ds-pagination { flex-direction:column; align-items:stretch; }
    .ds-pagination-nav { width:100%; justify-content:center; margin-left:0; }
    .ds-pagination-summary { text-align:center; }
    .ds-pagination-link,
    .ds-pagination-current { min-width:2.25rem; height:2.25rem; padding:0 0.75rem; }
}

/* ==========================================================================
   Consolidated portal template styles
   Static styles formerly embedded in Blade templates live here.
   ========================================================================== */

/* Moved from resources/views/portal/admin/customers/show.blade.php */
@media (max-width: 900px) { .show-two-col { grid-template-columns: 1fr !important; } }

/* Moved from resources/views/portal/admin/dealers/landing-page.blade.php */
.lp-admin-note { display:flex; gap:.75rem; align-items:flex-start; margin-bottom:1.25rem; border:1px solid rgba(70,210,255,.15); border-radius:.9rem; background:rgba(70,210,255,.055); padding:.9rem 1rem; color:rgba(255,255,255,.55); font-size:.76rem; line-height:1.65; }
.lp-admin-note svg { width:1.1rem; flex:0 0 auto; margin-top:.12rem; color:#46d2ff; }
.lp-admin-grid { grid-template-columns:minmax(0,1fr) 21rem; }
.lp-admin-sidebar { position:sticky; top:1.25rem; }
.lp-admin-two-grid, .lp-admin-three-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.lp-admin-three-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.lp-admin-span-two { grid-column:span 2; }
.lp-admin-card-head-row, .lp-admin-subsection-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.lp-admin-checkbox { display:inline-flex; align-items:center; gap:.45rem; color:rgba(255,255,255,.58); font-size:.7rem; font-weight:700; white-space:nowrap; cursor:pointer; }
.lp-admin-checkbox input { width:1rem; height:1rem; accent-color:#46d2ff; }
.lp-admin-subsection { margin-top:1.25rem; border-top:1px solid rgba(255,255,255,.07); padding-top:1.25rem; }
.lp-admin-subtitle { color:rgba(255,255,255,.8); font-size:.8rem; font-weight:700; }
.lp-admin-reward-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin-top:.85rem; }
.lp-admin-numbered-field { display:flex; align-items:center; gap:.5rem; }
.lp-admin-numbered-field > span, .lp-admin-feature-index { display:grid; width:1.7rem; height:1.7rem; flex:0 0 auto; place-items:center; border:1px solid rgba(70,210,255,.2); border-radius:.5rem; background:rgba(70,210,255,.07); color:#46d2ff; font-size:.62rem; font-weight:800; }
.lp-admin-feature-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; margin-top:1.25rem; }
.lp-admin-feature-card { position:relative; border:1px solid rgba(255,255,255,.07); border-radius:.9rem; background:rgba(255,255,255,.018); padding:1rem; }
.lp-admin-feature-index { margin-bottom:.8rem; }
.lp-admin-upload-row { display:grid; grid-template-columns:10rem 1fr; gap:1rem; align-items:center; margin-top:1rem; }
.lp-admin-image-preview { display:grid; width:10rem; height:6.5rem; place-items:center; overflow:hidden; border:1px dashed rgba(255,255,255,.15); border-radius:.8rem; background:rgba(255,255,255,.025); }
.lp-admin-image-preview img { width:100%; height:100%; object-fit:cover; }
.lp-admin-image-preview svg { width:1.8rem; color:rgba(255,255,255,.25); }
.lp-admin-logo-row { display:grid; grid-template-columns:5.5rem 1fr; gap:.9rem; align-items:center; margin-bottom:1rem; }
.lp-admin-logo-preview { display:grid; width:5.5rem; height:4rem; place-items:center; overflow:hidden; border:1px dashed rgba(255,255,255,.15); border-radius:.8rem; background:rgba(255,255,255,.04); padding:.35rem; }
.lp-admin-logo-preview img { width:100%; height:100%; object-fit:contain; }
.lp-admin-logo-preview svg { width:1.5rem; color:rgba(255,255,255,.25); }
.lp-admin-logo-title { margin:0 0 .25rem; color:rgba(255,255,255,.82); font-size:.8rem; font-weight:800; }
.lp-native-file { max-width:100%; color:rgba(255,255,255,.55); font-size:.72rem; }
.lp-native-file::file-selector-button { margin-right:.7rem; border:1px solid rgba(255,255,255,.12); border-radius:.55rem; background:rgba(255,255,255,.06); padding:.5rem .7rem; color:rgba(255,255,255,.72); font:inherit; cursor:pointer; }
.lp-color-field + .lp-color-field { margin-top:.85rem; }
.lp-color-control { display:grid; grid-template-columns:2.7rem 1fr; gap:.55rem; }
.lp-color-control input[type=color] { width:2.7rem; height:2.7rem; border:1px solid rgba(255,255,255,.12); border-radius:.65rem; background:transparent; padding:.18rem; cursor:pointer; }
.lp-theme-preview { display:flex; flex-direction:column; gap:.45rem; margin-top:1.2rem; border-radius:.85rem; background:var(--preview-bg,#F4F7F9); padding:1rem; color:var(--preview-text,#132238); }
.lp-theme-preview span { font-size:.55rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; opacity:.55; }
.lp-theme-preview strong { color:var(--preview-primary,#102A43); font-family:'Fraunces',serif; font-size:1.05rem; }
.lp-theme-preview button { align-self:flex-start; border:0; border-radius:999px; background:var(--preview-accent,#20B8CD); padding:.45rem .75rem; color:#fff; font-size:.6rem; font-weight:800; }
@media (max-width:1050px) { .lp-admin-grid { grid-template-columns:1fr; } .lp-admin-sidebar { position:static; } }
@media (max-width:720px) { .lp-admin-two-grid, .lp-admin-three-grid, .lp-admin-feature-grid, .lp-admin-reward-grid { grid-template-columns:1fr; } .lp-admin-span-two { grid-column:auto; } .lp-admin-upload-row { grid-template-columns:1fr; } .lp-admin-card-head-row { align-items:flex-start; flex-direction:column; } }

/* Moved from resources/views/portal/admin/leads/show.blade.php */
@media (max-width: 800px) { .lead-show-grid { grid-template-columns: 1fr !important; } }

/* Moved from resources/views/portal/admin/marketing-pages/edit.blade.php */
.marketing-edit-layout{display:grid;grid-template-columns:minmax(0,1fr) 20rem;gap:1rem;align-items:start}
.marketing-edit-main{display:flex;flex-direction:column;gap:1rem}
.marketing-edit-side{position:sticky;top:1rem;display:flex;flex-direction:column;gap:1rem}
.marketing-side-row{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-top:1px solid rgba(255,255,255,.06);font-size:.78rem}
.marketing-side-row:first-child{padding-top:0;border-top:0}
.marketing-side-row span{color:rgba(214,226,244,.48)}
.marketing-side-row strong{color:#fff;text-align:right;word-break:break-word}
.marketing-repeater{display:flex;flex-direction:column;gap:.9rem}
.marketing-repeater-card{border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02);border-radius:1rem;padding:1rem}
.marketing-repeater-title{margin:0 0 .9rem;color:#fff;font-size:.82rem;font-weight:700}
.marketing-repeater-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.marketing-empty{margin:0;color:rgba(214,226,244,.56);font-size:.84rem}
.marketing-image-field{display:flex;flex-direction:column;gap:.75rem}
.marketing-image-panel{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:1rem;align-items:start;padding:1rem;border:1px solid rgba(255,255,255,.06);border-radius:1rem;background:rgba(255,255,255,.02)}
.marketing-image-preview{width:100%;aspect-ratio:16/10;border-radius:.9rem;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);display:flex;align-items:center;justify-content:center;overflow:hidden}
.marketing-image-preview img{width:100%;height:100%;object-fit:cover}
.marketing-image-preview span{font-size:.78rem;color:rgba(214,226,244,.45)}
.marketing-image-meta{display:flex;flex-direction:column;gap:.7rem;min-width:0}
.marketing-image-state{margin:0;color:#fff;font-size:.84rem;font-weight:700}
.marketing-image-source{margin:0;color:rgba(214,226,244,.48);font-size:.75rem;line-height:1.5;word-break:break-all}
.marketing-image-upload-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.marketing-image-file{display:inline-flex;align-items:center;min-height:2.1rem;padding:0 .8rem;border-radius:.75rem;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:rgba(214,226,244,.64);font-size:.77rem}
.marketing-image-advanced{border:1px solid rgba(255,255,255,.06);border-radius:.9rem;background:rgba(255,255,255,.015);overflow:hidden}
.marketing-image-advanced summary{cursor:pointer;list-style:none;padding:.85rem 1rem;color:rgba(214,226,244,.82);font-size:.8rem;font-weight:700}
.marketing-image-advanced summary::-webkit-details-marker{display:none}
.marketing-image-advanced-body{padding:0 1rem 1rem}
.marketing-image-help{margin:0;font-size:.74rem;color:rgba(214,226,244,.46);line-height:1.5}
@media (max-width: 1120px){
    .marketing-edit-layout{grid-template-columns:1fr}
    .marketing-edit-side{position:static}
}
@media (max-width: 720px){
    .marketing-repeater-grid{grid-template-columns:1fr}
    .marketing-image-panel{grid-template-columns:1fr}
}

/* Moved from resources/views/portal/admin/marketing-pages/index.blade.php */
.marketing-page-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:1rem}
.marketing-page-card{height:100%}
.marketing-page-copy{margin:0 0 1rem;color:rgba(214,226,244,.72);line-height:1.7;font-size:.875rem}
.marketing-page-meta{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-top:1px solid rgba(255,255,255,.06);font-size:.78rem}
.marketing-page-meta span{color:rgba(214,226,244,.48)}
.marketing-page-meta strong{color:#fff;font-weight:700;text-align:right;word-break:break-word}
.marketing-page-actions{display:flex;gap:.75rem;margin-top:1.1rem}
.marketing-page-actions .ds-btn{flex:1}

/* Moved from resources/views/portal/admin/qr-codes/index.blade.php */
.qr-page-shell {
    display:flex;
    flex-direction:column;
    gap:0.875rem;
    min-height:100%;
}
.qr-page-header { margin-bottom:0; }
.qr-page-meta { display:flex; flex-wrap:wrap; gap:0.5rem; margin-top:0.55rem; }
.qr-toolbar-card { overflow:visible; }
.qr-toolbar-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(22rem,1fr); gap:0.875rem; padding:1rem 1.25rem; align-items:end; }
.qr-toolbar-form { display:grid; gap:0.75rem; align-items:end; }
.qr-toolbar-generate { grid-template-columns:6rem minmax(0,1fr) auto; }
.qr-toolbar-filter { grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto; }
.qr-toolbar-field { margin-bottom:0; }
.qr-toolbar-btn { min-height:2.8rem; justify-content:center; }
.qr-toolbar-form .ds-input,
.qr-toolbar-form .ds-select { padding-top:0.7rem; padding-bottom:0.7rem; }
.qr-list-card { display:flex; flex-direction:column; min-height:0; }
.qr-list-scroll {
    flex:1;
    min-height:0;
    height:clamp(40rem, calc(100dvh - 22rem), 50rem);
    max-height:none;
}
.qr-page-table { font-size:0.75rem; }
.qr-page-table th {
    font-size:0.58rem;
    letter-spacing:0.18em;
    padding-top:0.55rem;
    padding-bottom:0.55rem;
}
.qr-page-table td {
    padding-top:0.5rem;
    padding-bottom:0.5rem;
    font-size:0.74rem;
}
.qr-page-table .ds-btn-sm {
    padding:0.34rem 0.65rem;
    font-size:0.7rem;
}
.qr-page-table .ds-select.ds-btn-sm {
    font-size:0.68rem !important;
}
.qr-thumb {
    width:40px;
    height:40px;
    border-radius:0.5rem;
    overflow:hidden;
    border:1px solid rgba(255,255,255,0.10);
    cursor:pointer;
    transition:transform 120ms,border-color 120ms;
    flex-shrink:0;
}
.qr-thumb:hover {
    transform:scale(1.03);
    border-color:rgba(70,210,255,0.24);
}
.qr-pagination-bar {
    overflow:visible;
    background:rgba(11,23,37,0.92);
}
.qr-pagination-bar-body {
    padding:0.95rem 1.15rem;
}
.qr-pagination-bar .ds-pagination {
    gap:0.75rem;
}
.qr-pagination-bar .ds-pagination-summary {
    font-size:0.7rem;
}
.qr-pagination-bar .ds-pagination-link,
.qr-pagination-bar .ds-pagination-current,
.qr-pagination-bar .ds-pagination-gap {
    min-width:2.2rem;
    height:2.2rem;
    padding:0 0.7rem;
    font-size:0.76rem;
    border-radius:0.65rem;
}
@media (max-width: 1200px) {
    .qr-toolbar-grid { grid-template-columns:1fr; }
    .qr-list-scroll { height:clamp(34rem, calc(100dvh - 24rem), 42rem); }
}
@media (max-width: 900px) {
    .qr-toolbar-generate,
    .qr-toolbar-filter { grid-template-columns:1fr; }
    .qr-toolbar-btn { width:100%; }
    .qr-list-scroll { height:clamp(26rem, 52vh, 34rem); }
}

/* Moved from resources/views/portal/auth/forgot-password.blade.php */
body.portal-auth-page { overflow: hidden; height: 100%; }
body.portal-auth-page main.portal-main-auth { padding: 0 !important; height: 100vh; overflow: hidden; }

.lp-wrap {
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem 1.25rem;
    box-sizing: border-box;
    overflow: hidden;
}
@media (max-width: 479px) {
    .lp-wrap { padding: 1.25rem 0.875rem; }
    .lp-card { padding: 1.5rem 1.25rem 1.625rem; }
}

.lp-brand {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    margin-bottom: 1.75rem;
    text-decoration: none;
}
.lp-brand-img {
    width: 3.25rem; height: 3.25rem;
    border-radius: 1rem;
    background: rgba(70,210,255,0.10);
    border: 1px solid rgba(70,210,255,0.22);
    padding: 0.35rem;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 0 20px rgba(70,210,255,0.12);
}
.lp-brand-img img { width: 100%; height: 100%; object-fit: contain; }
.lp-brand-text { display: flex; flex-direction: column; }
.lp-brand-name {
    font-family: 'Fraunces', ui-serif, serif;
    font-size: 1.375rem;
    font-weight: 800;
    color: white;
    line-height: 1.15;
    letter-spacing: -0.01em;
}
.lp-brand-sub {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(70,210,255,0.60);
    margin-top: 0.1rem;
}

.lp-card {
    width: 100%;
    max-width: 26rem;
    border-radius: 1.5rem;
    border: 1px solid rgba(255,255,255,0.08);
    background: linear-gradient(170deg, rgba(20,36,58,0.97) 0%, rgba(12,22,40,0.98) 100%);
    padding: 2rem 1.875rem;
    box-shadow: 0 40px 90px rgba(0,0,0,0.55), 0 0 0 1px rgba(255,255,255,0.03);
    position: relative;
    overflow: hidden;
}
.lp-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(70,210,255,0.50), transparent);
}
.lp-card::after {
    content: '';
    position: absolute;
    top: -5rem; right: -5rem;
    width: 15rem; height: 15rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(70,210,255,0.06) 0%, transparent 70%);
    pointer-events: none;
}

.lp-eyebrow {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(70,210,255,0.65);
    margin-bottom: 0.5rem;
}
.lp-heading {
    font-family: 'Fraunces', ui-serif, serif;
    font-size: 2.25rem;
    font-weight: 800;
    color: white;
    line-height: 1.1;
    letter-spacing: -0.02em;
}
.lp-sub {
    font-size: 0.8125rem;
    line-height: 1.7;
    color: rgba(255,255,255,0.40);
    margin-top: 0.5rem;
}

.lp-alert-ok {
    margin-top: 1.125rem;
    display: flex; align-items: flex-start; gap: 0.625rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(70,210,255,0.22);
    background: rgba(70,210,255,0.06);
    padding: 0.625rem 0.875rem;
    font-size: 0.8rem; color: #46d2ff;
}
.lp-alert-err {
    margin-top: 1.125rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(255,100,100,0.25);
    background: rgba(255,100,100,0.06);
    padding: 0.625rem 0.875rem;
    font-size: 0.8rem; color: #ffd6d6;
}

.lp-form { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 1.125rem; }
.lp-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: rgba(255,255,255,0.75);
    margin-bottom: 0.4rem;
}
.lp-field-err { margin-top: 0.3rem; font-size: 0.775rem; color: #ffd6d6; }

.portal-input {
    width: 100%; display: block; box-sizing: border-box;
    border-radius: 0.75rem;
    border: 1px solid rgba(255,255,255,0.09);
    background: rgba(8,18,34,0.60);
    padding: 0.725rem 1rem;
    font-size: 0.875rem;
    font-family: 'Space Grotesk', ui-sans-serif, sans-serif;
    color: rgba(255,255,255,0.88);
    outline: none;
    transition: border-color 150ms, box-shadow 150ms;
}
.portal-input::placeholder { color: rgba(255,255,255,0.18); }
.portal-input:focus {
    border-color: rgba(70,210,255,0.40);
    box-shadow: 0 0 0 3px rgba(70,210,255,0.09);
}
.portal-input-error { border-color: rgba(255,100,100,0.38) !important; }

.lp-btn {
    width: 100%;
    border-radius: 9999px;
    background: linear-gradient(135deg, #46d2ff 0%, #28b8e0 100%);
    padding: 0.825rem 1.5rem;
    font-size: 0.9375rem;
    font-weight: 700;
    color: #04111f;
    border: none;
    cursor: pointer;
    font-family: inherit;
    letter-spacing: 0.015em;
    box-shadow: 0 4px 22px rgba(70,210,255,0.28);
    transition: opacity 130ms, box-shadow 130ms, transform 90ms;
}
.lp-btn:hover  { opacity: 0.90; box-shadow: 0 6px 30px rgba(70,210,255,0.38); }
.lp-btn:active { transform: scale(0.99); }
.lp-btn:disabled { opacity: 0.55; cursor: not-allowed; box-shadow: none; }

.lp-footer-link {
    margin-top: 1.25rem;
    text-align: center;
    font-size: 0.8125rem;
    color: rgba(255,255,255,0.35);
}
.lp-footer-link a {
    color: #46d2ff;
    font-weight: 600;
    text-decoration: none;
    margin-left: 0.2rem;
    transition: color 130ms;
}
.lp-footer-link a:hover { color: #79e1ff; }

/* Moved from resources/views/portal/auth/login.blade.php */
/* Zero out parent padding, kill any scrollbar */
body.portal-auth-page { overflow: hidden; height: 100%; }
body.portal-auth-page main.portal-main-auth { padding: 0 !important; height: 100vh; overflow: hidden; }

/* ── Page wrapper ── */
.lp-wrap {
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem 1.25rem;
    box-sizing: border-box;
    overflow: hidden;
}
@media (max-width: 479px) {
    .lp-wrap { padding: 1.25rem 0.875rem; }
    .lp-card { padding: 1.5rem 1.25rem 1.625rem; }
}

/* ── Logo above the card ── */
.lp-brand {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    margin-bottom: 1.75rem;
    text-decoration: none;
}
.lp-brand-img {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 1rem;
    background: rgba(70,210,255,0.10);
    border: 1px solid rgba(70,210,255,0.22);
    padding: 0.35rem;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 0 20px rgba(70,210,255,0.12);
}
.lp-brand-img img { width: 100%; height: 100%; object-fit: contain; }
.lp-brand-text { display: flex; flex-direction: column; }
.lp-brand-name {
    font-family: 'Fraunces', ui-serif, serif;
    font-size: 1.375rem;
    font-weight: 800;
    color: white;
    line-height: 1.15;
    letter-spacing: -0.01em;
}
.lp-brand-sub {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(70,210,255,0.60);
    margin-top: 0.1rem;
}

/* ── Card ── */
.lp-card {
    width: 100%;
    max-width: 26rem;
    border-radius: 1.5rem;
    border: 1px solid rgba(255,255,255,0.08);
    background: linear-gradient(170deg, rgba(20,36,58,0.97) 0%, rgba(12,22,40,0.98) 100%);
    padding: 2rem 1.875rem 2rem;
    box-shadow: 0 40px 90px rgba(0,0,0,0.55), 0 0 0 1px rgba(255,255,255,0.03);
    position: relative;
    overflow: hidden;
}
/* Cyan top glow */
.lp-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(70,210,255,0.50), transparent);
}
/* Subtle ambient orb */
.lp-card::after {
    content: '';
    position: absolute;
    top: -5rem; right: -5rem;
    width: 15rem; height: 15rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(70,210,255,0.06) 0%, transparent 70%);
    pointer-events: none;
}

.lp-eyebrow {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(70,210,255,0.65);
    margin-bottom: 0.5rem;
}
.lp-heading {
    font-family: 'Fraunces', ui-serif, serif;
    font-size: 2.25rem;
    font-weight: 800;
    color: white;
    line-height: 1.1;
    letter-spacing: -0.02em;
}
.lp-sub {
    font-size: 0.8125rem;
    line-height: 1.7;
    color: rgba(255,255,255,0.40);
    margin-top: 0.5rem;
}

/* ── Alerts ── */
.lp-alert-ok {
    margin-top: 1.125rem;
    display: flex; align-items: flex-start; gap: 0.625rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(70,210,255,0.22);
    background: rgba(70,210,255,0.06);
    padding: 0.625rem 0.875rem;
    font-size: 0.8rem; color: #46d2ff;
}
.lp-alert-err {
    margin-top: 1.125rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(255,100,100,0.25);
    background: rgba(255,100,100,0.06);
    padding: 0.625rem 0.875rem;
    font-size: 0.8rem; color: #ffd6d6;
}

/* ── Form ── */
.lp-form { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 1.125rem; }
.lp-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: rgba(255,255,255,0.75);
    margin-bottom: 0.4rem;
}
.lp-label-row {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 0.4rem;
}
.lp-forgot {
    font-size: 0.75rem;
    font-weight: 600;
    color: rgba(70,210,255,0.65);
    text-decoration: none;
    transition: color 130ms;
}
.lp-forgot:hover { color: #46d2ff; }
.lp-field-err { margin-top: 0.3rem; font-size: 0.775rem; color: #ffd6d6; }

/* ── Input ── */
.portal-input {
    width: 100%; display: block; box-sizing: border-box;
    border-radius: 0.75rem;
    border: 1px solid rgba(255,255,255,0.09);
    background: rgba(8,18,34,0.60);
    padding: 0.725rem 1rem;
    font-size: 0.875rem;
    font-family: 'Space Grotesk', ui-sans-serif, sans-serif;
    color: rgba(255,255,255,0.88);
    outline: none;
    transition: border-color 150ms, box-shadow 150ms;
}
.portal-input::placeholder { color: rgba(255,255,255,0.18); }
.portal-input:focus {
    border-color: rgba(70,210,255,0.40);
    box-shadow: 0 0 0 3px rgba(70,210,255,0.09);
}
.portal-input-error { border-color: rgba(255,100,100,0.38) !important; }

/* ── Password wrapper with eye toggle ── */
.lp-pw-wrap { position: relative; }
.lp-pw-wrap .portal-input { padding-right: 3.25rem; }
.lp-eye {
    position: absolute;
    right: 0.55rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    width: 2.125rem;
    height: 2.125rem;
    padding: 0;
    color: rgba(255,255,255,0.28);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 130ms;
    line-height: 0;
    border-radius: 9999px;
}
.lp-eye:hover { color: rgba(255,255,255,0.65); }
.lp-eye svg {
    position: absolute;
    inset: 0;
    margin: auto;
    width: 1.05rem;
    height: 1.05rem;
    pointer-events: none;
    overflow: visible;
    flex-shrink: 0;
}
.lp-eye-icon-hidden { display: none !important; }

/* ── Remember me ── */
.lp-check-row {
    display: flex; align-items: center; gap: 0.625rem;
    font-size: 0.8125rem;
    color: rgba(255,255,255,0.48);
    cursor: pointer;
}
.lp-check-row input[type="checkbox"] {
    width: 1rem; height: 1rem;
    accent-color: #46d2ff;
    cursor: pointer; flex-shrink: 0;
}

/* ── Submit button ── */
.lp-btn {
    width: 100%;
    border-radius: 9999px;
    background: linear-gradient(135deg, #46d2ff 0%, #28b8e0 100%);
    padding: 0.825rem 1.5rem;
    font-size: 0.9375rem;
    font-weight: 700;
    color: #04111f;
    border: none;
    cursor: pointer;
    font-family: inherit;
    letter-spacing: 0.015em;
    box-shadow: 0 4px 22px rgba(70,210,255,0.28);
    transition: opacity 130ms, box-shadow 130ms, transform 90ms;
}
.lp-btn:hover  { opacity: 0.90; box-shadow: 0 6px 30px rgba(70,210,255,0.38); }
.lp-btn:active { transform: scale(0.99); }
.lp-btn:disabled { opacity: 0.55; cursor: not-allowed; box-shadow: none; }

/* Moved from resources/views/portal/auth/reset-password.blade.php */
body.portal-auth-page { overflow: hidden; height: 100%; }
body.portal-auth-page main.portal-main-auth { padding: 0 !important; height: 100vh; overflow: hidden; }

.lp-wrap {
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.5rem 1.25rem;
    box-sizing: border-box;
    overflow: hidden;
}
@media (max-width: 479px) {
    .lp-wrap { padding: 1.25rem 0.875rem; }
    .lp-card { padding: 1.5rem 1.25rem 1.625rem; }
}

.lp-brand {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    margin-bottom: 1.75rem;
    text-decoration: none;
}
.lp-brand-img {
    width: 3.25rem; height: 3.25rem;
    border-radius: 1rem;
    background: rgba(70,210,255,0.10);
    border: 1px solid rgba(70,210,255,0.22);
    padding: 0.35rem;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 0 20px rgba(70,210,255,0.12);
}
.lp-brand-img img { width: 100%; height: 100%; object-fit: contain; }
.lp-brand-text { display: flex; flex-direction: column; }
.lp-brand-name {
    font-family: 'Fraunces', ui-serif, serif;
    font-size: 1.375rem;
    font-weight: 800;
    color: white;
    line-height: 1.15;
    letter-spacing: -0.01em;
}
.lp-brand-sub {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(70,210,255,0.60);
    margin-top: 0.1rem;
}

.lp-card {
    width: 100%;
    max-width: 26rem;
    border-radius: 1.5rem;
    border: 1px solid rgba(255,255,255,0.08);
    background: linear-gradient(170deg, rgba(20,36,58,0.97) 0%, rgba(12,22,40,0.98) 100%);
    padding: 2rem 1.875rem;
    box-shadow: 0 40px 90px rgba(0,0,0,0.55), 0 0 0 1px rgba(255,255,255,0.03);
    position: relative;
    overflow: hidden;
}
.lp-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(70,210,255,0.50), transparent);
}
.lp-card::after {
    content: '';
    position: absolute;
    top: -5rem; right: -5rem;
    width: 15rem; height: 15rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(70,210,255,0.06) 0%, transparent 70%);
    pointer-events: none;
}

.lp-eyebrow {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: rgba(70,210,255,0.65);
    margin-bottom: 0.5rem;
}
.lp-heading {
    font-family: 'Fraunces', ui-serif, serif;
    font-size: 2.25rem;
    font-weight: 800;
    color: white;
    line-height: 1.1;
    letter-spacing: -0.02em;
}
.lp-sub {
    font-size: 0.8125rem;
    line-height: 1.7;
    color: rgba(255,255,255,0.40);
    margin-top: 0.5rem;
}

.lp-alert-err {
    margin-top: 1.125rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(255,100,100,0.25);
    background: rgba(255,100,100,0.06);
    padding: 0.625rem 0.875rem;
    font-size: 0.8rem; color: #ffd6d6;
}

.lp-form { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 1.125rem; }
.lp-label {
    display: block;
    font-size: 0.8125rem;
    font-weight: 600;
    color: rgba(255,255,255,0.75);
    margin-bottom: 0.4rem;
}
.lp-field-err { margin-top: 0.3rem; font-size: 0.775rem; color: #ffd6d6; }

.portal-input {
    width: 100%; display: block; box-sizing: border-box;
    border-radius: 0.75rem;
    border: 1px solid rgba(255,255,255,0.09);
    background: rgba(8,18,34,0.60);
    padding: 0.725rem 1rem;
    font-size: 0.875rem;
    font-family: 'Space Grotesk', ui-sans-serif, sans-serif;
    color: rgba(255,255,255,0.88);
    outline: none;
    transition: border-color 150ms, box-shadow 150ms;
}
.portal-input::placeholder { color: rgba(255,255,255,0.18); }
.portal-input:focus {
    border-color: rgba(70,210,255,0.40);
    box-shadow: 0 0 0 3px rgba(70,210,255,0.09);
}
.portal-input-error { border-color: rgba(255,100,100,0.38) !important; }

.lp-btn {
    width: 100%;
    border-radius: 9999px;
    background: linear-gradient(135deg, #46d2ff 0%, #28b8e0 100%);
    padding: 0.825rem 1.5rem;
    font-size: 0.9375rem;
    font-weight: 700;
    color: #04111f;
    border: none;
    cursor: pointer;
    font-family: inherit;
    letter-spacing: 0.015em;
    box-shadow: 0 4px 22px rgba(70,210,255,0.28);
    transition: opacity 130ms, box-shadow 130ms, transform 90ms;
}
.lp-btn:hover  { opacity: 0.90; box-shadow: 0 6px 30px rgba(70,210,255,0.38); }
.lp-btn:active { transform: scale(0.99); }
.lp-btn:disabled { opacity: 0.55; cursor: not-allowed; box-shadow: none; }

.lp-footer-link {
    margin-top: 1.25rem;
    text-align: center;
    font-size: 0.8125rem;
    color: rgba(255,255,255,0.35);
}
.lp-footer-link a {
    color: #46d2ff;
    font-weight: 600;
    text-decoration: none;
    margin-left: 0.2rem;
    transition: color 130ms;
}
.lp-footer-link a:hover { color: #79e1ff; }

/* Moved from resources/views/portal/dealer/customers/_date-picker.blade.php */
.fbf-date-wrap { position: relative; }
.fbf-date-wrap .ds-input {
    cursor: pointer;
    padding-right: 2.75rem;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.8' stroke='%2346d2ff'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6.75 3v2.25M17.25 3v2.25M3.75 8.25h16.5M5.25 5.25h13.5A1.5 1.5 0 0 1 20.25 6.75v12A1.5 1.5 0 0 1 18.75 20.25H5.25A1.5 1.5 0 0 1 3.75 18.75v-12A1.5 1.5 0 0 1 5.25 5.25Z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.95rem center;
    background-size: 1.05rem;
}
.fbf-date-wrap .ds-input:focus {
    border-color: rgba(70,210,255,0.65);
    box-shadow: 0 0 0 3px rgba(70,210,255,0.14);
}
.fbf-date-popover {
    position: fixed;
    z-index: 300;
    width: 17.5rem;
    max-width: calc(100vw - 1.5rem);
    border: 1px solid rgba(70,210,255,0.30);
    border-radius: 0.75rem;
    background: #081526;
    box-shadow: 0 26px 70px rgba(0,0,0,0.62), 0 0 0 1px rgba(255,255,255,0.06) inset;
    padding: 0.65rem;
    color: rgba(255,255,255,0.86);
}
.fbf-date-head { display: flex; align-items: center; justify-content: space-between; gap: 0.45rem; margin-bottom: 0.5rem; }
.fbf-date-selects { display: grid; grid-template-columns: minmax(0, 1fr) 4.8rem; gap: 0.3rem; flex: 1; min-width: 0; }
.fbf-date-select {
    width: 100%;
    min-width: 0;
    border: 1px solid rgba(70,210,255,0.18);
    border-radius: 0.5rem;
    background: #0d1f33;
    color: #f3f7fb;
    font-size: 0.68rem;
    font-weight: 800;
    padding: 0.4rem 0.5rem;
    outline: none;
    cursor: pointer;
}
.fbf-date-select:focus { border-color: rgba(70,210,255,0.58); box-shadow: 0 0 0 3px rgba(70,210,255,0.12); }
.fbf-date-select option { background: #0d1f33; color: #f3f7fb; }
.fbf-date-nav { display: flex; gap: 0.25rem; }
.fbf-date-btn {
    width: 1.7rem;
    height: 1.7rem;
    border: 1px solid rgba(70,210,255,0.16);
    border-radius: 0.45rem;
    background: rgba(70,210,255,0.06);
    color: rgba(255,255,255,0.86);
    cursor: pointer;
    font-size: 0.85rem;
    line-height: 1;
}
.fbf-date-btn:hover { border-color: rgba(70,210,255,0.45); color: #46d2ff; background: rgba(70,210,255,0.12); }
.fbf-date-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.12rem; }
.fbf-date-dow { padding: 0.22rem 0; text-align: center; font-size: 0.55rem; font-weight: 800; color: rgba(142,233,255,0.58); }
.fbf-date-day {
    height: 1.75rem;
    border: 1px solid transparent;
    border-radius: 0.4rem;
    background: transparent;
    color: rgba(255,255,255,0.78);
    font-size: 0.67rem;
    cursor: pointer;
}
.fbf-date-day:hover { background: rgba(70,210,255,0.13); border-color: rgba(70,210,255,0.34); color: white; }
.fbf-date-day.is-muted { color: rgba(255,255,255,0.30); }
.fbf-date-day.is-today { border-color: rgba(70,210,255,0.36); color: #8ee9ff; }
.fbf-date-day.is-selected { background: #46d2ff; color: #03101e; font-weight: 800; box-shadow: 0 0 0 3px rgba(70,210,255,0.14); }
.fbf-date-day.is-disabled { opacity:.24; cursor:not-allowed; text-decoration:line-through; }
.fbf-date-day.is-disabled:hover { border-color:transparent; background:transparent; color:rgba(255,255,255,.3); }
.fbf-date-foot { display: flex; justify-content: space-between; gap: 0.5rem; margin-top: 0.45rem; }
.fbf-date-link { border: 0; background: transparent; color: #46d2ff; font-size: 0.65rem; font-weight: 800; cursor: pointer; padding: 0.25rem; }
.fbf-date-link:hover { color: #8ee9ff; }
.fbf-date-link:disabled { opacity:.3; cursor:not-allowed; }

/* Moved from resources/views/portal/dealer/customers/create.blade.php */
@media (max-width: 900px) { .form-two-col { grid-template-columns: 1fr !important; } }
.req-star { color: #f87171; }
.ds-input-err { border-color: rgba(252,165,165,0.45) !important; }
.ds-input-err:focus { border-color: rgba(252,165,165,0.65) !important; box-shadow: 0 0 0 3px rgba(252,165,165,0.10) !important; }
#submit-btn:disabled { opacity: 0.5; cursor: not-allowed; box-shadow: none; }

/* Moved from resources/views/portal/dealer/customers/create.blade.php */
@keyframes _cspin { to { transform: rotate(360deg); } }

/* Moved from resources/views/portal/dealer/customers/edit.blade.php */
@media (max-width: 900px) { .form-two-col { grid-template-columns: 1fr !important; } }
.req-star { color: #f87171; }
.ds-input-err { border-color: rgba(252,165,165,0.45) !important; }
.ds-input-err:focus { border-color: rgba(252,165,165,0.65) !important; box-shadow: 0 0 0 3px rgba(252,165,165,0.10) !important; }

/* Moved from resources/views/portal/dealer/customers/edit.blade.php */
@keyframes _cspin { to { transform: rotate(360deg); } }

/* Moved from resources/views/portal/dealer/customers/show.blade.php */
@media (max-width: 900px) { .show-two-col { grid-template-columns: 1fr !important; } }

/* Moved from resources/views/portal/dealer/landing-page.blade.php */
.lp-dealer-card-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.lp-dealer-check { display:inline-flex; align-items:center; gap:.45rem; color:rgba(255,255,255,.62); font-size:.7rem; font-weight:700; white-space:nowrap; cursor:pointer; }
.lp-dealer-check input { width:1rem; height:1rem; accent-color:#46d2ff; }
.lp-dealer-reward-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin-top:1rem; }
.lp-dealer-copy-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.lp-dealer-numbered { display:flex; align-items:center; gap:.5rem; }
.lp-dealer-numbered > span { display:grid; width:1.75rem; height:1.75rem; flex:0 0 auto; place-items:center; border:1px solid rgba(70,210,255,.24); border-radius:.5rem; background:rgba(70,210,255,.08); color:#46d2ff; font-size:.64rem; font-weight:800; }
.lp-dealer-numbered .ds-input { min-width:0; }
.lp-reward-remove { display:grid; width:2rem; height:2rem; flex:0 0 auto; place-items:center; border:1px solid rgba(248,113,113,.2); border-radius:.55rem; background:rgba(248,113,113,.06); color:rgba(248,113,113,.78); cursor:pointer; transition:background-color .15s ease,color .15s ease,border-color .15s ease; }
.lp-reward-remove:hover { border-color:rgba(248,113,113,.4); background:rgba(248,113,113,.12); color:#fca5a5; }
.lp-reward-remove:disabled { opacity:.3; cursor:not-allowed; }
.lp-reward-remove svg,.lp-add-reward svg { width:1rem; height:1rem; }
.lp-add-reward { margin-top:.8rem; }
.lp-dealer-feature-divider { margin:1.15rem 0 .8rem; border-top:1px solid rgba(255,255,255,.07); padding-top:1rem; color:rgba(70,210,255,.7); font-size:.65rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.lp-banner-control { display:grid; grid-template-columns:minmax(13rem,16rem) minmax(0,1fr); align-items:start; gap:1.25rem; margin-top:.45rem; }
.lp-banner-actions { min-width:0; }
.lp-banner-actions .lp-upload-btn { width:100%; }
.lp-banner-actions .lp-field-help { margin-top:.65rem; line-height:1.6; }
.lp-dealer-hero-preview { display:block; width:min(100%,42rem); aspect-ratio:10/3; justify-self:end; border:1px solid rgba(255,255,255,.1); border-radius:.75rem; object-fit:cover; }
.lp-dealer-hero-preview[hidden] { display:none; }
.lp-dealer-contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.lp-dealer-color-field + .lp-dealer-color-field { margin-top:.85rem; }
.lp-dealer-color-control { display:grid; grid-template-columns:2.7rem 1fr; gap:.55rem; }
.lp-dealer-color-control input[type=color] { width:2.7rem; height:2.7rem; border:1px solid rgba(255,255,255,.12); border-radius:.65rem; background:transparent; padding:.18rem; cursor:pointer; }
@media(max-width:680px){ .lp-dealer-reward-grid,.lp-dealer-copy-grid,.lp-dealer-contact-grid,.lp-banner-control{grid-template-columns:1fr}.lp-dealer-card-head{align-items:flex-start;flex-direction:column}.lp-dealer-hero-preview{width:100%;justify-self:stretch} }

/* Moved from resources/views/portal/dealer/leads-show.blade.php */
@media (max-width: 800px) { .lead-show-grid { grid-template-columns: 1fr !important; } }

/* Static declarations formerly stored in style attributes. */
body .portal-style-050c9fdee8 { display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.65rem; }
body .portal-style-05b6f964ff { font-size:0.72rem; }
body .portal-style-066f18065b { margin-top:0.25rem;font-family:monospace;font-size:1rem;font-weight:800;letter-spacing:0.12em;color:#46d2ff; }
body .portal-style-0781f946b0 { display:inline-flex;align-items:center;gap:0.35rem;text-decoration:none;color:rgba(70,210,255,0.60);margin-bottom:0.25rem;font-size:0.75rem;font-weight:600; }
body .portal-style-07bbf13a37 { font-size:0.75rem; }
body .portal-style-09d0cd4628 { font-size:0.8125rem;color:rgba(255,255,255,0.55);line-height:1.7;white-space:pre-line; }
body .portal-style-09d398f5ee { background:white;border-radius:1rem;padding:1rem;display:flex;align-items:center;justify-content:center;margin-bottom:1.125rem; }
body .portal-style-0a83287649 { font-family:'Fraunces',serif;font-size:1.125rem;font-weight:800;color:white;margin-bottom:1.25rem;padding-right:2rem; }
body .portal-style-12ffbb286a { color:#ffd21e;font-size:.72rem; }
body .portal-style-136dd0c272 { font-size:0.72rem;color:rgba(255,255,255,0.28); }
body .portal-style-138ff33a66 { text-transform:none;letter-spacing:0; }
body .portal-style-1613bc62b5 { display:flex;align-items:center;gap:0.625rem;flex-wrap:wrap; }
body .portal-style-19de1261fa { overflow-wrap:anywhere; }
body .portal-style-1ca70e8d90 { font-size:0.72rem;color:rgba(255,255,255,0.30); }
body .portal-style-1f2a270f94 { font-size:0.875rem;line-height:1.75;color:rgba(255,255,255,0.42);margin-bottom:1.5rem; }
body .portal-style-21d91b7027 { display:block; }
body .portal-style-25e3e8beea { margin:0;color:#64748b; }
body .portal-style-26c01eaf94 { font-size:0.7rem;color:rgba(70,210,255,0.70); }
body .portal-style-2834783d20 { margin:.25rem 0;color:#64748b;font-size:.82rem; }
body .portal-style-293f639dee { font-size:0.68rem;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;color:rgba(70,210,255,0.72); }
body .portal-style-2976360aae { width:100%;justify-content:center; }
body .portal-style-2b2671dab2 { color:#ffd21e;font-weight:800; }
body .portal-style-2d3aafab92 { flex:1;justify-content:center; }
body .portal-style-2e54f1455f { color:rgba(255,255,255,.38); }
body .portal-style-30d1413814 { margin-top:1rem;display:inline-flex; }
body .portal-style-31f71edd66 { font-size:0.62rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:rgba(70,210,255,0.60);margin-bottom:0.25rem; }
body .portal-style-325ea4ec80 { display:none;position:fixed;inset:0;z-index:200;align-items:center;justify-content:center;padding:1rem; }
body .portal-style-33c924797c { width:2rem;height:2rem;color:rgba(70,210,255,0.35); }
body .portal-style-343da177cd { margin:.5rem 0;font-size:.85rem; }
body .portal-style-3454c446d2 { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0.2rem;font-size:0.78rem;color:rgba(252,165,165,0.75); }
body .portal-style-353b81f2a3 { display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid #edf1f5; }
body .portal-style-3769493b2f { display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap; }
body .portal-style-3ba545b22f { text-align:center;font-size:0.67rem;color:rgba(255,255,255,0.18);margin-top:0.75rem; }
body .portal-style-40467bc5d2 { color:#46d2ff;text-decoration:none; }
body .portal-style-4491dbbc4a { padding:0.5rem 1rem; }
body .portal-style-4507865e94 { font-size:0.8125rem;color:rgba(255,255,255,0.30);margin-bottom:1rem; }
body .portal-style-454ee90380 { font-size:0.75rem;color:rgba(251,191,36,0.78); }
body .portal-style-47211f0b80 { width:9rem;padding:0.35rem 2rem 0.35rem 0.6rem;font-size:0.72rem;border-radius:0.5rem; }
body .portal-style-47321432c9 { font-family:monospace;text-transform:uppercase; }
body .portal-style-4cbf90402f { width:100%;justify-content:center;font-size:0.7rem; }
body .portal-style-4eb1603925 { display:flex;align-items:center;gap:0.375rem; }
body .portal-style-4ec6cd6113 { position:absolute;top:1rem;right:1rem;width:2rem;height:2rem;border-radius:50%;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.55);cursor:pointer;display:flex;align-items:center;justify-content:center; }
body .portal-style-519f46b9dd { margin-top:0.45rem;font-size:0.72rem;color:rgba(255,255,255,0.34);line-height:1.55; }
body .portal-style-594f1010bc { text-align:center;padding:3rem 1rem; }
body .portal-style-59bc77d6ea { margin-bottom:0;flex:1;min-width:14rem; }
body .portal-style-5a825e034e { display:inline-flex;align-items:center;gap:0.5rem;background:linear-gradient(135deg,#46d2ff,#28b8e0);color:#03101e;font-weight:700;border-radius:0.75rem;padding:0.7rem 1.5rem;text-decoration:none;font-size:0.875rem; }
body .portal-style-5afe23a7e2 { display:flex;align-items:center;justify-content:space-between;margin-top:0.5rem; }
body .portal-style-5d40cf5934 { background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-top:none;border-radius:0 0 0.875rem 0.875rem;padding:0.875rem; }
body .portal-style-5d7c55adf7 { font-family:monospace;font-size:0.8rem;letter-spacing:0.05em; }
body .portal-style-5eda0dd13f { border-radius:0.875rem;overflow:hidden; }
body .portal-style-601902cb89 { font-size:0.7rem;color:rgba(255,255,255,0.28); }
body .portal-style-63d058f849 { cursor:pointer; }
body .portal-style-63dc6ba11e { width:10rem; }
body .portal-style-63de08c62d { display:flex;gap:0.75rem; }
body .portal-style-67b2e46251 { color:rgba(255,255,255,0.20); }
body .portal-style-6df4c10bc1 { font-size:0.72rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.28);margin-bottom:0.625rem; }
body .portal-style-6fa4493274 { width:0.875rem;height:0.875rem; }
body .portal-style-6fb3962b92 { display:flex;align-items:flex-start;gap:0.875rem; }
body .portal-style-71fbafbe07 { background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:0.75rem;padding:1rem 1.25rem;font-size:0.8375rem;line-height:1.75;color:rgba(255,255,255,0.65); }
body .portal-style-74c6ea8589 { position:absolute;inset:0;background:rgba(0,0,0,0.72);backdrop-filter:blur(8px); }
body .portal-style-750de4251e { display:grid;grid-template-columns:1fr 18rem;gap:1.25rem;align-items:start; }
body .portal-style-76084ee4e5 { margin-bottom:0; }
body .portal-style-7db4ee0f61 { font-size:0.7rem;color:rgba(255,255,255,0.30); }
body .portal-style-7fce3abc18 { width:5rem; }
body .portal-style-8240dc57b4 { display:grid;grid-template-columns:1fr 1fr;gap:0.75rem; }
body .portal-style-8273adc543 { font-size:0.62rem;color:rgba(255,255,255,0.25);text-align:center;margin-top:0.25rem;word-break:break-all; }
body .portal-style-870be05b12 { color:rgba(255,255,255,0.30);font-weight:400;text-transform:none;letter-spacing:0; }
body .portal-style-8830d205c4 { width:8rem;padding:0.35rem 2rem 0.35rem 0.6rem;font-size:0.72rem;border-radius:0.5rem; }
body .portal-style-8b7eb6ab5f { display:inline-flex;align-items:center;gap:0.4rem;font-size:0.78rem;font-weight:600;color:rgba(255,255,255,0.38);text-decoration:none; }
body .portal-style-8df173c927 { background:white;padding:0.875rem;display:flex;align-items:center;justify-content:center; }
body .portal-style-8f0a416bfc { font-family:monospace;font-weight:800;letter-spacing:0.15em;color:#46d2ff;text-align:center;font-size:0.9rem; }
body .portal-style-90634e1f6b { margin-bottom:0.75rem; }
body .portal-style-92e7a29416 { border-radius:0.875rem;border:1px solid rgba(252,165,165,0.22);background:rgba(252,165,165,0.06);padding:1rem 1.25rem;display:flex;align-items:flex-start;gap:0.875rem; }
body .portal-style-94d67e066e { color:#46d2ff; }
body .portal-style-94db95e1b0 { font-size:0.8rem; }
body .portal-style-953f4915a6 { margin-top:0.625rem; }
body .portal-style-959256ddba { font-size:0.75rem;color:rgba(70,210,255,0.80);word-break:break-all;line-height:1.5; }
body .portal-style-95fb6eb0f7 { display:flex;align-items:flex-end;gap:0.75rem;flex-wrap:wrap; }
body .portal-style-985f3357d8 { font-family:monospace;font-size:0.8rem;letter-spacing:0.12em;font-weight:700;color:#46d2ff; }
body .portal-style-994917f3bc { width:5rem;height:5rem;border-radius:1.25rem;background:rgba(70,210,255,0.08);border:1px solid rgba(70,210,255,0.18);display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem; }
body .portal-style-9c5c755783 { color:#f87171; }
body .portal-style-9eacefe5ff { width:.875rem;height:.875rem; }
body .portal-style-9f987ac148 { font-size:0.72rem;color:rgba(255,255,255,0.28);padding:0 0.25rem; }
body .portal-style-a527bac1ee { text-align:right; }
body .portal-style-a847778823 { margin-top:1.25rem; }
body .portal-style-a86a89a7ed { background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.07);border-radius:0.75rem;padding:0.75rem 0.875rem;margin-bottom:1.125rem; }
body .portal-style-a8926198bc { display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap; }
body .portal-style-aa6fc7af93 { display:grid;grid-template-columns:1fr 22rem;gap:1.25rem;align-items:start; }
body .portal-style-aaa32b1f67 { width:100%;justify-content:center;margin-top:0.75rem; }
body .portal-style-aae4780836 { font-size:0.75rem;color:rgba(251,191,36,0.70); }
body .portal-style-acb3368abd { position:relative;z-index:1;background:linear-gradient(145deg,#0d1b2a,#0a1520);border:1px solid rgba(255,255,255,0.10);border-radius:1.5rem;padding:2rem;width:100%;max-width:22rem;box-shadow:0 40px 100px rgba(0,0,0,0.70); }
body .portal-style-af1d093667 { display:inline-flex;margin-top:0.5rem;font-size:0.72rem;font-weight:700;color:#46d2ff;text-decoration:none; }
body .portal-style-b088e8ee3b { display:flex;flex-direction:column;gap:1.25rem; }
body .portal-style-b3fc187800 { color:rgba(255,255,255,0.70);text-decoration:none; }
body .portal-style-b4abfb672a { width:14rem; }
body .portal-style-b7a1941c87 { width:1.125rem;height:1.125rem;color:rgba(252,165,165,0.80);flex-shrink:0;margin-top:0.05rem; }
body .portal-style-ba09264ea0 { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0.2rem; }
body .portal-style-ba2602b67a { font-family:monospace;font-weight:700;letter-spacing:0.12em;font-size:0.9rem; }
body .portal-style-bbba55ce60 { display:flex;justify-content:space-between;gap:1rem;align-items:flex-start; }
body .portal-style-bc67c87324 { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
body .portal-style-bd54c70a49 { font-size:0.7rem;color:rgba(255,255,255,0.30);margin-top:1px; }
body .portal-style-be2000c177 { margin-bottom:0;width:13rem; }
body .portal-style-c125407f9f { font-family:monospace;font-size:0.8rem;font-weight:700;color:rgba(255,255,255,0.70);letter-spacing:0.1em;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.10);border-radius:0.375rem;padding:0.2rem 0.5rem; }
body .portal-style-c37751c9ba { width:0.75rem;height:0.75rem; }
body .portal-style-c4341ea9ce { display:grid;grid-template-columns:1fr 1fr 6rem;gap:1rem; }
body .portal-style-c4695aa27b { font-size:0.78rem;color:rgba(252,165,165,0.75); }
body .portal-style-c4859fc303 { font-family:monospace;font-size:1rem;font-weight:800;letter-spacing:0.15em;color:#46d2ff;text-align:center; }
body .portal-style-c676f850a4 { margin-top:1.25rem;border-top:1px solid rgba(255,255,255,.08);padding-top:1.25rem; }
body .portal-style-c9ef2a58eb { margin-top:0.5rem; }
body .portal-style-caff281da5 { font-family:'Fraunces',ui-serif,serif;font-size:1.75rem;font-weight:800;color:white;margin-bottom:0.625rem; }
body .portal-style-cbdc8ef2df { width:4.5rem;height:4.5rem;border-radius:1.25rem;background:rgba(70,210,255,0.06);border:1px solid rgba(70,210,255,0.15);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem; }
body .portal-style-cef01a2d58 { margin-bottom:0;width:11rem; }
body .portal-style-d10b1d1b4b { text-align:center;max-width:28rem; }
body .portal-style-d1be475aff { font-weight:700;color:rgba(255,255,255,0.55);font-size:0.9375rem; }
body .portal-style-d4311d0023 { display:flex;flex-direction:column;gap:1rem; }
body .portal-style-d7168c225d { display:flex;gap:0.5rem;justify-content:flex-end; }
body .portal-style-d78c770048 { resize:vertical; }
body .portal-style-d8bcee08b7 { width:11rem; }
body .portal-style-d988c3c970 { display:block;width:260px;height:260px; }
body .portal-style-da793dbe52 { display:inline-block;width:.9em;height:.9em;margin-right:.4em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:_cspin .55s linear infinite;vertical-align:-.12em; }
body .portal-style-dac4fe6c9b { text-align:center; }
body .portal-style-db8ed56204 { font-size:0.8rem;font-weight:700;color:rgba(252,165,165,0.90);margin-bottom:0.25rem; }
body .portal-style-dbad8af00f { margin-top:0.55rem;font-size:0.72rem;color:rgba(255,255,255,0.34);line-height:1.55; }
body .portal-style-dc260e6960 { padding:0.75rem;background:rgba(255,255,255,0.02); }
body .portal-style-dd3eff2a57 { display:flex;align-items:center;justify-content:flex-end;gap:0.5rem;flex-wrap:wrap; }
body .portal-style-dd9b28d012 { display:none;border-radius:0.875rem;border:1px solid rgba(252,165,165,0.22);background:rgba(252,165,165,0.06);padding:1rem 1.25rem; }
body .portal-style-de1ff0fb56 { display:block;width:100%;height:100%; }
body .portal-style-e00445f481 { border-radius:0.625rem;border:1px solid rgba(251,191,36,0.20);background:rgba(251,191,36,0.05);padding:0.75rem 0.875rem; }
body .portal-style-e1ad4d9099 { width:2.5rem;height:2.5rem;color:rgba(70,210,255,0.45); }
body .portal-style-e2a6d0b0c8 { display:flex;align-items:center;justify-content:center;min-height:60vh; }
body .portal-style-e2f48d960d { font-family:monospace;text-transform:uppercase;letter-spacing:0.1em;font-weight:700; }
body .portal-style-e4c7b52115 { font-size:0.72rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.38);margin-bottom:0.75rem; }
body .portal-style-e4ca57bd16 { border-radius:0.75rem;border:1px solid rgba(70,210,255,0.18);background:rgba(70,210,255,0.06);padding:0.75rem 0.875rem; }
body .portal-style-eaf9d7fe94 { background:white;padding:1rem;display:flex;align-items:center;justify-content:center; }
body .portal-style-eedacbcfa4 { flex-shrink:0;width:0.875rem;height:0.875rem;margin-top:0.1rem; }
body .portal-style-f038e426e5 { width:12rem; }
body .portal-style-f1ad66cd3c { font-family:monospace;font-weight:700;letter-spacing:0.1em; }
body .portal-style-f2330cb145 { border-radius:0.75rem;border:1px solid rgba(255,255,255,0.07);overflow:hidden;margin-bottom:0.875rem; }
body .portal-style-f29c1a7b09 { font-size:0.62rem;color:rgba(255,255,255,0.25);margin-top:2px;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
body .portal-style-f56b001bc3 { font-size:0.7rem;color:rgba(255,255,255,0.28);margin-top:1px; }
body .portal-style-fbcba1d5ab { font-size:0.6rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.25);margin-bottom:0.2rem; }

.cp-points-positive { color:#15803d; }
.cp-points-negative { color:#b91c1c; }
.portal-scroll-locked { overflow:hidden; }
body .portal-is-visible { display:block; }
body .portal-is-open { display:flex; }
body .portal-is-submitting { opacity:0.78; }

/* Dealer-managed rewards */
.dealer-rewards-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(20rem,.75fr); gap:1rem; align-items:start; }
.dealer-rewards-main,.dealer-rewards-sidebar { display:flex; min-width:0; flex-direction:column; gap:1rem; }
.dealer-rewards-section { min-width:0; box-shadow:0 16px 40px rgba(0,0,0,.08); }
.dealer-rewards-section-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.dealer-reward-list { display:grid; gap:.85rem; background:rgba(0,0,0,.055); }
.dealer-reward-editor { min-width:0; border:1px solid rgba(255,255,255,.075); border-radius:.85rem; background:linear-gradient(145deg,rgba(255,255,255,.032),rgba(255,255,255,.014)); padding:1rem; transition:border-color .16s ease,background .16s ease; }
.dealer-reward-editor:hover { border-color:rgba(70,210,255,.16); background:linear-gradient(145deg,rgba(70,210,255,.035),rgba(255,255,255,.016)); }
.dealer-reward-editor-form { min-width:0; }
.dealer-reward-editor-head,.dealer-reward-actions,.dealer-reward-history-row,.dealer-reward-editor-foot,.dealer-rule-head { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.dealer-reward-editor-head { margin-bottom:.9rem; padding-bottom:.75rem; border-bottom:1px solid rgba(255,255,255,.055); }
.dealer-reward-title { margin:0; color:rgba(255,255,255,.9); font-size:.88rem; font-weight:750; }
.dealer-reward-meta { margin:.2rem 0 0; color:rgba(255,255,255,.34); font-size:.67rem; }
.dealer-reward-fields { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(7.5rem,.55fr) minmax(10rem,.75fr); gap:.7rem; align-items:start; }
.dealer-reward-fields .ds-field { margin:0; }
.dealer-reward-description { grid-column:1/-1; }
.dealer-reward-description textarea { min-height:4.7rem; resize:vertical; }
.dealer-reward-editor-foot { margin-top:.9rem; padding-top:.8rem; border-top:1px solid rgba(255,255,255,.055); }
.dealer-reward-actions { justify-content:flex-start; flex-wrap:wrap; margin:0; }
.dealer-reward-availability { width:auto; }
.dealer-rewards-empty { display:grid; place-items:center; padding:2.5rem 1rem; text-align:center; }
.dealer-rewards-empty > span { display:grid; width:2.5rem; height:2.5rem; place-items:center; margin-bottom:.65rem; border:1px solid rgba(70,210,255,.2); border-radius:.75rem; background:rgba(70,210,255,.07); color:#46d2ff; font-size:1.3rem; }
.dealer-rewards-empty strong { color:rgba(255,255,255,.78); font-size:.85rem; }
.dealer-rewards-empty p { margin:.3rem 0 0; color:rgba(255,255,255,.35); font-size:.72rem; }
.dealer-section-number { display:grid; width:2rem; height:2rem; flex:0 0 auto; place-items:center; border:1px solid rgba(70,210,255,.15); border-radius:.6rem; background:rgba(70,210,255,.055); color:rgba(70,210,255,.72); font-size:.6rem; font-weight:800; letter-spacing:.1em; }
.dealer-create-reward-card,.dealer-rules-card { overflow:visible; box-shadow:0 16px 40px rgba(0,0,0,.1); }
.dealer-create-form { display:flex; flex-direction:column; gap:.8rem; }
.dealer-create-form .ds-field { margin:0; }
.dealer-create-form textarea { min-height:5.2rem; resize:vertical; }
.dealer-create-submit { width:100%; justify-content:center; margin-top:.15rem; }
.dealer-optional { color:rgba(255,255,255,.28); font-weight:500; letter-spacing:0; text-transform:none; }
.dealer-rule-card { padding:1rem; border:1px solid rgba(255,255,255,.065); border-radius:.75rem; background:rgba(255,255,255,.018); }
.dealer-rule-card + .dealer-rule-card { margin-top:.7rem; }
.dealer-rule-head { margin-bottom:.75rem; }
.dealer-rule-head > strong { color:rgba(255,255,255,.82); font-size:.77rem; }
.dealer-rule-head small { display:block; margin-top:.18rem; color:rgba(255,255,255,.32); font-size:.63rem; }
.dealer-simple-rule { padding:.9rem; }
.dealer-rule-points-field { margin-bottom:0 !important; }
.dealer-rule-points-control { position:relative; }
.dealer-rule-points-control .ds-input { padding-right:4rem; }
.dealer-rule-points-control > span { position:absolute; top:50%; right:.8rem; transform:translateY(-50%); color:rgba(255,255,255,.3); font-size:.65rem; pointer-events:none; }
.dealer-rule-grid { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.dealer-rule-card .ds-field { margin-bottom:.6rem; }
.dealer-rule-monthly { margin-bottom:0 !important; }
.dealer-rule-toggle { display:flex; align-items:center; gap:.4rem; cursor:pointer; }
.dealer-rule-toggle input { position:absolute; opacity:0; pointer-events:none; }
.dealer-rule-toggle span { position:relative; width:1.85rem; height:1rem; border:1px solid rgba(255,255,255,.14); border-radius:999px; background:rgba(255,255,255,.07); transition:.16s ease; }
.dealer-rule-toggle span::after { content:''; position:absolute; top:.14rem; left:.16rem; width:.62rem; height:.62rem; border-radius:50%; background:rgba(255,255,255,.46); transition:.16s ease; }
.dealer-rule-toggle input:checked + span { border-color:rgba(70,210,255,.35); background:rgba(70,210,255,.18); }
.dealer-rule-toggle input:checked + span::after { left:.94rem; background:#46d2ff; }
.dealer-rule-toggle em { color:rgba(255,255,255,.38); font-size:.62rem; font-style:normal; }
.dealer-rule-toggle input:checked ~ em { color:#79e1ff; }
.dealer-redemptions-table { width:100%; min-width:0; table-layout:fixed; }
.dealer-redemptions-table th:last-child { text-align:left; }
.dealer-redemptions-table .dealer-redemption-customer-cell { width:24%; }
.dealer-redemptions-table .dealer-redemption-reward-cell { width:28%; }
.dealer-redemptions-table .dealer-redemption-points-cell { width:12%; }
.dealer-redemptions-table .dealer-redemption-status-cell { width:18%; }
.dealer-redemptions-table .dealer-redemption-date-cell { width:18%; white-space:nowrap; }
.dealer-redemptions-table.has-actions .dealer-redemption-customer-cell { width:18%; }
.dealer-redemptions-table.has-actions .dealer-redemption-reward-cell { width:21%; }
.dealer-redemptions-table.has-actions .dealer-redemption-points-cell { width:9%; }
.dealer-redemptions-table.has-actions .dealer-redemption-status-cell { width:14%; }
.dealer-redemptions-table.has-actions .dealer-redemption-date-cell { width:15%; }
.dealer-redemptions-table.has-actions .dealer-redemption-actions-column { width:23%; }
.dealer-redemption-actions-column { white-space:nowrap; }
.dealer-redemption-no-action { color:rgba(255,255,255,.3); font-size:.68rem; }
.dealer-customer-link { font-weight:650; text-decoration:none; }
.dealer-redemption-filter { display:grid; grid-template-columns:minmax(14rem,1fr) 9rem minmax(9rem,12rem) auto auto auto; align-items:center; gap:.55rem; padding:.8rem 1.25rem; border-bottom:1px solid rgba(255,255,255,.05); background:rgba(0,0,0,.08); }
.dealer-redemption-filter .ds-input,.dealer-redemption-filter .ds-select { height:2.35rem; padding-top:.45rem; padding-bottom:.45rem; font-size:.72rem; }
.dealer-redemption-search { position:relative; min-width:0; }
.dealer-redemption-search svg { position:absolute; z-index:1; top:50%; left:.75rem; width:.9rem; height:.9rem; transform:translateY(-50%); color:rgba(70,210,255,.55); pointer-events:none; }
.dealer-redemption-search .ds-input { padding-left:2.15rem; }
.dealer-redemption-result-count { justify-self:end; color:rgba(255,255,255,.34); font-size:.66rem; white-space:nowrap; }
.dealer-reward-balance { color:#46d2ff; font-size:1rem; white-space:nowrap; }
.dealer-rewards-manage-link { margin-top:.55rem; }
.dealer-reward-history { margin-top:1.15rem; padding-top:1rem; border-top:1px solid rgba(255,255,255,.07); }
.dealer-reward-history-row { padding:.6rem 0; border-bottom:1px solid rgba(255,255,255,.05); color:rgba(255,255,255,.7); font-size:.76rem; }
.dealer-reward-history-row:last-child { border-bottom:0; }
.dealer-reward-history-row small { display:block; margin-top:.15rem; color:rgba(255,255,255,.3); }
@media(max-width:1180px){.dealer-rewards-layout{grid-template-columns:1fr}.dealer-rewards-sidebar{display:grid;grid-template-columns:1fr 1fr;align-items:start}.dealer-reward-fields{grid-template-columns:minmax(0,1fr) 9rem 12rem}}
@media(max-width:980px){.dealer-redemption-filter{grid-template-columns:minmax(12rem,1fr) 9rem 10rem auto}.dealer-redemption-result-count{grid-column:1/-1;justify-self:start}.dealer-redemption-filter>a{grid-column:auto}}
@media(max-width:760px){
    .dealer-rewards-sidebar{display:flex}.dealer-reward-fields{grid-template-columns:1fr 1fr}.dealer-reward-description{grid-column:1/-1}.dealer-reward-name-field{grid-column:1/-1}
    .dealer-redemption-filter{grid-template-columns:1fr 1fr;padding:.75rem}.dealer-redemption-search{grid-column:1/-1}.dealer-redemption-filter .ds-select{min-width:0}.dealer-redemption-filter .ds-btn{justify-content:center}.dealer-redemption-result-count{grid-column:1/-1;justify-self:start}
    .dealer-redemptions-wrap{overflow:visible;padding:.7rem;background:rgba(0,0,0,.055)}
    .dealer-redemptions-table,.dealer-redemptions-table tbody{display:block;width:100%}.dealer-redemptions-table thead{display:none}.dealer-redemptions-table tbody{display:grid;gap:.65rem}
    .dealer-redemptions-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem 1rem;padding:.85rem;border:1px solid rgba(255,255,255,.07);border-radius:.75rem;background:rgba(255,255,255,.018)}
    .dealer-redemptions-table tbody td{display:flex;width:auto!important;min-width:0;padding:0;border:0;flex-direction:column;align-items:flex-start;gap:.25rem;white-space:normal}
    .dealer-redemptions-table tbody td::before{content:attr(data-label);color:rgba(255,255,255,.28);font-size:.56rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
    .dealer-redemptions-table tbody .dealer-redemption-customer-cell{grid-column:1/-1;padding-bottom:.65rem;border-bottom:1px solid rgba(255,255,255,.055)}
    .dealer-redemptions-table tbody .dealer-redemption-reward-cell{grid-column:1}.dealer-redemptions-table tbody .dealer-redemption-status-cell{grid-column:2;align-items:flex-end}
    .dealer-redemptions-table tbody .dealer-redemption-points-cell{grid-column:1}.dealer-redemptions-table tbody .dealer-redemption-date-cell{grid-column:2;align-items:flex-end}
    .dealer-redemptions-table tbody .dealer-redemption-actions-column{grid-column:1/-1;padding-top:.65rem;border-top:1px solid rgba(255,255,255,.055)}
    .dealer-redemptions-table tbody .dealer-redemption-actions-column .dealer-reward-actions{width:100%}.dealer-redemptions-table tbody .dealer-redemption-actions-column form{flex:1}.dealer-redemptions-table tbody .dealer-redemption-actions-column .ds-btn{width:100%;justify-content:center}
    .dealer-redemptions-table tbody .ds-table-empty{grid-column:1/-1;display:block;text-align:center}.dealer-redemptions-table tbody .ds-table-empty::before{display:none}
}
@media(max-width:620px){.dealer-rewards-section-head{align-items:flex-start}.dealer-redemption-filter .ds-select[name=reward_filter]{grid-column:auto}}
@media(max-width:440px){.dealer-redemption-filter .ds-select{grid-column:1/-1}.dealer-redemption-filter .ds-btn{grid-column:auto}.dealer-redemptions-table tbody tr{gap:.7rem .75rem}.dealer-redemptions-table tbody .dealer-redemption-date-cell{white-space:normal}}
@media(max-width:520px){.dealer-reward-fields,.dealer-rule-grid{grid-template-columns:1fr}.dealer-reward-name-field,.dealer-reward-description{grid-column:auto}.dealer-reward-editor-foot{align-items:stretch;flex-direction:column}.dealer-reward-actions .ds-btn{flex:1;justify-content:center}}
