.rvb-hero {
    margin: 0 0 16px;
}

.rvb-hero h1 {
    margin: 0 0 8px;
    font-size: 28px;
    line-height: 1.25;
    font-weight: 800;
    color: #0f172a;
}

.rvb-lead {
    margin: 0;
    max-width: 46rem;
    color: #475569;
    font-size: 15px;
    line-height: 1.55;
}

.rvb {
    margin: 8px 0 28px;
    color: #0f172a;
}

.rvb-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
    gap: 24px;
    align-items: start;
}

.rvb-main { grid-column: 1; grid-row: 1; }
.rvb-advanced { grid-column: 1; grid-row: 2; }
.rvb-result { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 16px; }

.rvb-card {
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    border: 1px solid #e5ebf3;
    border-radius: 16px;
    padding: 24px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}

.rvb-chart-card,
.rvb-table-card,
.rvb-prose {
    margin-top: 20px;
}

.rvb-field {
    margin: 0 0 36px;
}

.rvb-field:last-child {
    margin-bottom: 0;
}

.rvb-title {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    color: #0f172a;
    display: block;
}

.rvb-hint,
.rvb-note {
    margin: 0;
    color: #64748b;
    font-size: 12px;
    line-height: 1.5;
}

.rvb-title + .rvb-hint {
    margin: -4px 0 12px;
}

.rvb-toggle + .rvb-hint,
.rvb-chips + .rvb-hint {
    margin-top: 10px;
}

.rvb-field .rvb-note {
    margin: 8px 0 0;
}

.rvb-advanced-body > .rvb-hint {
    margin: 0 0 20px;
}

.rvb-input-wrap {
    display: flex;
    align-items: center;
    width: 100%;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.rvb-input-wrap:focus-within {
    border-color: #3b82f6;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.14);
}

.rvb-input {
    flex: 1;
    min-width: 0;
    width: auto;
    border: none;
    border-radius: 12px;
    padding: 12px 14px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    color: #0f172a;
    background: transparent;
}

.rvb-input:focus { outline: none; }

.rvb-suffix {
    padding-right: 12px;
    font-size: 13px;
    color: #64748b;
    flex-shrink: 0;
    user-select: none;
}

.rvb-range {
    display: block;
    width: 100%;
    height: 22px;
    margin: 12px 0 0;
    accent-color: #2563eb;
}

.rvb-toggle,
.rvb-chips,
.rvb-quick {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rvb-field .rvb-quick,
.rvb-quick {
    margin: 12px 0 0;
}

.rvb-field + .rvb-quick {
    margin: -20px 0 36px;
}

.rvb-toggle-btn,
.rvb-chip,
.rvb-quick button,
.rvb-btn,
.rvb-advanced-toggle,
.rvb-schedule-toggle {
    border: 1px solid #dbe2ea;
    background: #fff;
    color: #334155;
    border-radius: 999px;
    cursor: pointer;
    font-weight: 700;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}

.rvb-toggle-btn,
.rvb-chip {
    padding: 8px 14px;
    font-size: 13px;
}

.rvb-quick button {
    padding: 7px 12px;
    font-size: 12px;
    background: #f8fafc;
}

.rvb-toggle-btn:hover,
.rvb-chip:hover,
.rvb-quick button:hover,
.rvb-advanced-toggle:hover,
.rvb-schedule-toggle:hover {
    background: #f8fbff;
    border-color: #93c5fd;
}

.rvb-toggle-btn.is-active,
.rvb-chip.is-active,
.rvb-quick button.is-active,
.rvb-advanced-toggle.is-active,
.rvb-schedule-toggle.is-active {
    border-color: #3b82f6;
    background: #eff6ff;
    color: #1d4ed8;
}

.rvb-toggle-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.rvb-actions {
    display: flex;
    gap: 10px;
    margin-top: 4px;
    padding-top: 18px;
    border-top: 1px solid #eef2f6;
}

.rvb-btn {
    border-radius: 12px;
    padding: 10px 16px;
}

.rvb-btn-secondary { background: #eef2f7; color: #0f172a; }
.rvb-btn-secondary:hover { background: #e2e8f0; }

.rvb-verdict {
    border-radius: 14px;
    padding: 14px 14px 12px;
    margin-bottom: 14px;
    border: 1px solid #dbeafe;
    background: #f8fbff;
}

.rvb-verdict.is-buy { background: #f0fdf4; border-color: #bbf7d0; }
.rvb-verdict.is-rent { background: #fff7ed; border-color: #fed7aa; }
.rvb-verdict.is-tie { background: #f8fafc; border-color: #e2e8f0; }

.rvb-kicker {
    margin: 0 0 4px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: #64748b;
}

.rvb-verdict-title {
    margin: 0 0 6px;
    font-size: 18px;
    line-height: 1.35;
    font-weight: 800;
    color: #0f172a;
}

.rvb-gap {
    margin: 0 0 8px;
    font-size: 20px;
    line-height: 1.3;
    font-weight: 800;
    color: #0057ff;
}

.rvb-verdict.is-rent .rvb-gap { color: #c2410c; }
.rvb-verdict.is-tie .rvb-gap { color: #334155; }

.rvb-assumption {
    margin: 0;
    font-size: 13px;
    line-height: 1.45;
    color: #334155;
}

.rvb-capitals {
    display: grid;
    gap: 10px;
    margin-bottom: 14px;
}

.rvb-capital {
    padding: 12px 12px 10px;
    border: 1px solid #e8eef5;
    border-radius: 12px;
    background: #f8fafc;
}

.rvb-capital span {
    display: block;
    font-size: 12px;
    color: #64748b;
}

.rvb-capital strong {
    display: block;
    margin: 2px 0 6px;
    font-size: 16px;
    color: #0f172a;
}

.rvb-bar {
    display: block;
    height: 8px;
    border-radius: 999px;
    width: 0;
}

.rvb-bar--rent { background: #f59e0b; }
.rvb-bar--buy { background: #2563eb; }

.rvb-breakeven,
.rvb-sensitivity {
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.45;
    color: #334155;
}

.rvb-sensitivity {
    padding: 8px 10px;
    border-radius: 10px;
    background: #fff7ed;
    border: 1px solid #fed7aa;
}

.rvb-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 4px;
}

.rvb-metric {
    position: relative;
    padding: 12px 12px 12px 14px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #e8eef5;
    overflow: hidden;
}

.rvb-metric::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 8px;
    width: 3px;
    border-radius: 999px;
    background: #cbd5e1;
}

.rvb-metric span {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
    line-height: 1.35;
}

.rvb-metric strong {
    display: block;
    margin-top: 4px;
    font-size: 15px;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.01em;
}

.rvb-metric--pay {
    background: #f4f7ff;
    border-color: #d7e3ff;
}
.rvb-metric--pay::before { background: #2563eb; }
.rvb-metric--pay span { color: #1e3a8a; }
.rvb-metric--pay strong { color: #1d4ed8; font-size: 16px; }

.rvb-metric--debt {
    background: #fff6f7;
    border-color: #fecdd3;
}
.rvb-metric--debt::before { background: #e11d48; }
.rvb-metric--debt span { color: #9f1239; }
.rvb-metric--debt strong { color: #be123c; }

.rvb-metric--now::before { background: #6366f1; }
.rvb-metric--now span { color: #3730a3; }
.rvb-metric--now strong { color: #4338ca; }

.rvb-metric--loan::before { background: #60a5fa; }
.rvb-metric--loan span { color: #1e40af; }
.rvb-metric--loan strong { color: #1d4ed8; }

.rvb-metric--rent {
    background: #fff8f1;
    border-color: #fde0c0;
}
.rvb-metric--rent::before { background: #f59e0b; }
.rvb-metric--rent span { color: #9a3412; }
.rvb-metric--rent strong { color: #c2410c; font-size: 16px; }

.rvb-metric--outlay {
    background: #f3f7ff;
    border-color: #c7d7fe;
}
.rvb-metric--outlay::before { background: #1d4ed8; }
.rvb-metric--outlay span { color: #1e3a8a; }
.rvb-metric--outlay strong { color: #1e3a8a; font-size: 16px; }

.rvb-metric--tax {
    background: #f3fbf9;
    border-color: #ccfbf1;
}
.rvb-metric--tax::before { background: #0d9488; }
.rvb-metric--tax span { color: #115e59; }
.rvb-metric--tax strong { color: #0f766e; }

.rvb-metric--cover::before { background: #38bdf8; }
.rvb-metric--cover span { color: #075985; }
.rvb-metric--cover strong { color: #0369a1; }

.rvb-metric--fee::before { background: #94a3b8; }

.rvb-metric--sale::before { background: #fb7185; }
.rvb-metric--sale span { color: #9f1239; }
.rvb-metric--sale strong { color: #be123c; }

.rvb-callout {
    margin: 12px 0 0;
    padding: 10px 12px;
    font-size: 13px;
    line-height: 1.5;
    color: #475569;
    background: linear-gradient(90deg, #eff6ff 0%, #f8fafc 100%);
    border: 1px solid #bfdbfe;
    border-left: 4px solid #3b82f6;
    border-radius: 10px;
}

.rvb-advanced-toggle,
.rvb-schedule-toggle {
    width: 100%;
    margin-top: 12px;
    border-radius: 12px;
    padding: 10px 12px;
    text-align: center;
}

.rvb-advanced-body { margin-top: 14px; }

.rvb-chart-card h3,
.rvb-table-card h3,
.rvb-prose h2 {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 800;
    color: #0f172a;
}

.rvb-chart-wrap { height: 280px; margin-top: 8px; }

.rvb-table-wrap {
    overflow-x: auto;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    margin-top: 12px;
}

.rvb-table-wrap.rvb-has-scroll { max-height: 520px; overflow-y: auto; }

.rvb-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 980px;
    background: #fff;
}

.rvb-table th,
.rvb-table td {
    text-align: left;
    padding: 10px 9px;
    border-bottom: 1px solid #f1f5f9;
    font-size: 13px;
    white-space: nowrap;
}

.rvb-table th {
    background: #f8fafc;
    color: #334155;
    font-weight: 800;
    position: sticky;
    top: 0;
    z-index: 1;
}

.rvb-table tbody tr:hover { background: #f8fbff; }
.rvb-table tr.is-ahead td:last-child { color: #166534; }
.rvb-table tr.is-mark { background: #eff6ff; }

.rvb-prose {
    padding: 22px;
}

.rvb-prose p,
.rvb-prose li {
    color: #334155;
    font-size: 15px;
    line-height: 1.6;
}

.rvb-prose ul { margin: 0 0 14px; padding-left: 18px; }
.rvb-prose h2 { margin-top: 22px; }
.rvb-prose h2:first-child { margin-top: 0; }

.rvb-prose a { color: #1d4ed8; }

.rvb-faq { display: grid; gap: 8px; margin-top: 8px; }

.rvb-faq details {
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
    padding: 10px 12px;
}

.rvb-faq summary {
    cursor: pointer;
    font-weight: 700;
    color: #0f172a;
}

.rvb-faq p { margin: 8px 0 0; }

@media (max-width: 991px) {
    .rvb-layout { grid-template-columns: 1fr; }
    .rvb-main,
    .rvb-result,
    .rvb-advanced { grid-column: 1; position: static; }
    .rvb-main { grid-row: 1; }
    .rvb-result { grid-row: 2; }
    .rvb-advanced { grid-row: 3; }
    .rvb-hero h1 { font-size: 24px; }
}

@media (max-width: 640px) {
    .rvb-card { padding: 16px; }
    .rvb-field { margin-bottom: 28px; }
    .rvb-field + .rvb-quick { margin-bottom: 28px; }
    .rvb-metrics { grid-template-columns: 1fr; }
    .rvb-gap { font-size: 18px; }
}
