/* KanderBooks Invoicing OS Public Portal v1.7.0 — MarketVista AI */
.kbios-public-wrap,
.kbios-public-wrap * { box-sizing: border-box; }
.kbios-public-wrap {
    --kbios-navy: #172033;
    --kbios-blue: #0c7bad;
    --kbios-blue-dark: #075a80;
    --kbios-purple: #6d5dfc;
    --kbios-green: #13a074;
    --kbios-red: #d92d20;
    --kbios-amber: #f59e0b;
    --kbios-muted: #65728a;
    --kbios-line: #dce3ee;
    --kbios-card: rgba(255,255,255,.92);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--kbios-navy);
    width: 100%;
    max-width: 1180px;
    margin: 24px auto;
    padding: 18px;
    border-radius: 28px;
    background:
        radial-gradient(circle at top left, rgba(12,123,173,.16), transparent 34%),
        radial-gradient(circle at bottom right, rgba(245,158,11,.16), transparent 34%),
        linear-gradient(135deg, #f3fbff, #fbf8ff 50%, #fff8ec);
    border: 1px solid rgba(12,123,173,.12);
    box-shadow: 0 22px 60px rgba(23,32,51,.10);
}
.kbios-public-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 24px;
    border-radius: 24px;
    background: rgba(255,255,255,.86);
    border: 1px solid rgba(12,123,173,.12);
    box-shadow: 0 12px 36px rgba(23,32,51,.08);
}
.kbios-public-eyebrow {
    display: inline-block;
    color: var(--kbios-blue);
    font-weight: 950;
    letter-spacing: .16em;
    font-size: 11px;
    text-transform: uppercase;
    margin-bottom: 8px;
}
.kbios-public-hero h2,
.kbios-invoice-card h3,
.kbios-section-heading h3 { margin: 0; color: var(--kbios-navy); line-height: 1.05; }
.kbios-public-hero h2 { font-size: clamp(30px, 4vw, 54px); letter-spacing: -0.06em; }
.kbios-public-hero p { margin: 10px 0 0; max-width: 760px; color: var(--kbios-muted); font-weight: 650; }
.kbios-public-badge,
.kbios-status-pill,
.kbios-manual-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 950;
    white-space: nowrap;
}
.kbios-public-badge { background: #eef7ff; color: var(--kbios-blue-dark); border: 1px solid rgba(12,123,173,.18); }
.kbios-public-alert {
    margin: 16px 0;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid var(--kbios-line);
    background: rgba(255,255,255,.88);
    color: var(--kbios-navy);
    font-weight: 700;
}
.kbios-public-alert.success { border-color: rgba(19,160,116,.25); background: #ecfdf3; color: #05603a; }
.kbios-public-alert.error { border-color: rgba(217,45,32,.25); background: #fff1f0; color: #b42318; }
.kbios-public-alert.info { border-color: rgba(12,123,173,.20); background: #eef7ff; color: #075a80; }
.kbios-lookup-panel,
.kbios-client-list,
.kbios-invoice-card,
.kbios-payment-box {
    margin-top: 18px;
    border: 1px solid rgba(12,123,173,.12);
    border-radius: 22px;
    background: var(--kbios-card);
    box-shadow: 0 14px 40px rgba(23,32,51,.08);
}
.kbios-lookup-panel,
.kbios-client-list,
.kbios-invoice-card { padding: 20px; }
.kbios-section-heading { margin-bottom: 14px; }
.kbios-section-heading p { margin: 6px 0 0; color: var(--kbios-muted); font-weight: 650; }
.kbios-lookup-form,
.kbios-notice-grid {
    display: grid;
    grid-template-columns: 1fr 1fr auto;
    gap: 12px;
    align-items: end;
}
.kbios-lookup-form label,
.kbios-payment-notice-form label {
    display: grid;
    gap: 6px;
    font-size: 12px;
    font-weight: 900;
    color: #40506a;
}
.kbios-lookup-form input,
.kbios-payment-notice-form input,
.kbios-payment-notice-form select,
.kbios-payment-notice-form textarea {
    width: 100%;
    min-height: 44px;
    border: 1px solid var(--kbios-line);
    border-radius: 12px;
    padding: 10px 12px;
    color: var(--kbios-navy);
    background: #fff;
    font-weight: 700;
}
.kbios-public-button {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 999px;
    border: 1px solid transparent;
    text-decoration: none !important;
    cursor: pointer;
    font-weight: 950;
    line-height: 1;
    transition: transform .15s ease, box-shadow .15s ease;
}
.kbios-public-button:hover { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(12,123,173,.18); }
.kbios-public-button.primary,
.kbios-public-button.pay { background: linear-gradient(135deg, var(--kbios-blue), var(--kbios-purple)); color: #fff !important; }
.kbios-public-button.secondary { background: #fff; color: var(--kbios-blue-dark) !important; border-color: rgba(12,123,173,.2); }
.kbios-invoice-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}
.kbios-invoice-card h3 { font-size: clamp(28px, 3vw, 44px); letter-spacing: -0.05em; }
.kbios-invoice-card-head p { margin: 6px 0 0; color: var(--kbios-muted); font-weight: 800; }
.kbios-status-pill.paid { color: #05603a; background: #d1fadf; }
.kbios-status-pill.overdue { color: #b42318; background: #fee4e2; }
.kbios-status-pill.sent { color: #075a80; background: #d9f0fb; }
.kbios-status-pill.draft { color: #51437a; background: #eee9ff; }
.kbios-status-pill.neutral { color: #49566c; background: #eef2f7; }
.kbios-total-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(130px, 1fr));
    gap: 12px;
    margin: 14px 0 18px;
}
.kbios-total-grid div,
.kbios-mini-invoice-summary {
    padding: 14px;
    border-radius: 16px;
    border: 1px solid var(--kbios-line);
    background: linear-gradient(135deg, #ffffff, #f7fbff);
}
.kbios-total-grid span,
.kbios-payment-head span,
.kbios-mini-invoice-summary span { display: block; color: var(--kbios-muted); font-weight: 850; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.kbios-total-grid strong { display: block; margin-top: 4px; font-size: 20px; color: var(--kbios-navy); }
.kbios-line-table-wrap { overflow-x: auto; border: 1px solid var(--kbios-line); border-radius: 16px; }
.kbios-line-table { width: 100%; border-collapse: collapse; min-width: 680px; background: #fff; }
.kbios-line-table th,
.kbios-line-table td { padding: 12px 14px; text-align: left; border-bottom: 1px solid #edf1f6; font-size: 14px; }
.kbios-line-table th { color: #5f6f89; background: #f8fbff; text-transform: uppercase; letter-spacing: .06em; font-size: 11px; }
.kbios-invoice-breakdown { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; margin-top: 12px; color: var(--kbios-muted); font-weight: 800; }
.kbios-invoice-breakdown span { padding: 8px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--kbios-line); }
.kbios-payment-box { padding: 16px; background: linear-gradient(135deg, rgba(255,255,255,.95), rgba(238,247,255,.95)); }
.kbios-payment-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.kbios-payment-head strong { display: block; font-size: 30px; letter-spacing: -0.04em; color: var(--kbios-blue-dark); }
.kbios-payment-head em { color: var(--kbios-muted); font-style: normal; font-weight: 800; }
.kbios-gateway-grid { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: 12px; }
.kbios-gateway-card { padding: 16px; border-radius: 18px; border: 1px solid rgba(12,123,173,.14); background: #fff; }
.kbios-gateway-card h4 { margin: 0 0 8px; color: var(--kbios-navy); }
.kbios-gateway-card p { margin: 0 0 12px; color: var(--kbios-muted); font-weight: 650; white-space: pre-line; }
.kbios-gateway-card.stripe { border-top: 4px solid var(--kbios-purple); }
.kbios-gateway-card.paypal { border-top: 4px solid var(--kbios-blue); }
.kbios-gateway-card.ach { border-top: 4px solid var(--kbios-green); }
.kbios-gateway-card.zelle { border-top: 4px solid #7c3aed; }
.kbios-manual-pill { color: #92400e; background: #fff8eb; border: 1px solid rgba(245,158,11,.25); }
.kbios-payment-notice-form { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--kbios-line); }
.kbios-payment-notice-form h4 { margin: 0 0 6px; }
.kbios-payment-notice-form p { margin: 0 0 12px; color: var(--kbios-muted); font-weight: 650; }
.kbios-payment-notice-form small { display: block; margin-top: 10px; color: var(--kbios-muted); font-weight: 700; }
.kbios-notice-grid { grid-template-columns: repeat(3, minmax(160px, 1fr)); align-items: start; margin-bottom: 12px; }
.kbios-client-invoice-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 0;
    border-bottom: 1px solid #edf1f6;
}
.kbios-client-invoice-row:last-child { border-bottom: 0; }
.kbios-client-invoice-row strong { display: block; font-size: 16px; }
.kbios-client-invoice-row span { color: var(--kbios-muted); font-weight: 700; }
.kbios-client-invoice-row b { display: block; text-align: right; }
.kbios-row-payments { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; margin-top: 6px; }
.kbios-row-payments a { color: var(--kbios-blue-dark); font-weight: 950; text-decoration: none; border-bottom: 2px solid rgba(12,123,173,.18); }
.kbios-mini-invoice-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; }
.kbios-public-footer { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-top: 18px; padding: 12px 16px; color: var(--kbios-muted); font-size: 12px; font-weight: 750; }
.kbios-public-footer strong { color: var(--kbios-blue-dark); }
@media (max-width: 860px) {
    .kbios-public-wrap { padding: 12px; border-radius: 18px; }
    .kbios-public-hero,
    .kbios-invoice-card-head,
    .kbios-payment-head,
    .kbios-client-invoice-row,
    .kbios-mini-invoice-summary { flex-direction: column; align-items: flex-start; }
    .kbios-lookup-form,
    .kbios-notice-grid,
    .kbios-total-grid,
    .kbios-gateway-grid { grid-template-columns: 1fr; }
    .kbios-client-invoice-row b { text-align: left; }
}

.kbios-money{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.18rem .48rem;font-weight:950;line-height:1.05;border:1px solid transparent;white-space:nowrap}.kbios-money-neutral{color:#334155;background:#f1f5f9;border-color:rgba(51,65,85,.10)}.kbios-money-incoming{color:#05603a;background:#dcfce7;border-color:rgba(5,96,58,.15)}.kbios-money-outgoing{color:#991b1b;background:#fee2e2;border-color:rgba(153,27,27,.14)}.kbios-money-tax{color:#92400e;background:#fef3c7;border-color:rgba(146,64,14,.15)}.kbios-money-net{color:#1e3a8a;background:#dbeafe;border-color:rgba(30,58,138,.14)}.kbios-money-balance{color:#075a80;background:#e0f2fe;border-color:rgba(7,90,128,.14)}.kbios-money-discount{color:#6d1d5f;background:#fce7f3;border-color:rgba(109,29,95,.13)}

.kbios-public-form-note { grid-column: 1 / -1; margin: -2px 0 0; color: var(--kbios-muted); font-size: 12px; font-weight: 700; line-height: 1.45; }


/* ─── v5.0.0 Public Widget Spacing System ───────────────────── */
.kbios-public-wrap { --kbios-public-widget-gap: 24px; --kbios-public-widget-gap-sm: 16px; }
.kbios-public-wrap > * + * { margin-top: var(--kbios-public-widget-gap) !important; }
.kbios-public-wrap :where(.kbios-lookup-panel, .kbios-client-list, .kbios-invoice-card, .kbios-payment-box, .kbios-public-alert) { margin-top: var(--kbios-public-widget-gap); margin-bottom: var(--kbios-public-widget-gap-sm); }
.kbios-public-wrap :where(.kbios-total-grid, .kbios-payment-methods, .kbios-notice-grid, .kbios-lookup-form, .kbios-public-grid, .kbios-public-mini-list) { gap: var(--kbios-public-widget-gap-sm) !important; }
.kbios-public-mini-list { display: grid; gap: var(--kbios-public-widget-gap-sm); }
.kbios-public-mini-row { display: grid; gap: 4px; border: 1px solid var(--kbios-line); background: rgba(255,255,255,.86); border-radius: 14px; padding: 12px; }
.kbios-public-mini-row span { font-weight: 900; color: var(--kbios-blue-dark); }
.kbios-public-mini-row small { color: var(--kbios-muted); font-weight: 650; }
@media (max-width: 720px) { .kbios-public-wrap { --kbios-public-widget-gap: 18px; --kbios-public-widget-gap-sm: 12px; } }


/* ─── v5.1.0 Public Widget Spacing Guard ─── */
.kbios-public-wrap > * + *,
.kbios-public-card-grid + .kbios-table-wrap,
.kbios-lookup-form > label + label,
.kbios-lookup-form > .kbios-public-checkline,
.kbios-public-alert + .kbios-lookup-form {
    margin-top: 18px;
}
.kbios-public-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
    margin: 18px 0;
}
.kbios-public-status-card {
    border: 1px solid rgba(12,123,173,.22);
    border-radius: 16px;
    padding: 14px;
    background: linear-gradient(135deg, #fff, #f4fbff);
}
.kbios-public-status-card strong,
.kbios-public-status-card span { display:block; }
.kbios-public-status-card span { margin-top: 6px; color:#526175; font-size: .92rem; }
.kbios-public-checkline { display:flex; gap:10px; align-items:flex-start; padding:12px 14px; background:#f8fbff; border:1px solid rgba(12,123,173,.18); border-radius:14px; }
