/* ===== AVORA Platform — Public Styles ===== */

/* Auth Pages */
.avora-auth-wrap {
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 3rem 1rem;
    background: var(--bg-main);
}
.avora-auth-card {
    width: 100%;
    max-width: 520px;
    background: var(--bg-card);
    border: 1px solid rgba(214,194,156,.12);
    border-radius: var(--radius-2xl);
    padding: 2.5rem 2rem;
    box-shadow: 0 20px 60px rgba(0,0,0,.4);
}
.avora-auth-logo { text-align: center; margin-bottom: .75rem; } .avora-auth-logo img { height: 28px !important; width: auto; }
.avora-auth-title {
    font-size: clamp(1.5rem,3vw,2rem);
    font-weight: 700;
    color: var(--brand-cream);
    text-align: center;
    margin-bottom: .375rem;
}
.avora-auth-subtitle {
    color: var(--brand-sage);
    font-size: .875rem;
    text-align: center;
    margin-bottom: 1.75rem;
}
.avora-auth-footer {
    text-align: center;
    font-size: .875rem;
    color: var(--brand-sage);
    margin-top: 1.25rem;
}

/* Forms */
.avora-form { display: flex; flex-direction: column; gap: .875rem; }
.avora-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .875rem; }
@media(max-width:480px) { .avora-form-row { grid-template-columns: 1fr; } }
.avora-form-group { display: flex; flex-direction: column; gap: .375rem; }
.avora-form-group label {
    font-size: .8125rem;
    font-weight: 500;
    color: var(--brand-cream);
}
.avora-form-group input,
.avora-form-group select,
.avora-form-group textarea {
    width: 100%;
    padding: .625rem 1rem;
    border-radius: var(--radius-xl);
    background: var(--bg-main);
    border: 1px solid rgba(214,194,156,.15);
    font-size: .875rem;
    color: var(--brand-cream);
    font-family: 'Poppins', sans-serif;
    transition: border-color .2s, box-shadow .2s;
}
.avora-form-group input:focus,
.avora-form-group select:focus,
.avora-form-group textarea:focus {
    outline: none;
    border-color: rgba(214,194,156,.35);
    box-shadow: 0 0 0 3px rgba(214,194,156,.08);
}
.avora-form-group select { cursor: pointer; }
.avora-form-group textarea { resize: vertical; min-height: 80px; }
.avora-form-group input[type=checkbox] { width: auto; }

/* Notices */
.avora-notice {
    padding: .75rem 1rem;
    border-radius: var(--radius-xl);
    font-size: .875rem;
    margin-bottom: .5rem;
    border: 1px solid;
}
.avora-notice-error {
    background: rgba(220,38,38,.1);
    border-color: rgba(220,38,38,.3);
    color: #fca5a5;
}
.avora-notice-success {
    background: rgba(34,197,94,.1);
    border-color: rgba(34,197,94,.3);
    color: #86efac;
}

/* ===== Dashboard ===== */
.avora-dashboard {
    display: block;
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
    background: var(--bg-main);
}
.avora-dash-topbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 2rem;
}
.avora-dash-greeting { flex: 1; min-width: 0; margin-bottom: 0; }
.avora-dash-greeting h2 { font-size: clamp(1.25rem,2.5vw,1.75rem); font-weight: 700; margin: 0 0 .25rem; }
.avora-dash-greeting p  { font-size: .875rem; color: var(--brand-sage); }
.avora-logout-btn { font-size: .8125rem; padding: .5rem 1rem; }

/* KPI Grid */
.avora-kpi-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}
@media(min-width:768px) { .avora-kpi-grid { grid-template-columns: repeat(4,1fr); } }
.avora-kpi-card {
    background: var(--bg-card);
    border: 1px solid rgba(214,194,156,.1);
    border-radius: var(--radius-2xl);
    padding: 1.25rem 1rem;
    text-align: center;
    transition: border-color .2s;
}
.avora-kpi-card:hover { border-color: rgba(214,194,156,.25); }
.avora-kpi-highlight { border-color: rgba(214,194,156,.2); }
.avora-kpi-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 2.5rem; height: 2.5rem; border-radius: var(--radius-xl);
    background: rgba(214,194,156,.1); margin-bottom: .75rem;
}
.avora-kpi-icon svg { width: 1.25rem; height: 1.25rem; }
.avora-kpi-value { font-size: clamp(1.125rem,2.5vw,1.5rem); font-weight: 700; margin-bottom: .25rem; }
.avora-kpi-label { font-size: .75rem; color: var(--brand-sage); }

/* Two Column Grid */
.avora-dash-grid-2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}
@media(min-width:768px) { .avora-dash-grid-2 { grid-template-columns: 1fr 1fr; } }

/* Cards */
.avora-card {
    background: var(--bg-card);
    border: 1px solid rgba(214,194,156,.1);
    border-radius: var(--radius-2xl);
    padding: 1.25rem;
}
.avora-card-header {
    display: flex; align-items: center; gap: .625rem;
    margin-bottom: 1.25rem;
    font-size: .9375rem; font-weight: 600; color: var(--brand-cream);
}
.avora-card-header svg { width: 1.125rem; height: 1.125rem; }

/* Empty state */
.avora-empty {
    display: flex; flex-direction: column; align-items: center;
    gap: .75rem; padding: 2rem 1rem; text-align: center;
    color: var(--brand-sage); font-size: .875rem;
}
.avora-empty svg { width: 2rem; height: 2rem; opacity: .5; }

/* Investment List */
.avora-invest-list { display: flex; flex-direction: column; gap: .625rem; }
.avora-invest-item {
    display: flex; align-items: center; justify-content: space-between;
    padding: .75rem; border-radius: var(--radius-xl);
    background: rgba(10,31,23,.5); border: 1px solid rgba(214,194,156,.06);
}
.avora-invest-left { display: flex; flex-direction: column; gap: .2rem; }
.avora-invest-plan  { font-size: .75rem; font-weight: 600; }
.avora-invest-amount { font-size: 1rem; font-weight: 700; color: var(--brand-cream); }
.avora-invest-right { display: flex; flex-direction: column; align-items: flex-end; gap: .2rem; }
.avora-invest-rate  { font-size: .75rem; color: var(--brand-sage); }

/* Status badges */
.avora-invest-status, .avora-tx-status {
    font-size: .6875rem; font-weight: 600;
    padding: .15rem .5rem; border-radius: 9999px;
    text-transform: uppercase; letter-spacing: .04em;
}
.avora-status-pending  { background: rgba(251,191,36,.15); color: #fbbf24; }
.avora-status-active   { background: rgba(34,197,94,.15);  color: #4ade80; }
.avora-status-matured  { background: rgba(139,92,246,.15); color: #c4b5fd; }
.avora-status-cancelled { background: rgba(239,68,68,.15); color: #f87171; }

/* Transaction List */
.avora-tx-list { display: flex; flex-direction: column; gap: .5rem; }
.avora-tx-item {
    display: flex; align-items: center; justify-content: space-between;
    padding: .625rem .75rem; border-radius: var(--radius-xl);
    background: rgba(10,31,23,.5); border: 1px solid rgba(214,194,156,.05);
}
.avora-tx-left { display: flex; align-items: center; gap: .625rem; }
.avora-tx-left svg { width: 1.125rem; height: 1.125rem; flex-shrink: 0; }
.avora-tx-left > div { display: flex; flex-direction: column; gap: .1rem; }
.avora-tx-type { font-size: .8125rem; font-weight: 500; color: var(--brand-cream); }
.avora-tx-date { font-size: .6875rem; color: var(--brand-sage); }
.avora-tx-right { display: flex; flex-direction: column; align-items: flex-end; gap: .2rem; }
.avora-tx-amount { font-size: .9375rem; font-weight: 700; }
.avora-tx-neg { color: #f87171 !important; -webkit-text-fill-color: #f87171 !important; }

/* Action Sections */
.avora-action-section h4 { font-size: .9375rem; font-weight: 600; color: var(--brand-cream); margin-bottom: .25rem; }
.avora-action-section > p { font-size: .8125rem; color: var(--brand-sage); margin-bottom: .875rem; }

/* Profile */
.avora-profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media(max-width:480px) { .avora-profile-grid { grid-template-columns: 1fr; } }
.avora-profile-field { display: flex; flex-direction: column; gap: .2rem; }
.avora-profile-field .label { font-size: .75rem; color: var(--brand-sage); }
.avora-profile-field .value { font-size: .9375rem; color: var(--brand-cream); font-weight: 500; }

/* KPI Indicator Badges */
.avora-kpi-badge {
    display: inline-flex; align-items: center; gap: .25rem;
    margin-top: .5rem;
    padding: .2rem .625rem;
    border-radius: 9999px;
    font-size: .6875rem; font-weight: 600;
    letter-spacing: .02em;
}
.avora-kpi-badge svg { width: .75rem; height: .75rem; }
.avora-kpi-badge--pos {
    background: rgba(74,222,128,.12);
    color: #4ade80;
    border: 1px solid rgba(74,222,128,.2);
}
.avora-kpi-badge--pos svg { stroke: #4ade80 !important; }
.avora-kpi-badge--neutral {
    background: rgba(122,157,142,.1);
    color: var(--brand-sage);
    border: 1px solid rgba(122,157,142,.15);
}
.avora-kpi-badge--neutral svg { stroke: var(--brand-sage) !important; }

/* ===== Investments Table ===== */
.avora-inv-count-badge {
    margin-left: auto;
    padding: .2rem .625rem;
    background: rgba(74,222,128,.12);
    color: #4ade80;
    border: 1px solid rgba(74,222,128,.2);
    border-radius: 9999px;
    font-size: .6875rem; font-weight: 600;
}
.avora-inv-table { display: flex; flex-direction: column; gap: 1rem; }
.avora-inv-row {
    background: rgba(10,31,23,.5);
    border: 1px solid rgba(214,194,156,.08);
    border-radius: var(--radius-xl);
    padding: 1rem;
    transition: border-color .2s;
}
.avora-inv-row:hover { border-color: rgba(214,194,156,.2); }

.avora-inv-row-top {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: .5rem;
    margin-bottom: .875rem;
}
.avora-inv-row-left  { display: flex; align-items: center; gap: .625rem; flex-wrap: wrap; }
.avora-inv-row-right { display: flex; align-items: center; gap: .5rem; }

.avora-inv-plan-tag {
    padding: .25rem .75rem;
    border-radius: 9999px;
    font-size: .75rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .04em;
}
.avora-inv-plan-semilla { background: rgba(134,239,172,.12); color: #86efac; border: 1px solid rgba(134,239,172,.2); }
.avora-inv-plan-brote   { background: rgba(214,194,156,.12); color: var(--brand-gold); border: 1px solid rgba(214,194,156,.2); }
.avora-inv-plan-cosecha { background: rgba(196,181,253,.12); color: #c4b5fd; border: 1px solid rgba(196,181,253,.2); }

.avora-inv-row-amount { font-size: 1.0625rem; font-weight: 700; color: var(--brand-cream); }
.avora-inv-row-rate   { font-size: .8125rem; color: var(--brand-sage); }
.avora-inv-cycle-badge {
    padding: .175rem .5rem;
    background: rgba(122,157,142,.1);
    border: 1px solid rgba(122,157,142,.15);
    border-radius: var(--radius);
    font-size: .6875rem; font-weight: 600;
    color: var(--brand-sage);
    font-family: 'JetBrains Mono', monospace;
}

.avora-inv-row-dates {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .625rem;
    margin-bottom: .875rem;
}
@media(min-width:640px) { .avora-inv-row-dates { grid-template-columns: repeat(4, 1fr); } }

.avora-inv-date-item {
    display: flex; flex-direction: column; gap: .2rem;
    padding: .5rem .625rem;
    background: rgba(214,194,156,.04);
    border-radius: var(--radius);
    border: 1px solid rgba(214,194,156,.06);
}
.avora-inv-date-item svg { width: .875rem; height: .875rem; margin-bottom: .125rem; }
.avora-inv-date-item .label { font-size: .6875rem; color: var(--brand-sage); }
.avora-inv-date-item .value { font-size: .8125rem; font-weight: 600; color: var(--brand-cream); }
.avora-earnings-pos {
    color: #4ade80 !important;
    -webkit-text-fill-color: #4ade80 !important;
}

.avora-inv-progress-wrap {
    display: flex; align-items: center; gap: .75rem;
}
.avora-inv-progress-bar-bg {
    flex: 1; height: 6px;
    background: rgba(214,194,156,.1);
    border-radius: 9999px; overflow: hidden;
}
.avora-inv-progress-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #c9a84c, #e8d5a3);
    border-radius: 9999px;
    transition: width .6s ease;
}
.avora-inv-progress-pct { font-size: .6875rem; color: var(--brand-sage); white-space: nowrap; }

/* ===== Transaction Filters ===== */
.avora-tx-total-badge {
    margin-left: auto;
    padding: .2rem .625rem;
    background: rgba(214,194,156,.1);
    color: var(--brand-sage);
    border: 1px solid rgba(214,194,156,.15);
    border-radius: 9999px;
    font-size: .6875rem; font-weight: 600;
    font-family: 'JetBrains Mono', monospace;
}
.avora-tx-filters {
    display: flex; gap: .375rem; flex-wrap: wrap;
    margin-bottom: 1rem;
}
.avora-tx-filter-btn {
    padding: .3rem .75rem;
    border-radius: 9999px;
    font-size: .75rem; font-weight: 500;
    color: var(--brand-sage);
    background: rgba(214,194,156,.06);
    border: 1px solid rgba(214,194,156,.1);
    text-decoration: none;
    transition: all .2s;
}
.avora-tx-filter-btn:hover {
    color: var(--brand-gold);
    border-color: rgba(214,194,156,.25);
    background: rgba(214,194,156,.1);
}
.avora-tx-filter-btn.active {
    background: linear-gradient(135deg,#c9a84c,#d6c29c 40%,#e8d5a3 55%,#d6c29c 70%,#b8943d);
    color: var(--brand-green);
    border-color: transparent;
    font-weight: 600;
}

/* ===== Charts Grid (line + donut) ===== */
.avora-charts-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}
@media(min-width:768px) {
    .avora-charts-grid { grid-template-columns: 2fr 1fr; }
}

/* Donut chart */
.avora-donut-wrap {
    display: flex;
    justify-content: center;
    padding: .5rem 0 1rem;
    max-height: 200px;
}
.avora-donut-wrap canvas { max-height: 190px; }

.avora-donut-legend {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding-top: .25rem;
}
.avora-donut-legend-item {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .375rem .5rem;
    border-radius: var(--radius);
    background: rgba(10,31,23,.5);
}
.avora-donut-dot {
    width: .625rem; height: .625rem;
    border-radius: 50%;
    flex-shrink: 0;
}
.avora-donut-plan {
    font-size: .8125rem;
    color: var(--brand-cream);
    flex: 1;
}
.avora-donut-pct {
    font-size: .75rem;
    color: var(--brand-sage);
    min-width: 2.5rem;
    text-align: right;
}
.avora-donut-amt {
    font-size: .75rem;
    color: var(--brand-gold);
    min-width: 5rem;
    text-align: right;
}

/* ===== Proyección de Ganancias ===== */
.avora-proj-grid {
    background: var(--bg-card);
    border: 1px solid rgba(214,194,156,.1);
    border-radius: var(--radius-2xl);
    padding: 1.25rem;
}
.avora-proj-header {
    display: flex; align-items: center; gap: .5rem;
    margin-bottom: 1rem;
    font-size: .9375rem; font-weight: 600; color: var(--brand-cream);
    flex-wrap: wrap;
}
.avora-proj-header svg { width: 1.125rem; height: 1.125rem; }
.avora-proj-note {
    margin-left: auto;
    font-size: .6875rem; font-weight: 400;
    color: var(--brand-sage);
}
.avora-proj-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .875rem;
}
@media(max-width:480px) { .avora-proj-cards { grid-template-columns: 1fr; } }
.avora-proj-card {
    background: rgba(10,31,23,.6);
    border: 1px solid rgba(214,194,156,.07);
    border-radius: var(--radius-xl);
    padding: 1rem;
    text-align: center;
    transition: border-color .2s;
}
.avora-proj-card:hover { border-color: rgba(214,194,156,.2); }
.avora-proj-card--highlight {
    border-color: rgba(214,194,156,.18);
    background: linear-gradient(135deg, rgba(214,194,156,.07), rgba(10,31,23,.8));
}
.avora-proj-period {
    display: flex; align-items: center; justify-content: center; gap: .375rem;
    font-size: .75rem; color: var(--brand-sage); margin-bottom: .625rem;
}
.avora-proj-period svg { width: .875rem; height: .875rem; }
.avora-proj-amount {
    font-size: clamp(1.125rem, 2.5vw, 1.375rem);
    font-weight: 700;
    margin-bottom: .25rem;
}
.avora-proj-label {
    font-size: .6875rem;
    color: var(--brand-sage);
}

/* ===== Notification Bell ===== */
.avora-topbar-actions {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: .75rem;
    flex-shrink: 0;
    z-index: 10;
}
.avora-notif-wrap {
    position: relative;
}
.avora-notif-btn {
    position: relative;
    background: rgba(214,194,156,.08);
    border: 1px solid rgba(214,194,156,.15);
    border-radius: var(--radius-xl);
    width: 2.5rem; height: 2.5rem;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; transition: all .2s;
}
.avora-notif-btn:hover {
    background: rgba(214,194,156,.15);
    border-color: rgba(214,194,156,.3);
}
.avora-notif-btn svg { width: 1.125rem; height: 1.125rem; }
.avora-notif-badge {
    position: absolute; top: -.375rem; right: -.375rem;
    background: #ef4444;
    color: #fff;
    font-size: .625rem; font-weight: 700;
    min-width: 1.125rem; height: 1.125rem;
    border-radius: 9999px;
    display: flex; align-items: center; justify-content: center;
    padding: 0 .25rem;
    border: 2px solid var(--bg-card);
}

/* Panel */
.avora-notif-panel {
    position: absolute; top: calc(100% + .5rem); right: 0;
    width: 320px;
    background: var(--bg-card);
    border: 1px solid rgba(214,194,156,.15);
    border-radius: var(--radius-2xl);
    box-shadow: 0 20px 60px rgba(0,0,0,.4);
    z-index: 9999;
    overflow: hidden;
}
.avora-notif-panel[hidden] { display: none; }

.avora-notif-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: .875rem 1rem;
    font-size: .875rem; font-weight: 600; color: var(--brand-cream);
    border-bottom: 1px solid rgba(214,194,156,.08);
}
.avora-notif-mark-read {
    font-size: .75rem; font-weight: 400;
    color: var(--brand-sage);
    text-decoration: none; transition: color .2s;
}
.avora-notif-mark-read:hover { color: var(--brand-gold); }

.avora-notif-list {
    max-height: 380px;
    overflow-y: auto;
}
.avora-notif-empty {
    display: flex; flex-direction: column; align-items: center; gap: .5rem;
    padding: 2rem 1rem;
    color: var(--brand-sage); font-size: .8125rem;
}
.avora-notif-empty svg { width: 1.5rem; height: 1.5rem; opacity: .5; }

.avora-notif-item {
    display: flex; align-items: flex-start; gap: .75rem;
    padding: .875rem 1rem;
    border-bottom: 1px solid rgba(214,194,156,.05);
    transition: background .15s;
}
.avora-notif-item:last-child { border-bottom: none; }
.avora-notif-item:hover { background: rgba(214,194,156,.04); }
.avora-notif-unread { background: rgba(214,194,156,.05); }
.avora-notif-unread::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 3px;
    background: var(--brand-gold);
}
.avora-notif-item { position: relative; }

.avora-notif-icon-wrap {
    width: 2rem; height: 2rem; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: rgba(214,194,156,.08);
    border-radius: var(--radius);
}
.avora-notif-icon-wrap svg { width: .875rem; height: .875rem; }

.avora-notif-body { flex: 1; min-width: 0; }
.avora-notif-title {
    font-size: .8125rem; font-weight: 600;
    color: var(--brand-cream); margin-bottom: .2rem;
}
.avora-notif-msg {
    font-size: .75rem; color: var(--brand-sage);
    line-height: 1.4; margin-bottom: .25rem;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.avora-notif-time {
    font-size: .6875rem; color: rgba(122,157,142,.6);
}
.avora-notif-amount {
    font-size: .75rem; font-weight: 700;
    flex-shrink: 0; white-space: nowrap;
}

@media(max-width:400px) {
    .avora-notif-panel { width: calc(100vw - 2rem); right: -1rem; }
}

/* ===== Dashboard Simulator ===== */
.avora-sim-card .avora-card-header { flex-wrap: wrap; gap: .5rem; }
.avora-sim-badge {
    margin-left: auto;
    padding: .2rem .75rem;
    background: rgba(214,194,156,.1);
    border: 1px solid rgba(214,194,156,.2);
    border-radius: 9999px;
    font-size: .75rem; font-weight: 600;
    color: var(--brand-gold);
}
.avora-sim-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}
@media(min-width:640px) { .avora-sim-grid { grid-template-columns: 1fr 1fr; } }

.avora-sim-inputs { display: flex; flex-direction: column; gap: 1.25rem; }
.avora-sim-field label {
    display: flex; align-items: center; gap: .375rem;
    font-size: .8125rem; font-weight: 500;
    color: var(--brand-cream); margin-bottom: .375rem;
}
.avora-sim-field label svg { width: .875rem; height: .875rem; }
.avora-sim-field input[type=range] { width: 100%; accent-color: var(--brand-gold); }
.avora-sim-value {
    text-align: right;
    font-size: 1.125rem; font-weight: 700;
    margin-top: .25rem;
}
.avora-sim-periods { display: flex; gap: .375rem; flex-wrap: wrap; margin-top: .375rem; }
.avora-sim-period-btn {
    padding: .3rem .75rem;
    border-radius: var(--radius);
    border: 1px solid rgba(214,194,156,.15);
    background: var(--bg-main);
    color: var(--brand-sage);
    font-size: .8125rem; font-weight: 500;
    cursor: pointer; transition: all .2s;
}
.avora-sim-period-btn:hover { border-color: rgba(214,194,156,.3); color: var(--brand-gold); }
.avora-sim-period-btn.active {
    background: linear-gradient(135deg,#c9a84c,#d6c29c 40%,#e8d5a3 55%,#d6c29c 70%,#b8943d);
    color: var(--brand-green);
    border-color: transparent;
    font-weight: 600;
}
.avora-sim-result { display: flex; flex-direction: column; justify-content: center; }
.avora-sim-result-box {
    background: linear-gradient(135deg,rgba(214,194,156,.08),rgba(15,61,46,.2));
    border: 1px solid rgba(214,194,156,.15);
    border-radius: var(--radius-2xl);
    padding: 1.25rem;
}
.avora-sim-result-row { margin-bottom: 1rem; }
.avora-sim-result-row .label,
.avora-sim-result-total .label {
    font-size: .75rem; color: var(--brand-sage); display: block; margin-bottom: .25rem;
}
.avora-sim-result-row .amount { font-size: 1.375rem; font-weight: 700; }
.avora-sim-result-total {
    padding-top: 1rem;
    border-top: 1px solid rgba(214,194,156,.12);
}
.avora-sim-result-total .amount {
    font-size: 1.75rem; font-weight: 700; color: var(--brand-cream);
}

/* ===== Export Buttons ===== */
.avora-export-btns {
    display: flex; gap: .375rem; margin-left: auto;
}
.avora-export-btn {
    display: inline-flex; align-items: center; gap: .3rem;
    padding: .25rem .625rem;
    border-radius: var(--radius);
    background: rgba(214,194,156,.08);
    border: 1px solid rgba(214,194,156,.15);
    font-size: .6875rem; font-weight: 600;
    color: var(--brand-sage);
    text-decoration: none;
    transition: all .2s;
}
.avora-export-btn svg { width: .75rem; height: .75rem; }
.avora-export-btn:hover {
    background: rgba(214,194,156,.15);
    color: var(--brand-gold);
    border-color: rgba(214,194,156,.3);
}

/* ===== Deposit Fee Breakdown ===== */
.avora-deposit-breakdown {
    background: rgba(214,194,156,.05);
    border: 1px solid rgba(214,194,156,.12);
    border-radius: var(--radius-xl);
    padding: .875rem 1rem;
    margin-bottom: .875rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.avora-breakdown-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .8125rem;
    color: var(--brand-sage);
}
.avora-breakdown-fee { color: #f87171; }
.avora-breakdown-net {
    padding-top: .5rem;
    border-top: 1px solid rgba(214,194,156,.15);
    color: var(--brand-cream);
    font-size: .875rem;
}

/* ===== Payment Method Selector ===== */
.avora-payment-method-selector {
    display: flex; gap: .5rem; margin-bottom: 1rem;
}
.avora-pm-btn {
    flex: 1; display: flex; flex-direction: column; align-items: center; gap: .3rem;
    padding: .625rem .5rem;
    background: rgba(10,31,23,.6);
    border: 1px solid rgba(214,194,156,.1);
    border-radius: var(--radius-xl);
    color: var(--brand-sage);
    font-size: .75rem; font-weight: 500;
    cursor: pointer; transition: all .2s;
}
.avora-pm-btn svg { width: 1.125rem; height: 1.125rem; }
.avora-pm-btn:hover { border-color: rgba(214,194,156,.25); color: var(--brand-gold); }
.avora-pm-btn.active {
    background: rgba(214,194,156,.1);
    border-color: rgba(214,194,156,.35);
    color: var(--brand-gold);
}
.avora-pm-panel { display: none; }
.avora-pm-panel.active { display: block; }

/* Gateway info box */
.avora-gateway-info {
    background: rgba(214,194,156,.05);
    border: 1px solid rgba(214,194,156,.1);
    border-radius: var(--radius-xl);
    padding: .875rem 1rem;
    margin-bottom: .875rem;
}
.avora-gateway-crypto { border-color: rgba(134,239,172,.15); background: rgba(134,239,172,.04); }
.avora-gateway-info-header {
    display: flex; align-items: center; gap: .5rem;
    font-size: .875rem; font-weight: 600; color: var(--brand-cream);
    margin-bottom: .5rem;
}
.avora-gateway-info-header svg { width: 1rem; height: 1rem; }
.avora-gateway-info p { font-size: .8125rem; color: var(--brand-sage); line-height: 1.5; margin: 0; }
.avora-bank-info {
    background: rgba(10,31,23,.7);
    border: 1px solid rgba(214,194,156,.1);
    border-radius: var(--radius);
    padding: .625rem .875rem;
    font-size: .8125rem;
    color: var(--brand-cream);
    font-family: 'JetBrains Mono', monospace;
    white-space: pre-wrap;
    margin: .5rem 0 0;
}

/* ===== RESPONSIVE — Dashboard /mi-cuenta/ ===== */
@media(max-width:767px){
  .avora-dashboard { padding:1.25rem .75rem 3rem; }

  /* Topbar */
  .avora-topbar-actions { gap: .5rem; }
  .avora-dash-greeting { padding-right: 130px; }
  .avora-dash-greeting h2 { font-size:1.25rem; }
  .avora-topbar-actions { width:100%; justify-content:flex-end; }
  .avora-notif-panel { right:-0.5rem; width:calc(100vw - 1rem); }

  /* KPIs */
  .avora-kpi-grid { grid-template-columns:repeat(2,1fr); gap:.75rem; }
  .avora-kpi-value { font-size:1.125rem; }

  /* Proyecciones */
  .avora-proj-cards { grid-template-columns:1fr; }
  .avora-proj-header { flex-direction:column; align-items:flex-start; gap:.375rem; }
  .avora-proj-note { margin-left:0; }

  /* Charts grid */
  .avora-charts-grid { grid-template-columns:1fr; }

  /* Investments table */
  .avora-inv-row-top { flex-direction:column; gap:.5rem; }
  .avora-inv-row-dates { grid-template-columns:repeat(2,1fr); }
  .avora-inv-progress-wrap { flex-direction:column; align-items:flex-start; gap:.25rem; }

  /* Transactions */
  .avora-tx-filters { gap:.25rem; }
  .avora-tx-filter-btn { padding:.25rem .5rem; font-size:.6875rem; }
  .avora-export-btns { display:none; }
  .avora-card-header { flex-wrap:wrap; }

  /* 2-col grid */
  .avora-dash-grid-2 { grid-template-columns:1fr; }

  /* Simulator */
  .avora-sim-grid { grid-template-columns:1fr; }
  .avora-sim-result { order:-1; }

  /* Profile */
  .avora-profile-grid { grid-template-columns:1fr; }

  /* Deposit form */
  .avora-form-row { grid-template-columns:1fr; }
  .avora-payment-method-selector { flex-wrap:wrap; }
  .avora-pm-btn { flex:0 0 calc(50% - .25rem); }
}

@media(max-width:480px){
  .avora-kpi-grid { grid-template-columns:1fr 1fr; }
  .avora-inv-row-dates { grid-template-columns:1fr 1fr; }
  .avora-donut-wrap { max-height:160px; }
  .avora-donut-wrap canvas { max-height:150px; }
  .avora-sim-period-btn { padding:.3rem .5rem; font-size:.75rem; }
}

/* ===== Charts — Fix canvas overflow ===== */
.avora-charts-grid { overflow:hidden; }
.avora-charts-grid .avora-card { min-width:0; overflow:hidden; }
.avora-charts-grid canvas { max-width:100% !important; }
.avora-donut-wrap { overflow:hidden; }
.avora-donut-wrap canvas { max-width:100% !important; max-height:190px !important; }

/* ===== Responsive adicional — Charts y secciones ===== */
@media(max-width:767px){
  /* Charts: stack en mobile */
  .avora-charts-grid {
    grid-template-columns:1fr !important;
    overflow:hidden;
  }
  .avora-charts-grid .avora-card {
    min-width:0;
    overflow:hidden;
    width:100%;
  }
  /* Donut más pequeño en mobile */
  .avora-donut-wrap { max-height:180px; }
  .avora-donut-wrap canvas { max-height:170px !important; }
  /* Investments rows */
  .avora-inv-row { overflow:hidden; }
  .avora-inv-row-dates { grid-template-columns:1fr 1fr !important; }
  /* Dashboard general */
  .avora-dashboard { overflow-x:hidden; max-width:100vw; }
  .avora-card { overflow:hidden; }
}

@media(max-width:480px){
  .avora-charts-grid { gap:.75rem; }
  .avora-donut-wrap { max-height:160px; }
  .avora-donut-wrap canvas { max-height:150px !important; }
  .avora-inv-row-dates { grid-template-columns:1fr 1fr !important; }
}

/* ========= KYC ========= */
.avora-kyc-badge {
    margin-left: auto;
    font-size: .75rem;
    font-weight: 600;
    padding: .2rem .75rem;
    border-radius: 9999px;
    flex-shrink: 0;
}
.kyc-approved { background: rgba(45,106,79,.15);  color: #2d6a4f; }
.kyc-pending  { background: rgba(212,175,55,.15); color: #92400e; }
.kyc-rejected { background: rgba(220,38,38,.1);   color: #dc2626; }

.kyc-step-title { margin: 0 0 .75rem; font-size: 1.1rem; }
.kyc-list { list-style: none; padding: 0; margin: .5rem 0 1.25rem; display: flex; flex-direction: column; gap: .4rem; }
.kyc-list li { display: flex; align-items: center; gap: .5rem; font-size: .875rem; color: var(--text-muted); }

.kyc-camera-wrap {
    position: relative;
    width: 100%;
    max-width: 360px;
    margin: 0 auto .75rem;
    border-radius: 12px;
    overflow: hidden;
}
.kyc-camera-wrap.kyc-camera-active {
    background: #000;
    aspect-ratio: 4/3;
}
.kyc-camera-wrap video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.kyc-overlay {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
}

.kyc-hint { text-align: center; font-size: .8rem; color: var(--text-muted); margin-bottom: .75rem; }

.kyc-preview { max-width: 100%; border-radius: 8px; margin-top: .5rem; display: block; }

.kyc-field { margin-bottom: 1rem; }
.kyc-field > label { display: block; font-size: .8rem; color: var(--text-muted); margin-bottom: .35rem; font-weight: 500; }

.kyc-upload-label {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .45rem .85rem;
    border: 1px solid rgba(212,175,55,.4);
    border-radius: 6px;
    font-size: .8rem;
    cursor: pointer;
    color: var(--text-main);
    background: var(--bg-card);
    transition: border-color .2s;
}
.kyc-upload-label:hover { border-color: #d4af37; }
.kyc-upload-label input[type="file"] { display: none; }

.kyc-field select {
    width: 100%;
    padding: .5rem .75rem;
    border: 1px solid rgba(212,175,55,.3);
    border-radius: 6px;
    background: var(--bg-card);
    color: var(--text-main);
    font-size: .875rem;
}
.kyc-field select:focus { outline: none; border-color: #d4af37; }

.kyc-confirm-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; margin-bottom: 1.25rem; }
.kyc-confirm-label { font-size: .75rem; color: var(--text-muted); margin: 0 0 .25rem; font-weight: 600; text-transform: uppercase; }

.kyc-success { text-align: center; padding: 1.5rem .5rem; }
.kyc-success-icon { width: 3rem; height: 3rem; color: #2d6a4f; margin-bottom: .75rem; }
.kyc-success h3 { margin: 0 0 .5rem; }
.kyc-success p  { color: var(--text-muted); margin: 0; font-size: .875rem; }

@media(max-width:480px){
    .kyc-confirm-grid { grid-template-columns: 1fr; }
    .kyc-camera-wrap  { max-width: 100%; }
}

/* ========= Registration Wizard ========= */
.avora-reg-wrap { max-width: 580px; margin: 0 auto; padding: 1rem; }

.avora-reg-timeline {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-bottom: 2rem;
    padding: 0 1rem;
}
.reg-step-line {
    flex: 1;
    height: 2px;
    background: rgba(212,175,55,.2);
    max-width: 80px;
    transition: background .3s;
}
.reg-step-dot {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    cursor: default;
}
.dot-num {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    border: 2px solid rgba(212,175,55,.3);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    font-weight: 700;
    color: var(--text-muted);
    background: var(--bg-card);
    transition: all .3s;
}
.dot-label {
    font-size: .7rem;
    color: var(--text-muted);
    white-space: nowrap;
    transition: color .3s;
}
.reg-step-dot.active .dot-num {
    border-color: #d4af37;
    background: rgba(212,175,55,.12);
    color: #d4af37;
}
.reg-step-dot.active .dot-label { color: #d4af37; }
.reg-step-dot.completed .dot-num {
    border-color: #2d6a4f;
    background: #2d6a4f;
    color: #fff;
}
.reg-step-dot.completed .dot-label { color: #2d6a4f; }
.avora-reg-timeline .reg-step-dot.completed + .reg-step-line { background: #2d6a4f; }

/* Step panels */
.avora-reg-card { padding: 2rem; }
.reg-step-panel { display: none; }
.reg-step-panel.active { display: block; }

/* KYC blocks inside registration */
.reg-kyc-block {
    margin-bottom: 1.25rem;
    padding: 1rem;
    border: 1px solid rgba(212,175,55,.15);
    border-radius: 8px;
    background: rgba(212,175,55,.03);
}
.reg-kyc-label {
    font-size: .8rem;
    font-weight: 600;
    color: var(--text-main);
    margin: 0 0 .5rem;
    display: flex;
    align-items: center;
    gap: .35rem;
}

/* Summary step 3 */
.reg-summary { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1.25rem; }
.reg-summary-block {
    padding: 1rem;
    border: 1px solid rgba(212,175,55,.15);
    border-radius: 8px;
    background: rgba(212,175,55,.03);
}
.reg-summary-block h4 { margin: 0 0 .75rem; font-size: .875rem; color: #d4af37; }
.reg-summary-grid { display: grid; grid-template-columns: auto 1fr; gap: .3rem .75rem; }
.reg-sl { font-size: .75rem; color: var(--text-muted); }
.reg-sv { font-size: .8rem; font-weight: 600; color: var(--text-main); word-break: break-all; }
.reg-doc-thumbs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .5rem;
    margin-top: .75rem;
}
.reg-thumb { width: 100%; border-radius: 6px; border: 1px solid rgba(212,175,55,.2); }

/* Terms */
.reg-terms-label {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    font-size: .8rem;
    color: var(--text-muted);
    cursor: pointer;
    line-height: 1.4;
}
.reg-terms-label input { margin-top: .15rem; flex-shrink: 0; }

@media(max-width:480px){
    .avora-reg-card { padding: 1.25rem 1rem; }
    .reg-doc-thumbs { grid-template-columns: 1fr; }
}

/* KYC status banners */
.avora-kyc-pending-banner,
.avora-kyc-rejected-banner {
    display: flex;
    align-items: flex-start;
    gap: .875rem;
    padding: 1rem 1.25rem;
    border-radius: 10px;
    margin-bottom: 1.25rem;
}
.avora-kyc-pending-banner {
    background: rgba(212,175,55,.08);
    border: 1px solid rgba(212,175,55,.25);
}
.avora-kyc-rejected-banner {
    background: rgba(220,38,38,.06);
    border: 1px solid rgba(220,38,38,.2);
}
.avora-kyc-pending-banner i  { color: #d4af37; flex-shrink: 0; width: 1.25rem; height: 1.25rem; margin-top: .1rem; }
.avora-kyc-rejected-banner i { color: #dc2626; flex-shrink: 0; width: 1.25rem; height: 1.25rem; margin-top: .1rem; }
.avora-kyc-pending-banner strong  { color: #d4af37; display: block; margin-bottom: .2rem; font-size: .9rem; }
.avora-kyc-rejected-banner strong { color: #dc2626; display: block; margin-bottom: .2rem; font-size: .9rem; }
.avora-kyc-pending-banner p,
.avora-kyc-rejected-banner p  { margin: 0; font-size: .8rem; color: var(--text-muted); line-height: 1.5; }
.avora-kyc-rejected-banner a  { color: #d4af37; }

/* Locked actions when KYC not approved */
.avora-actions-lock-notice {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .875rem 1rem;
    background: rgba(212,175,55,.06);
    border: 1px solid rgba(212,175,55,.2);
    border-radius: 8px;
    margin-bottom: 1rem;
    font-size: .8125rem;
    color: var(--text-muted);
    line-height: 1.5;
}
.avora-actions-lock-notice i { width: 1.1rem; height: 1.1rem; flex-shrink: 0; margin-top: .15rem; }
.avora-actions-lock-notice p { margin: 0; }
.avora-actions-lock-notice a { color: #d4af37; }

.avora-section-locked {
    opacity: .4;
    pointer-events: none;
    user-select: none;
}

/* Verified badge in greeting */
.avora-verified-icon {
    display: inline-flex;
    align-items: center;
    margin-left: .4rem;
    vertical-align: middle;
    position: relative;
    top: -.05em;
}
.avora-verified-icon i {
    width: 1.3rem;
    height: 1.3rem;
    color: #d4af37;
    filter: drop-shadow(0 0 4px rgba(212,175,55,.5));
}

/* ===== CONTRACT MODAL ===== */
.avora-contract-overlay {
  display: none;
}
.avora-contract-overlay.is-open {
  display: flex;
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(0,0,0,.82);
  align-items: center; justify-content: center;
  padding: 1rem;
}
.avora-contract-box {
  background: var(--bg-card, #12122a);
  border: 1px solid rgba(212,175,55,.25);
  border-radius: 16px;
  width: 100%; max-width: 800px;
  max-height: 92vh;
  display: flex; flex-direction: column;
  overflow: hidden;
  box-shadow: 0 24px 80px rgba(0,0,0,.6);
}
.avora-contract-header {
  padding: .75rem 1.5rem .75rem;
  border-bottom: 1px solid rgba(212,175,55,.12);
  display: flex; align-items: center; gap: .75rem;
  flex-shrink: 0;
}
.avora-contract-header img { height: 22px; width: auto; flex-shrink: 0; }
.avora-contract-header h3 {
  font-family: 'Bodoni Moda', serif;
  font-size: 1rem;
  color: var(--brand-cream, #f5f0e8);
  margin: 0;
}
.avora-contract-sub { font-size: .75rem; color: var(--text-muted, rgba(255,255,255,.5)); margin: 0; }
.avora-contract-header-text { display: flex; flex-direction: column; gap: .1rem; }
.avora-contract-pdf-wrap {
  position: relative;
  height: 420px;
  flex-shrink: 0;
  overflow: hidden;
}
.avora-contract-iframe {
  width: 100%; height: 100%;
  border: none; display: block;
}
.avora-contract-scroll-hint {
  position: absolute; bottom: .75rem; left: 50%; transform: translateX(-50%);
  background: rgba(18,18,42,.9);
  border: 1px solid rgba(212,175,55,.3);
  border-radius: 20px;
  padding: .35rem .9rem;
  font-size: .75rem; color: #d4af37;
  display: flex; align-items: center; gap: .375rem;
  pointer-events: none;
  animation: contractBounce 1.5s infinite;
}
@keyframes contractBounce {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(-4px); }
}
.avora-contract-sign-section {
  padding: 1.25rem 1.5rem;
  border-top: 1px solid rgba(212,175,55,.12);
  opacity: .4; pointer-events: none; transition: opacity .4s;
}
.avora-contract-sign-section.ready { opacity: 1; pointer-events: all; }
.avora-sig-label {
  font-size: .85rem; color: var(--brand-cream, #f5f0e8);
  display: flex; align-items: center; gap: .375rem;
  margin-bottom: .6rem;
}
.avora-sig-wrap {
  position: relative;
  border: 1.5px solid rgba(212,175,55,.35);
  border-radius: 10px; overflow: hidden;
  background: #fff;
  margin-bottom: .75rem;
}
.avora-sig-canvas {
  display: block; width: 100%; height: 120px; cursor: crosshair; touch-action: none;
}
.avora-sig-clear {
  position: absolute; top: .4rem; right: .4rem;
  background: rgba(18,18,42,.8); border: 1px solid rgba(212,175,55,.3);
  border-radius: 6px; color: var(--brand-sage, #a8b5a0);
  font-size: .72rem; padding: .25rem .5rem;
  cursor: pointer; display: flex; align-items: center; gap: .25rem;
}
.avora-contract-terms {
  display: flex; align-items: flex-start; gap: .625rem;
  font-size: .82rem; color: var(--brand-sage, #a8b5a0);
  cursor: pointer; margin-bottom: .75rem;
}
.avora-contract-terms input { margin-top: .15rem; accent-color: #d4af37; }
@media(max-width:600px){
  .avora-contract-box { max-height: 97vh; border-radius: 12px; }
  .avora-contract-pdf-wrap { height: 300px; }
  .avora-contract-sign-section { padding: 1rem; }
  .avora-contract-header { padding: .6rem 1rem; }
}


/* ── iOS Safari fixes ── */
/* Prevent input zoom on focus (iOS requires ≥16px font) */
.avora-form input,
.avora-form select,
.avora-form textarea,
#reg-password, #reg-password-confirm,
#reg-first-name, #reg-last-name,
#reg-email, #reg-phone, #reg-doc-number {
    font-size: 16px !important;
}

/* Fix select appearance on iOS */
.avora-form select,
#reg-country, #reg-plan, #reg-doc-type {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C9A44B' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px !important;
}

/* Fix topbar overflow on small iPhones */
@media (max-width: 480px) {
    .avora-dash-topbar {
        flex-direction: column;
        gap: .75rem;
    }
    .avora-dash-greeting {
        padding-right: 0 !important;
        width: 100%;
    }
    .avora-dash-greeting h2 {
        font-size: 1.1rem !important;
        white-space: normal;
        word-break: break-word;
    }
    .avora-topbar-actions {
        width: 100%;
        justify-content: flex-start;
    }
    /* Stack form rows on mobile */
    .avora-form-row {
        flex-direction: column !important;
        gap: 0 !important;
    }
    /* Fix notification panel on small screens */
    .avora-notif-panel {
        right: -0.25rem !important;
        width: calc(100vw - 0.5rem) !important;
        max-height: 70vh;
        overflow-y: auto;
    }
    /* Reg step panels */
    .reg-summary-grid {
        font-size: .8rem;
    }
}
