/* =========================================================================
   auxilium.account.css
   Stili per le pagine di gestione account: /Account/Manage/* (profilo,
   email, password, 2FA, passkey, accessi esterni, dati personali, ...).
   Sostituiscono il template Bootstrap originale di ASP.NET Identity con
   un sistema coerente al resto del prodotto (token Auxilium, palette,
   spacings, supporto tema scuro).

   Pattern: layout a due colonne (sidebar nav + content) su desktop, una
   colonna su mobile. Ogni "voce" del menu apre una pagina con uno o piu'
   <section class="account-section"> contenenti form e azioni.
   ========================================================================= */

/* ---------- Page wrapper ---------- */
.account-page {
    padding: var(--ax-space-6) var(--ax-page-padding);
    max-width: var(--ax-page-max);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: var(--ax-space-5);
}

/* ---------- Header (titolo + sottotitolo) ---------- */
.account-header {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.account-kicker {
    font-size: var(--ax-fs-12);
    color: var(--ax-text-3);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
}

.account-title {
    margin: 0;
    font-size: 1.8rem;
    font-weight: 600;
    color: var(--ax-text-1);
}

.account-subtitle {
    margin: 0;
    font-size: var(--ax-fs-14);
    color: var(--ax-text-2);
}

/* ---------- Layout 2 colonne ---------- */
.account-grid {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: var(--ax-space-5);
    align-items: start;
}

@media (max-width: 860px) {
    .account-grid {
        grid-template-columns: 1fr;
    }
}

/* ---------- Sidebar nav ---------- */
.account-sidebar {
    background: var(--ax-surface-1, #ffffff);
    border: 1px solid var(--ax-border-soft);
    border-radius: var(--ax-radius-md);
    padding: var(--ax-space-3);
    position: sticky;
    top: var(--ax-space-4);
}

.account-nav {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.account-nav-link {
    display: block;
    padding: 0.55rem 0.75rem;
    border-radius: var(--ax-radius-sm);
    color: var(--ax-text-2);
    text-decoration: none;
    font-size: var(--ax-fs-14);
    font-weight: 500;
    transition: background 0.15s ease, color 0.15s ease;
}

.account-nav-link:hover {
    background: var(--ax-panel-bg-soft);
    color: var(--ax-text-1);
}

.account-nav-link.active {
    background: var(--ax-primary-50, #eef2ff);
    color: var(--ax-primary-700);
    font-weight: 600;
}

/* ---------- Content ---------- */
.account-content {
    display: flex;
    flex-direction: column;
    gap: var(--ax-space-4);
    /* I form account hanno campi corti (email, password, nome): senza un tetto
       la card si allungava per tutta la pagina. La restringo a misura di form,
       allineata a sinistra accanto alla sidebar. */
    max-width: 560px;
}

.account-section {
    background: var(--ax-surface-1, #ffffff);
    border: 1px solid var(--ax-border-soft);
    border-radius: var(--ax-radius-md);
    padding: var(--ax-space-4);
    display: flex;
    flex-direction: column;
    gap: var(--ax-space-3);
}

.account-section-title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--ax-text-1);
}

.account-section-subtitle {
    margin: -0.25rem 0 0 0;
    font-size: var(--ax-fs-13);
    color: var(--ax-text-2);
}

.account-section-text {
    margin: 0;
    font-size: var(--ax-fs-14);
    line-height: 1.55;
    color: var(--ax-text-2);
}

.account-section-text strong {
    color: var(--ax-text-1);
}

.account-section-text code {
    background: var(--ax-panel-bg-soft);
    padding: 0.05rem 0.3rem;
    border-radius: 3px;
    font-size: 0.9em;
}

/* ---------- Form fields ---------- */
.account-field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.account-field label {
    font-size: var(--ax-fs-13);
    font-weight: 600;
    color: var(--ax-text-2);
}

.account-field-help {
    font-size: var(--ax-fs-12);
    color: var(--ax-text-3);
    margin-top: 0.1rem;
}

.account-field-row {
    display: flex;
    gap: var(--ax-space-2);
    align-items: center;
}

.account-field-row .ax-input {
    flex: 1 1 auto;
}

/* ---------- Action row ---------- */
.account-actions {
    display: flex;
    gap: var(--ax-space-2);
    flex-wrap: wrap;
    align-items: center;
}

/* ---------- Alert callouts ---------- */
.account-alert {
    padding: 0.85rem 1rem;
    border-radius: var(--ax-radius-sm);
    font-size: var(--ax-fs-14);
    line-height: 1.5;
    border-left: 4px solid;
}

.account-alert.is-info {
    background: #eff6ff;
    border-color: #3b82f6;
    color: #1e3a8a;
}

.account-alert.is-success {
    background: #ecfdf5;
    border-color: #10b981;
    color: #065f46;
}

.account-alert.is-warning {
    background: #fff7ed;
    border-color: #f59e0b;
    color: #7c2d12;
}

.account-alert.is-danger {
    background: #fef2f2;
    border-color: #ef4444;
    color: #7f1d1d;
}

.account-alert strong {
    display: block;
    margin-bottom: 0.2rem;
}

.account-alert a {
    color: inherit;
    text-decoration: underline;
}

/* ---------- Tables (passkey list, external logins) ---------- */
.account-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--ax-fs-14);
}

.account-table th,
.account-table td {
    text-align: left;
    padding: 0.65rem 0.85rem;
    border-bottom: 1px solid var(--ax-border-soft);
    vertical-align: middle;
}

.account-table th {
    background: var(--ax-panel-bg-soft);
    font-weight: 600;
    color: var(--ax-text-1);
}

.account-table tr:last-child td {
    border-bottom: 0;
}

.account-table td.account-table-actions {
    text-align: right;
    white-space: nowrap;
}

.account-table td.account-table-actions form {
    display: inline-block;
    margin-left: 0.25rem;
}

/* ---------- Numbered steps (EnableAuthenticator) ---------- */
.account-steps {
    list-style: none;
    counter-reset: account-step;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--ax-space-4);
}

.account-steps > li {
    counter-increment: account-step;
    padding-left: 2.5rem;
    position: relative;
}

.account-steps > li::before {
    content: counter(account-step);
    position: absolute;
    left: 0;
    top: 0;
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    background: var(--ax-primary-700);
    color: #ffffff;
    font-weight: 600;
    font-size: 0.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.account-steps p {
    margin: 0 0 0.5rem;
    font-size: var(--ax-fs-14);
    line-height: 1.55;
    color: var(--ax-text-2);
}

.account-steps kbd {
    background: var(--ax-panel-bg-soft);
    border: 1px solid var(--ax-border-soft);
    border-radius: var(--ax-radius-sm);
    padding: 0.15rem 0.45rem;
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 0.85em;
}

/* ---------- QR code box (EnableAuthenticator) ---------- */
.account-qr {
    display: inline-block;
    background: #ffffff;
    padding: 0.5rem;
    border: 1px solid var(--ax-border-soft);
    border-radius: var(--ax-radius-sm);
}

/* ---------- Recovery codes box (ShowRecoveryCodes) ---------- */
.account-codes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    background: var(--ax-panel-bg-soft);
    border: 1px dashed var(--ax-border-strong);
    border-radius: var(--ax-radius-sm);
    padding: var(--ax-space-3);
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 1.05rem;
    letter-spacing: 0.04em;
    color: var(--ax-text-1);
}

/* ---------- Theme adattamenti ---------- */
.theme-dark .account-sidebar,
.theme-dark .account-section {
    background: var(--ax-surface-1);
    border-color: var(--ax-border-strong);
}

.theme-dark .account-alert.is-info {
    background: rgba(59, 130, 246, 0.08);
    color: #dbeafe;
}

.theme-dark .account-alert.is-success {
    background: rgba(16, 185, 129, 0.08);
    color: #d1fae5;
}

.theme-dark .account-alert.is-warning {
    background: rgba(245, 158, 11, 0.08);
    color: #fde68a;
}

.theme-dark .account-alert.is-danger {
    background: rgba(239, 68, 68, 0.08);
    color: #fee2e2;
}

.theme-dark .account-table th {
    background: rgba(255, 255, 255, 0.04);
}
