/* ============================
   Thème global GIL (dark)
   ============================ */

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
}

body {
    background-color: #0d0d0d;
    color: #e0e0e0;
    font-family: Arial, sans-serif;
    box-sizing: border-box;

    /* Matrix */
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
}

/* ============================
   Conteneur global Dashboard
   ============================ */

.dashboard-page {
    width: 100%;
    max-width: 480px;
    margin: 0 auto;           /* centré */
    padding-top: 20px;
    padding-bottom: 40px;
    box-sizing: border-box;
    overflow-x: hidden;        /* pas de scroll horizontal */
    position: relative;
    z-index: 2;                /* Dashboard AU-DESSUS du matrix */
}

/* ============================
   Titres généraux
   ============================ */

.card h2,
.signup-page .signup-box h2 {
    color: #80aaff;
    margin: 0 0 15px 0;
    font-size: 1.4em;
    text-align: center;
}

/* ============================
   MATRIX (fond animé)
   ============================ */
#matrixCanvas {
    position: fixed;
    inset: 0;        /* top:0; right:0; bottom:0; left:0; */
    z-index: -1;
    pointer-events: none;
    image-rendering: pixelated;
}
/* ============================
   Forms / tableaux dans les cards
   ============================ */

.dashboard-page .card form,
.dashboard-page .card table {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: auto;
}

.dashboard-page .card input[type="text"],
.dashboard-page .card input[type="password"],
.dashboard-page .card input[type="number"],
.dashboard-page .card select,
.dashboard-page .card textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* ============================
   Alignement global des cards
   ============================ */

.dashboard-page .card,
.chart-card,
.funds-card,
.op-card,
.calculator-card,
.history-card,
.livret-goal-card,
.budget-card {
    width: 100%;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

/* ============================
   Budget table fix
   ============================ */

.budget-table {
    table-layout: fixed;
    width: 100%;
}

.budget-table input[type="text"],
.budget-table input[type="number"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* ============================
   Responsive mobile
   ============================ */

@media (max-width: 480px) {
    .dashboard-page .card {
        width: 92%;
        margin: 12px auto;
        padding: 15px;
    }

    .card h2 {
        font-size: 1.3em;
    }
}

/* =======================================
   Boutons Néon (Connexion & Déconnexion)
   ======================================= */

.login-hack-btn,
.footer-hack-btn {
    position: relative;
    padding: 10px 25px;
    font-size: 1rem;
    font-weight: 700;
    border: none;
    background: transparent;
    color: #e0e0ff;
    cursor: pointer;
    letter-spacing: 0.05em;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.hack-bracket {
    color: #a855f7;
    text-shadow: 0 0 6px #c084fc, 0 0 12px #9333ea;
}

.hack-label {
    color: #e0e7ff;
    text-shadow: 0 0 4px #60a5fa, 0 0 10px #3b82f6;
}

.hack-pulse {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #a855f7;
    margin-left: 6px;
    box-shadow: 0 0 6px #c084fc, 0 0 12px #9333ea;
    animation: hackPulse 1.3s infinite ease-in-out;
}

@keyframes hackPulse {
    0%   { transform: scale(1); opacity: 0.8; }
    50%  { transform: scale(1.5); opacity: 1; }
    100% { transform: scale(1); opacity: 0.8; }
}

.login-hack-btn:hover .hack-label,
.footer-hack-btn:hover .hack-label {
    color: #ffffff;
    text-shadow: 0 0 6px #bfdbfe, 0 0 15px #60a5fa;
}
