@import url('https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800&family=Newsreader:opsz,wght@6..72,400;6..72,500;6..72,600&display=swap');

:root {
    --iv-navy-900: #07182F;
    --iv-navy-800: #0A1E3D;
    --iv-navy-700: #0B2143;
    --iv-ink: #0E1B2E;
    --iv-gold: #CBA14A;
    --iv-gold-light: #DCB95E;
    --iv-gold-dark: #A37D2C;
    --iv-green: #1E8E5A;
    --iv-green-bg: #E7F4EC;
    --iv-blue: #1F6FE5;
    --iv-red: #C0392B;
    --iv-surface: #FFFFFF;
    --iv-surface-2: #F4F8FD;
    --iv-surface-3: #F8FBFE;
    --iv-border-1: #E5EBF3;
    --iv-border-2: #EEF2F8;
    --iv-muted-1: #5C6B82;
    --iv-muted-2: #8493A8;
    --iv-muted-3: #9AA7B8;
    --iv-gold-grad: linear-gradient(180deg, #DCB95E, #CBA14A);
}

html, body {
    margin: 0;
    font-family: 'Hanken Grotesk', system-ui, sans-serif;
    -webkit-font-smoothing: antialiased;
    color: var(--iv-ink);
    background: var(--iv-surface);
}

h1, h2, h3, .iv-serif,
.mud-typography-h1, .mud-typography-h2, .mud-typography-h3, .mud-typography-h4 {
    font-family: 'Newsreader', Georgia, serif;
    font-weight: 500;
    letter-spacing: -0.01em;
}

.iv-tabular {
    font-variant-numeric: tabular-nums;
}

.iv-btn-gold {
    background: var(--iv-gold-grad);
    color: var(--iv-navy-800);
    border: none;
    border-radius: 12px;
    font-weight: 800;
    cursor: pointer;
}

a {
    color: var(--iv-blue);
    text-decoration: none;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

#blazor-error-ui {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

.blazor-error-boundary {
    background: #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.iv-cur-item:hover {
    background: #F4F8FD;
}

.iv-sidenav .iv-navitem {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 11px;
    color: #A9BAD3;
    font-weight: 600;
    font-size: 14.5px;
    text-decoration: none;
}

.iv-sidenav .iv-navitem:hover {
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
}

.iv-sidenav .iv-navitem.active {
    background: rgba(203, 161, 74, 0.14);
    color: #fff;
}

@media (max-width: 900px) {
    .iv-header { padding: 18px 20px !important; }
    .iv-navlinks { display: none !important; }
    .iv-hero { padding: 32px 20px 56px !important; grid-template-columns: 1fr !important; gap: 32px !important; }
    .iv-h1 { font-size: 40px !important; }
    .iv-stats { grid-template-columns: repeat(2, 1fr) !important; gap: 24px 0 !important; }
    .iv-section { padding: 52px 20px !important; }
    .iv-h2 { font-size: 30px !important; }
    .iv-rates-grid { grid-template-columns: 1fr !important; }
    .iv-steps { grid-template-columns: 1fr !important; }
    .iv-cta { padding: 52px 20px !important; }
    .iv-footer-cols { grid-template-columns: 1fr 1fr !important; }
    .iv-foot-legal { text-align: left !important; }
}

@media (max-width: 540px) {
    .iv-h1 { font-size: 33px !important; }
    .iv-stats { grid-template-columns: 1fr 1fr !important; }
    .iv-cta-btns { width: 100% !important; }
    .iv-footer-cols { grid-template-columns: 1fr !important; gap: 24px !important; }
}

/* Keyboard focus visibility (a11y) */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible,
.iv-navitem:focus-visible,
input:focus-visible,
select:focus-visible {
    outline: 2px solid var(--iv-gold);
    outline-offset: 2px;
    border-radius: 6px;
}

/* Dashboard: collapse the sidebar into a top bar on small screens */
@media (max-width: 860px) {
    .iv-dash { grid-template-columns: 1fr !important; }
    .iv-dash-stats { grid-template-columns: 1fr !important; }
    .iv-dash-main { padding: 22px 16px !important; }
    .iv-sidebar {
        position: static !important;
        height: auto !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 8px;
        padding: 11px 14px !important;
        overflow-x: auto;
    }
    .iv-sidebar > a:first-child { padding: 0 8px 0 2px !important; flex-shrink: 0; }
    .iv-sidenav { flex-direction: row !important; gap: 2px !important; }
    .iv-sidenav .iv-navitem { padding: 9px 12px !important; white-space: nowrap; font-size: 13.5px !important; }
    .iv-sidebar-user { margin-top: 0 !important; margin-left: auto; flex-shrink: 0; }
    .iv-sidebar-user .iv-user-text { display: none !important; }
}

/* Transfer rows: drop the amounts onto their own line on narrow phones */
@media (max-width: 520px) {
    .iv-tx-row { flex-wrap: wrap; row-gap: 3px; }
    .iv-tx-main > div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .iv-tx-amounts {
        order: 1;
        flex-basis: 100%;
        text-align: left !important;
        padding-left: 54px;
        display: flex;
        gap: 8px;
        align-items: baseline;
    }
}
