.validation-wrap {
    display: grid;
    place-items: center;
    min-height: 78vh
}


.validation-card {
    width: 760px;
    padding: 28px;
    border-radius: 12px;
    background: linear-gradient(180deg,#ffffff03,#0003);
    border: 1px solid rgba(255,208,0,.06)
}

.validation-title {
    color: var(--accent);
    font-weight: 800;
    font-size: 20px;
    margin-bottom: 8px
}

.validation-form {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    margin-top: 18px;
    gap: 10px
}

.validation-btn {
    font-size: 11px;
    font-weight: 400;
    font-family: monospace;
    height: 28px;
    min-width: 80px;
    max-width: 100px;
    padding: 0 12px;
    margin-left: 0;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center
}

.validation-input {
    width: 100%;
    max-width: 160px;
    padding: 12px;
    border-radius: 8px;
    background: transparent;
    border: 1px solid rgba(255,255,255,.12);
    color: #e6eefc;
    margin-right: 0;
    box-shadow: none;
    font-size: 11px;
    font-weight: 400;
    font-family: monospace;
    height: 28px;
    box-sizing: border-box
}

.muted {
    font-size: 13px;
    margin-bottom: 8px
}

@media (max-width: 600px) {
    .validation-card {
        width:98vw;
        max-width: 340px;
        padding: 16px;
        border-radius: 10px;
        margin-left: auto;
        margin-right: auto
    }

    .validation-wrap {
        padding-left: 12px;
        padding-right: 12px
    }

    .validation-title {
        font-size: 15px;
        margin-bottom: 6px
    }

    .validation-form {
        flex-direction: column;
        align-items: center;
        gap: 10px
    }

    .validation-input {
        padding: 8px;
        font-size: 11px;
        border-radius: 7px;
        margin-right: 0;
        max-width: 100%;
        width: 100%;
        height: 28px
    }

    .validation-btn,.btn.outline {
        font-size: 10px!important;
        padding: 7px 0!important;
        border-radius: 7px!important;
        min-width: 100px!important;
        max-width: 100%;
        width: 100%;
        margin-left: 0!important;
        height: 28px!important;
        text-align: center;
        display: flex;
        align-items: center;
        justify-content: center
    }

    .muted {
        font-size: 11px;
        margin-bottom: 4px
    }
}

.loading-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 70vh;
    text-align: center;
    color: #9ba4c7
}

.please-wait-glow {
    animation: glow 1s infinite alternate
}

@keyframes glow {
    0% {
        color: #9ba4c7;
        text-shadow: none
    }

    to {
        color: #4f8cff;
        text-shadow: 0 0 8px #4f8cff
    }
}

.loading-steps {
    margin-top: 18px;
    font-size: 15px
}

.step {
    opacity: .18
}

.step.active {
    opacity: 1;
    color: #e6eefc;
    font-weight: 700
}

.ct-header {
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 18px;
    color: #ffd800;
    background: linear-gradient(180deg,#07090ef5,#0b0d14cc);
    border-bottom: 1px solid rgba(255,208,0,.04);
    position: sticky;
    top: 0;
    z-index: 50
}

.ct-left {
    display: flex;
    gap: 12px;
    align-items: center
}

.ct-logo {
    font-weight: 800;
    font-size: 18px;
    color: #ffe47a;
    padding: 2px 6px;
    border-radius: 6px
}

.ct-center {
    font-weight: 400;
    color: #fff;
    letter-spacing: 2px;
    text-align: right;
    font-size: 14px;
    flex: 1;
    margin-left: auto
}

.ct-right {
    display: flex;
    gap: 12px;
    align-items: center
}

.ct-link {
    background: transparent;
    border: none;
    color: #fff;
    opacity: .9;
    cursor: pointer
}

.ct-cta {
    background: transparent;
    color: #ffd800;
    border: 1px solid rgba(255,208,0,.2);
    padding: 8px 12px;
    border-radius: 8px;
    cursor: pointer
}

@media (max-width: 700px) {
    .ct-header {
        height:44px;
        padding: 0 8px
    }

    .ct-logo img {
        height: 28px!important
    }

    .ct-center {
        font-size: 11px;
        letter-spacing: 1px
    }

    .container {
        max-width: 98vw;
        padding: 8px
    }

    .stat-grid {
        grid-template-columns: 1fr 1fr;
        gap: 8px
    }

    .info-row {
        grid-template-columns: 1fr;
        gap: 8px
    }

    .card {
        padding: 10px
    }

    .tx-table th,.tx-table td {
        padding: 6px;
        font-size: 11px
    }
}

.modal-backdrop {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: #000000a6;
    display: grid;
    place-items: center;
    z-index: 200
}

.modal-panel {
    width: min(920px,92vw);
    background: #070707;
    border-radius: 12px;
    padding: 20px;
    border: 3px solid #ffd000;
    box-shadow: 0 20px 60px #000000b3
}

.modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px
}

.modal-header h3 {
    color: #ffd000;
    margin: 0;
    font-size: 22px
}

.modal-close {
    background: transparent;
    border: none;
    color: #ffd000;
    font-size: 22px;
    cursor: pointer
}

.modal-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px
}

.modal-left {
    color: #fff
}

.modal-left h4 {
    color: #ffd000;
    margin-bottom: 8px
}

.contact-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 12px
}

.contact-list .muted {
    color: #c7d0e8;
    font-size: 13px;
    margin-top: 6px
}

.modal-right h4 {
    color: #ffd000;
    margin-bottom: 8px
}

.input {
    width: 100%;
    background: #0b1220;
    border-radius: 8px;
    border: 1px solid rgba(255,255,255,.04);
    padding: 12px;
    color: #dfe6ff;
    margin-bottom: 8px
}

.textarea {
    min-height: 120px;
    resize: none;
    padding: 12px
}

.btn-send {
    width: 100%;
    background: #ffd000;
    border: none;
    padding: 12px;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 800;
    color: #1b1400;
    margin-top: 8px
}

.dashboard-bottom-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px
}

.dashboard-bottom-left {
    display: flex;
    align-items: center;
    gap: 10px
}

.dashboard-bottom-right {
    display: flex;
    gap: 8px
}

.dashboard-btn-small {
    font-size: 11px!important;
    padding: 6px 12px!important;
    border-radius: 6px!important;
    min-width: 70px!important;
    margin-left: 0!important;
    box-shadow: 0 0 4px #ffd000!important
}

@media (max-width: 600px) {
    .dashboard-bottom-row {
        flex-direction:column;
        align-items: center;
        gap: 8px
    }

    .dashboard-bottom-left {
        flex-direction: column;
        align-items: center;
        gap: 6px;
        font-size: 11px!important
    }

    .dashboard-bottom-right {
        flex-direction: row;
        gap: 6px;
        justify-content: center;
        width: 100%
    }

    .dashboard-btn-small {
        font-size: 10px!important;
        padding: 5px 8px!important;
        min-width: 60px!important
    }

    .card .btn,.card .btn.outline {
        font-size: 10px!important;
        padding: 6px 10px!important;
        border-radius: 6px!important;
        min-width: 70px!important;
        margin-left: 0!important
    }

    .card .btn {
        box-shadow: 0 0 4px #ffd000!important
    }
}

.stat-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 16px;
    margin-bottom: 18px
}

.stat-card {
    padding: 18px;
    border-radius: 12px;
    border: 1px solid rgba(255,208,0,.06);
    background: linear-gradient(180deg,#ffffff03,#fff0)
}

.stat-title {
    font-size: 13px;
    color: var(--muted);
    font-weight: 700
}

.stat-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--accent);
    margin-top: 6px
}

.info-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 12px
}

.info-box .info-title {
    font-weight: 800;
    color: var(--accent);
    margin-bottom: 10px
}

.tx-table {
    width: 100%;
    border-collapse: collapse
}

.tx-table thead th {
    color: var(--accent);
    padding: 12px;
    text-align: left;
    border-bottom: 1px solid rgba(255,208,0,.06)
}

.tx-table td {
    padding: 12px;
    border-top: 1px solid rgba(255,255,255,.03);
    color: #d6dff5
}

.tx-table .mono {
    font-family: monospace;
    color: #cbd6ff;
    font-size: 13px
}

.status-ok {
    color: var(--success);
    font-weight: 700
}

.status-pend {
    color: #f7bf5a;
    font-weight: 700
}

.amount {
    font-weight: 800;
    color: var(--accent);
    text-align: right
}

.table-footer {
    display: flex;
    justify-content: flex-end;
    font-weight: 800;
    margin-top: 12px;
    color: #fff;
    background: linear-gradient(90deg,#3fdc74,#fff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-fill-color: transparent;
    filter: drop-shadow(0 0 6px #3fdc74)
}

@media (max-width: 900px) {
    .stat-grid {
        grid-template-columns:repeat(2,1fr);
        gap: 12px
    }

    .info-row {
        grid-template-columns: 1fr;
        gap: 12px
    }
}

@media (max-width: 600px) {
    .stat-grid,.info-row {
        grid-template-columns:1fr;
        gap: 10px
    }

    .tx-table thead th,.tx-table td {
        padding: 6px 4px;
        font-size: 11px;
        white-space: nowrap
    }

    .table-card {
        padding: 8px;
        border-radius: 8px
    }

    .table-title {
        font-size: 13px;
        margin-bottom: 4px
    }

    .table-footer {
        font-size: 11px;
        margin-top: 6px
    }
}

:root {
    --bg: #07090d;
    --panel: #0f1320;
    --muted: #9ba4c7;
    --accent: #ffd000;
    --success: #3fdc74;
    --radius: 14px
}

* {
    box-sizing: border-box
}

html,body,#root {
    height: 100%
}

body {
    margin: 0;
    background: #07090d;
    color: #e6eefc;
    font-family: Inter,Segoe UI,Roboto,Arial,sans-serif;
    min-height: 100vh;
    position: relative
}

/* Fondo y overlay para user y userdata */
body:before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 0;
    background: url('/img/fn.png') center center / contain no-repeat;
    background-size: 350px; 
    opacity: .38;
    pointer-events: none;
}
body:after {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(120deg,#07090d1a 10%,#ffffff2e 52%,#ffffff1a 58%,#07090d99 80%,#07090d);
}

#root,.container {
    position: relative;
    z-index: 1
}

.container {
    max-width: 1200px;
    margin: 20px auto;
    padding: 18px
}

.card {
    background: linear-gradient(180deg,#ffffff05,#00000026);
    border: 1px solid rgba(255,208,0,.06);
    border-radius: var(--radius);
    padding: 18px;
    box-shadow: 0 10px 30px #02060c99
}

.btn {
    background: var(--accent);
    border: none;
    padding: 10px 16px;
    border-radius: 8px;
    font-weight: 800;
    cursor: pointer;
    color: #1b1400
}

.btn.outline {
    background: transparent;
    border: 1px solid rgba(255,208,0,.15);
    color: var(--accent)
}

.loader {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 8px solid rgba(255,255,255,.06);
    border-top-color: var(--accent);
    animation: spin 1.1s linear infinite;
    margin: 0 auto
}

@keyframes spin {
    to {
        transform: rotate(360deg)
    }
}

@media (max-width: 700px) {
    body {
        min-height:auto;
        overflow-x: hidden
    }

    .container {
        max-width: 100vw;
        padding: 4vw 2vw
    }

    .stat-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        margin-bottom: 12px
    }

    .stat-card {
        padding: 10px;
        font-size: 12px
    }

    .info-row {
        display: flex;
        flex-direction: column;
        gap: 8px;
        margin-top: 8px
    }

    .info-box {
        padding: 10px;
        font-size: 12px
    }

    .tx-table th,.tx-table td {
        padding: 6px;
        font-size: 11px
    }

    .table-footer {
        font-size: 12px
    }

    .card {
        padding: 8px;
        margin-bottom: 8px
    }

    .ct-header {
        height: 44px;
        padding: 0 8px
    }

    .ct-logo img {
        height: 24px!important
    }

    .ct-center {
        font-size: 11px;
        letter-spacing: 1px
    }
}

.tx-table th,.tx-table td,.info-box,.card,.stat-card,.table-title,.table-footer,.container,.info-row {
    font-size: 11px!important;
    font-weight: 400!important;
    font-family: monospace!important
}

@keyframes green-glow {
  from { text-shadow: 0 0 8px #00ff80, 0 0 16px #00ff80; }
  to   { text-shadow: 0 0 24px #00ff80, 0 0 48px #00ff80; }
}
.typing-container .waiting {
  text-shadow: 0 0 8px #00ff80, 0 0 16px #00ff80;
  animation: green-glow 1s infinite alternate;
}
