/* Reset & base */
.albi-b2b-shell *,
.albi-b2b-shell *::before,
.albi-b2b-shell *::after { box-sizing: border-box; }

.albi-b2b-shell {
    --b2b-brand: #DC2626;
    --b2b-brand-hover: #B91C1C;
    --b2b-brand-soft: #FEF2F2;
    --b2b-brand-line: #FECACA;
    --b2b-ink-1: #1a1a1a;
    --b2b-ink-2: #6b6b6b;
    --b2b-ink-3: #9a9a9a;
    --b2b-line-1: #e8e8e8;
    --b2b-line-2: #f0f0ef;
    --b2b-bg: #ffffff;
    --b2b-bg-page: #FAFAF8;
    --b2b-bg-tint: #F4F2EE;
    --b2b-ok: #15803d;
    --b2b-ok-soft: #F0FDF4;
    --b2b-warn-soft: #FFFBEB;
    --b2b-shadow-sm: 0 1px 2px rgba(15, 15, 15, 0.04);
    --b2b-r-sm: 6px; --b2b-r-md: 10px; --b2b-r-lg: 14px; --b2b-r-xl: 18px;

    font-family: 'Geist', system-ui, -apple-system, "Segoe UI", sans-serif;
    color: var(--b2b-ink-1);
    background: var(--b2b-bg-page);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    min-height: 100vh;
}
.albi-b2b-shell body { margin: 0; }

/* Topbar */
.albi-b2b-topbar {
    height: 64px;
    border-bottom: 1px solid var(--b2b-line-2);
    background: rgba(255,255,255,0.85);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 32px;
    position: sticky; top: 0; z-index: 10;
}
.albi-b2b-topbar .left { display: flex; align-items: center; gap: 16px; }
.albi-b2b-topbar .right { display: flex; align-items: center; gap: 18px; color: var(--b2b-ink-2); font-size: 13.5px; }

.albi-b2b-logo { display: inline-flex; align-items: center; gap: 10px; letter-spacing: -0.02em; text-decoration: none; color: inherit; }
.albi-b2b-logo .mark { width: 32px; height: 32px; border-radius: 8px; background: var(--b2b-brand); display: inline-flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; font-size: 15px; }
.albi-b2b-logo .word { font-weight: 700; font-size: 18px; }
.albi-b2b-logo .sub { font-weight: 500; font-size: 12px; padding: 3px 8px; border: 1px solid var(--b2b-line-1); border-radius: 999px; color: var(--b2b-ink-2); margin-left: 4px; }

/* Split layout */
.albi-b2b-split { flex: 1; display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - 64px); }
.albi-b2b-form-pane { display: flex; align-items: center; justify-content: center; padding: 48px 56px; }
.albi-b2b-brand-pane { background: var(--b2b-bg-tint); border-left: 1px solid var(--b2b-line-2); padding: 48px 56px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
@media (max-width: 980px) {
    .albi-b2b-split { grid-template-columns: 1fr; }
    .albi-b2b-brand-pane { display: none; }
}

/* Form card */
.albi-b2b-form-card { width: 100%; max-width: 460px; }
.albi-b2b-form-card.wide { max-width: 560px; }
.albi-b2b-eyebrow { font-size: 12px; font-weight: 600; letter-spacing: 0.08em; color: var(--b2b-brand); text-transform: uppercase; margin-bottom: 18px; display: inline-flex; align-items: center; gap: 8px; }
.albi-b2b-eyebrow .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--b2b-brand); }
.albi-b2b-form-card h1 { font-size: 32px; line-height: 1.15; letter-spacing: -0.02em; margin: 0 0 12px; font-weight: 700; text-wrap: balance; }
.albi-b2b-form-card .sub { font-size: 15px; line-height: 1.55; color: var(--b2b-ink-2); margin: 0 0 32px; }
.albi-b2b-form-card .sub strong { color: var(--b2b-ink-1); font-weight: 600; }

/* Fields */
.albi-b2b-field { margin-bottom: 16px; }
.albi-b2b-field label { display: block; font-size: 13px; font-weight: 500; color: var(--b2b-ink-1); margin-bottom: 8px; }
.albi-b2b-field .hint { margin-top: 6px; font-size: 12.5px; color: var(--b2b-ink-2); }
.albi-b2b-field.error .hint { color: var(--b2b-brand); font-weight: 500; }
.albi-b2b-input { width: 100%; height: 56px; padding: 0 18px; border: 1px solid var(--b2b-line-1); border-radius: var(--b2b-r-md); background: #fff; font: inherit; font-size: 16px; transition: border-color 120ms ease, box-shadow 120ms ease; outline: none; }
.albi-b2b-input:hover { border-color: #d4d4d3; }
.albi-b2b-input:focus { border-color: var(--b2b-brand); box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.10); }
.albi-b2b-input.oib { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 22px; letter-spacing: 0.16em; font-weight: 500; }
.albi-b2b-input.oib::placeholder { letter-spacing: 0.16em; color: #c8c8c7; }
.albi-b2b-input.code { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 22px; letter-spacing: 0.4em; text-align: center; font-weight: 500; }
.albi-b2b-field.error .albi-b2b-input { border-color: var(--b2b-brand); background: var(--b2b-brand-soft); }
.albi-b2b-shell textarea.albi-b2b-input { height: auto; padding: 14px 18px; line-height: 1.5; resize: vertical; min-height: 96px; }
.albi-b2b-shell select.albi-b2b-input { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%236b6b6b' d='M6 8 0 0h12z'/></svg>"); background-repeat: no-repeat; background-position: right 18px center; padding-right: 44px; }

/* Buttons */
.albi-b2b-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 56px; padding: 0 24px; border-radius: var(--b2b-r-md); font-size: 15.5px; font-weight: 600; transition: background 120ms ease; user-select: none; white-space: nowrap; cursor: pointer; border: 0; font-family: inherit; text-decoration: none; }
.albi-b2b-btn-primary { background: var(--b2b-brand); color: #fff; }
.albi-b2b-btn-primary:hover { background: var(--b2b-brand-hover); }
.albi-b2b-btn-primary:disabled { background: #E5E5E5; color: #a0a0a0; cursor: not-allowed; }
.albi-b2b-btn-secondary { background: #fff; color: var(--b2b-ink-1); border: 1px solid var(--b2b-line-1); }
.albi-b2b-btn-secondary:hover { background: #fafaf8; }
.albi-b2b-btn-ghost { background: none; color: var(--b2b-ink-2); border: 0; padding: 0; cursor: pointer; text-decoration: none; }
.albi-b2b-btn-ghost:hover { color: var(--b2b-ink-1); }
.albi-b2b-btn-full { width: 100%; }

/* Banners */
.albi-b2b-banner { border-radius: var(--b2b-r-md); padding: 14px 16px; font-size: 13.5px; line-height: 1.55; margin-bottom: 20px; display: flex; gap: 12px; align-items: flex-start; }
.albi-b2b-banner.error { background: var(--b2b-brand-soft); border: 1px solid var(--b2b-brand-line); color: #7f1d1d; }
.albi-b2b-banner.warn { background: var(--b2b-warn-soft); border: 1px solid #FDE68A; color: #78350f; }
.albi-b2b-banner.info { background: #F5F8FF; border: 1px solid #DCE3F7; color: #1E3A8A; }

/* Location list */
.albi-b2b-loc-list { border: 1px solid var(--b2b-line-1); border-radius: var(--b2b-r-md); background: #fff; overflow: hidden; margin-bottom: 20px; }
.albi-b2b-loc-item { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-bottom: 1px solid var(--b2b-line-2); cursor: pointer; transition: background 100ms; }
.albi-b2b-loc-item:last-child { border-bottom: 0; }
.albi-b2b-loc-item:hover { background: #FAFAF8; }
.albi-b2b-loc-item .name { font-size: 14.5px; font-weight: 600; color: var(--b2b-ink-1); }
.albi-b2b-loc-item .meta { font-size: 12.5px; color: var(--b2b-ink-2); margin-top: 2px; }
.albi-b2b-check { width: 22px; height: 22px; border-radius: 6px; border: 1.5px solid #cfcfcd; background: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 120ms ease; }
.albi-b2b-check.checked { background: var(--b2b-brand); border-color: var(--b2b-brand); }
.albi-b2b-check svg { display: none; }
.albi-b2b-check.checked svg { display: block; }

/* Password strength */
.albi-b2b-pw-meter { display: flex; gap: 6px; margin-top: 10px; }
.albi-b2b-pw-meter .seg { flex: 1; height: 4px; border-radius: 999px; background: #EAEAE7; transition: background 200ms ease; }
.albi-b2b-pw-meter .seg.on-1 { background: #DC2626; }
.albi-b2b-pw-meter .seg.on-2 { background: #F59E0B; }
.albi-b2b-pw-meter .seg.on-3 { background: #10B981; }
.albi-b2b-pw-meter .seg.on-4 { background: #15803d; }
.albi-b2b-pw-label { font-size: 12px; color: var(--b2b-ink-2); margin-top: 8px; }
.albi-b2b-pw-checks { margin-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.albi-b2b-pw-checks .ck { font-size: 12.5px; color: var(--b2b-ink-2); display: flex; align-items: center; gap: 8px; }
.albi-b2b-pw-checks .ck .b { width: 14px; height: 14px; border-radius: 50%; background: #EAEAE7; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.albi-b2b-pw-checks .ck.met { color: #15803d; }
.albi-b2b-pw-checks .ck.met .b { background: #15803d; color: #fff; }

/* Success screen */
.albi-b2b-center-pane { flex: 1; display: flex; align-items: center; justify-content: center; padding: 48px; min-height: calc(100vh - 64px); }
.albi-b2b-success-card { max-width: 520px; text-align: center; }
.albi-b2b-success-card .ring { width: 96px; height: 96px; border-radius: 50%; background: var(--b2b-ok-soft); border: 1px solid #BBF7D0; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 28px; position: relative; }
.albi-b2b-success-card .ring::after { content: ''; position: absolute; inset: -12px; border: 1px dashed #BBF7D0; border-radius: 50%; opacity: 0.7; }

/* Brand pane */
.albi-b2b-brand-pane .tagline { font-size: 22px; line-height: 1.3; color: var(--b2b-ink-1); font-weight: 600; margin: 0 0 14px; }
.albi-b2b-brand-pane .tagline em { color: var(--b2b-brand); font-style: normal; }
.albi-b2b-brand-pane .lede { font-size: 14px; line-height: 1.6; color: var(--b2b-ink-2); margin: 0; max-width: 380px; }
.albi-b2b-brand-pane .image-slot { position: absolute; inset: auto -40px 120px auto; width: 520px; height: 360px; border-radius: var(--b2b-r-lg); background: repeating-linear-gradient(45deg, #ECE9E2 0 12px, #E5E2DA 12px 24px); border: 1px solid var(--b2b-line-1); display: flex; align-items: center; justify-content: center; overflow: hidden; font-family: 'Geist Mono', monospace; font-size: 11px; color: rgba(0,0,0,0.35); letter-spacing: 0.04em; text-transform: uppercase; }
.albi-b2b-brand-pane .image-slot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.albi-b2b-brand-pane .stats { display: grid; grid-template-columns: repeat(3, auto); gap: 36px; position: relative; z-index: 2; }
.albi-b2b-brand-pane .stat .label { color: var(--b2b-ink-3); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px; }
.albi-b2b-brand-pane .stat .val { color: var(--b2b-ink-1); font-weight: 500; font-family: 'Geist Mono', monospace; font-size: 18px; }

/* Dashboard placeholder */
.albi-b2b-dashboard { max-width: 1080px; margin: 0 auto; padding: 48px 32px; }
.albi-b2b-dashboard h1 { font-size: 32px; letter-spacing: -0.02em; margin: 0 0 8px; }
.albi-b2b-dashboard .greet-sub { color: var(--b2b-ink-2); margin: 0 0 32px; font-size: 14.5px; }
.albi-b2b-locations { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 36px; }
.albi-b2b-loc-chip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; background: #fff; border: 1px solid var(--b2b-line-1); border-radius: 999px; font-size: 12.5px; font-weight: 500; }
.albi-b2b-cta-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.albi-b2b-cta-disabled { background: #fff; border: 1px dashed var(--b2b-line-1); border-radius: var(--b2b-r-lg); padding: 22px; min-height: 132px; position: relative; opacity: 0.6; cursor: not-allowed; }
.albi-b2b-cta-disabled .title { font-size: 16px; font-weight: 600; margin-bottom: 6px; }
.albi-b2b-cta-disabled .desc { font-size: 13px; color: var(--b2b-ink-2); margin: 0; }
.albi-b2b-cta-disabled .pill { position: absolute; top: 16px; right: 16px; font-size: 11px; font-weight: 600; padding: 3px 10px; background: var(--b2b-warn-soft); color: #78350f; border-radius: 999px; }

/* Topbar logged in chip */
.albi-b2b-chip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; background: #fff; border: 1px solid var(--b2b-line-1); border-radius: 999px; font-size: 12.5px; font-weight: 500; color: var(--b2b-ink-1); }
.albi-b2b-chip .dot { width: 6px; height: 6px; border-radius: 50%; background: #22c55e; }

/* Helpers */
.albi-b2b-mono { font-family: 'Geist Mono', ui-monospace, monospace; }
.albi-b2b-divider { height: 1px; background: var(--b2b-line-2); margin: 28px 0 24px; }
.albi-b2b-small { font-size: 12.5px; color: var(--b2b-ink-2); line-height: 1.55; }
.albi-b2b-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.albi-b2b-row-link { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.albi-b2b-row-link a { font-size: 13.5px; font-weight: 500; color: var(--b2b-brand); text-decoration: none; }
.albi-b2b-row-link a:hover { text-decoration: underline; }

/* Honeypot — must NOT be display:none (bots filter that) */
.albi-b2b-hp { position: absolute !important; left: -9999px !important; opacity: 0 !important; pointer-events: none !important; }
