/* Partner Portal — Frontend Styles */

.bsp-partner-portal {
    max-width: 1100px;
    margin: 0 auto;
    padding: var(--ui-space-xl, 32px) var(--ui-space-md, 16px);
    font-family: var(--ui-font-sans, 'Inter', sans-serif);
}

/* Header */
.bsp-portal-header {
    margin-bottom: var(--ui-space-xl, 32px);
}

.bsp-portal-header__business h1 {
    font-family: var(--ui-font-display, 'Manrope', sans-serif);
    font-size: clamp(1.5rem, 4vw, 2.25rem);
    font-weight: 700;
    margin: 0 0 8px;
    color: var(--ui-color-text-primary, #f5f0eb);
}

/* Tier badges */
.bsp-tier {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-right: 6px;
}

.bsp-tier--basis   { background: rgba(100,160,255,0.15); color: #6aa0ff; border: 1px solid rgba(100,160,255,0.3); }
.bsp-tier--premium { background: rgba(180,120,255,0.15); color: #b478ff; border: 1px solid rgba(180,120,255,0.3); }
.bsp-tier--gold    { background: rgba(230,196,80,0.15);  color: #e6c450; border: 1px solid rgba(230,196,80,0.3); }

/* Status badge */
.bsp-portal-status {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.bsp-portal-status--active     { background: rgba(60,180,100,0.12); color: #3cb464; }
.bsp-portal-status--onboarding { background: rgba(255,170,50,0.12);  color: #ffaa32; }
.bsp-portal-status--suspended  { background: rgba(220,60,60,0.12);   color: #dc3c3c; }

/* Grid */
.bsp-portal-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: var(--ui-space-lg, 24px);
}

/* Cards */
.bsp-portal-card {
    background: var(--ui-color-surface-card, #1c1c1c);
    border: 1px solid var(--ui-color-border, rgba(255,255,255,0.08));
    border-radius: var(--ui-radius-lg, 12px);
    padding: var(--ui-space-lg, 24px);
}

.bsp-portal-card h2 {
    font-family: var(--ui-font-display, 'Manrope', sans-serif);
    font-size: 1.125rem;
    font-weight: 700;
    margin: 0 0 16px;
    color: var(--ui-color-text-primary, #f5f0eb);
}

.bsp-portal-card h3 {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ui-color-text-secondary, #a09888);
    margin: 20px 0 8px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* Entitlement list */
.bsp-entitlement-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.bsp-entitlement-list__item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--ui-color-border, rgba(255,255,255,0.06));
    font-size: 0.875rem;
}

.bsp-entitlement-list__item:last-child { border-bottom: none; }

.bsp-entitlement-list__label {
    color: var(--ui-color-text-secondary, #a09888);
}

.bsp-entitlement-list__value {
    font-weight: 600;
    color: var(--ui-color-text-primary, #f5f0eb);
}

/* Stat */
.bsp-portal-stat {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 12px 0;
    border-bottom: 1px solid var(--ui-color-border, rgba(255,255,255,0.06));
}

.bsp-portal-stat__label { font-size: 0.875rem; color: var(--ui-color-text-secondary, #a09888); }
.bsp-portal-stat__value { font-size: 1.5rem; font-weight: 700; color: var(--ui-color-accent, #e6c450); }

/* Portal table */
.bsp-portal-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.bsp-portal-table th,
.bsp-portal-table td {
    padding: 6px 8px;
    text-align: left;
    border-bottom: 1px solid var(--ui-color-border, rgba(255,255,255,0.06));
}

.bsp-portal-table th {
    color: var(--ui-color-text-secondary, #a09888);
    font-weight: 600;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Notices */
.bsp-portal-notice {
    padding: 16px 20px;
    border-radius: 8px;
    margin-bottom: 24px;
}

.bsp-portal-notice--success { background: rgba(60,180,100,0.1); border: 1px solid rgba(60,180,100,0.3); color: #3cb464; }
.bsp-portal-notice--error   { background: rgba(220,60,60,0.1);  border: 1px solid rgba(220,60,60,0.3);  color: #dc3c3c; }

.bsp-portal-notice strong { display: block; font-weight: 700; margin-bottom: 4px; }
.bsp-portal-notice p { margin: 0; }

/* Claim form */
.bsp-claim-form-wrap { max-width: 640px; }

.bsp-field { margin-bottom: 20px; }

.bsp-field label {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--ui-color-text-secondary, #a09888);
    margin-bottom: 6px;
}

.bsp-field select,
.bsp-field input {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--ui-color-border, rgba(255,255,255,0.12));
    border-radius: 6px;
    background: var(--ui-color-surface-input, #141414);
    color: var(--ui-color-text-primary, #f5f0eb);
    font-family: var(--ui-font-sans, 'Inter', sans-serif);
    font-size: 0.9375rem;
}

/* Buttons */
.bsp-btn {
    display: inline-block;
    padding: 12px 24px;
    border-radius: 6px;
    font-family: var(--ui-font-display, 'Manrope', sans-serif);
    font-size: 0.9375rem;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    border: none;
    transition: opacity 0.15s ease;
}

.bsp-btn:hover { opacity: 0.85; }

.bsp-btn--primary {
    background: var(--ui-color-accent, #e6c450);
    color: #0c0a07;
}

/* Login prompt */
.bsp-portal-login { text-align: center; padding: 48px 16px; }
.bsp-portal-login a { color: var(--ui-color-accent, #e6c450); font-weight: 600; }

/* No account */
.bsp-portal-no-account { text-align: center; padding: 64px 16px; }

@media (max-width: 640px) {
    .bsp-portal-grid { grid-template-columns: 1fr; }
}
