/**
 * INAB Theme CSS - Applicato a tutto il progetto GRUPPO_SCUDO
 * Colori, tipografia e componenti ispirati al design di www.inab.pro
 */

/* === VARIABILI COLORE INAB === */
:root {
    /* Palette primaria (blu INAB dal sito) */
    --inab-primary: #0a1628;        /* Blu scuro navy principale */
    --inab-primary-hover: #151f33;  /* Blu hover più chiaro */
    --inab-primary-light: #1e293b;  /* Blu chiaro accenti */
    --inab-primary-dark: #020817;   /* Blu scuro testi */
    
    /* Palette secondaria */
    --inab-secondary: #64748b;      /* Grigio slate */
    --inab-accent: #ff8c42;         /* Arancione INAB accento */
    
    /* Sfondo e superfici */
    --inab-bg-main: #f8fafc;        /* Sfondo principale */
    --inab-bg-card: #ffffff;        /* Card bianche */
    --inab-bg-subtle: #f1f5f9;      /* Sfondo input/disabled */
    --inab-border: #e2e8f0;         /* Bordi chiari */
    --inab-border-focus: #3b82f6;   /* Bordi focus */
    
    /* Testi */
    --inab-text-primary: #0f172a;   /* Testo principale scuro */
    --inab-text-secondary: #475569; /* Testo secondario */
    --inab-text-muted: #94a3b8;     /* Testo disabilitato */
    
    /* Feedback */
    --inab-success: #10b981;        /* Verde successo */
    --inab-success-bg: #d1fae5;
    --inab-warning: #f59e0b;        /* Arancione warning */
    --inab-warning-bg: #fef3c7;
    --inab-error: #ef4444;          /* Rosso errore */
    --inab-error-bg: #fee2e2;
    --inab-info: #3b82f6;           /* Blu info */
    --inab-info-bg: #dbeafe;
    
    /* Ombre */
    --inab-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --inab-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    --inab-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    --inab-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    
    /* Tipografia */
    --inab-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    --inab-font-mono: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', monospace;
}

/* === RESET & BASE === */
body {
    background-color: var(--inab-bg-main);
    color: var(--inab-text-primary);
    font-family: var(--inab-font-sans);
    font-size: 15px;
    line-height: 1.6;
}

/* === CARD CONTAINER === */
.inab-card {
    background: var(--inab-bg-card);
    border-radius: 12px;
    box-shadow: var(--inab-shadow-md);
    padding: 2rem 1.75rem;
    margin-top: 1.5rem;
    border: 1px solid var(--inab-border);
}

.inab-card-header {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--inab-primary-dark);
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--inab-border);
}

/* === FORM INPUTS === */
.inab-input,
.form-control,
.form-select {
    background-color: var(--inab-bg-card);
    border: 1.5px solid var(--inab-border);
    border-radius: 8px;
    padding: 0.625rem 0.875rem;
    font-size: 0.9375rem;
    color: var(--inab-text-primary);
    transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s;
}

.inab-input:focus,
.form-control:focus,
.form-select:focus {
    border-color: var(--inab-border-focus);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
    background-color: #ffffff;
    outline: none;
}

.inab-input:disabled,
.form-control:disabled,
.form-select:disabled {
    background-color: var(--inab-bg-subtle);
    color: var(--inab-text-muted);
    cursor: not-allowed;
}

/* === BUTTONS === */
.inab-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.625rem 1.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    transition: all 0.2s ease;
    text-decoration: none;
    gap: 0.5rem;
}

.inab-btn-primary {
    background-color: var(--inab-primary);
    color: #ffffff;
    box-shadow: var(--inab-shadow-sm);
}

.inab-btn-primary:hover:not(:disabled) {
    background-color: var(--inab-primary-hover);
    box-shadow: var(--inab-shadow-md);
    transform: translateY(-1px);
}

.inab-btn-secondary {
    background-color: var(--inab-secondary);
    color: #ffffff;
    box-shadow: var(--inab-shadow-sm);
}

.inab-btn-secondary:hover:not(:disabled) {
    background-color: #475569;
    box-shadow: var(--inab-shadow-md);
    transform: translateY(-1px);
}

.inab-btn-success {
    background-color: var(--inab-success);
    color: #ffffff;
    box-shadow: var(--inab-shadow-sm);
}

.inab-btn-success:hover:not(:disabled) {
    background-color: #059669;
    box-shadow: var(--inab-shadow-md);
    transform: translateY(-1px);
}

.inab-btn-danger {
    background-color: var(--inab-error);
    color: #ffffff;
    box-shadow: var(--inab-shadow-sm);
}

.inab-btn-danger:hover:not(:disabled) {
    background-color: #dc2626;
    box-shadow: var(--inab-shadow-md);
    transform: translateY(-1px);
}

.inab-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none !important;
    box-shadow: none !important;
}

/* === TABLE === */
.inab-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.9rem;
}

.inab-table thead th {
    background-color: var(--inab-primary);
    color: #ffffff;
    padding: 0.875rem 0.75rem;
    font-weight: 600;
    text-align: left;
    border: none;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

.inab-table thead th:first-child {
    border-top-left-radius: 8px;
}

.inab-table thead th:last-child {
    border-top-right-radius: 8px;
}

.inab-table tbody tr {
    background-color: var(--inab-bg-card);
    transition: background-color 0.15s;
}

.inab-table tbody tr:hover {
    background-color: var(--inab-bg-subtle);
}

.inab-table tbody td {
    padding: 0.75rem;
    border-bottom: 1px solid var(--inab-border);
    vertical-align: middle;
}

.inab-table tbody tr:last-child td {
    border-bottom: none;
}

/* === ALERTS === */
.inab-alert {
    padding: 0.875rem 1.125rem;
    border-radius: 8px;
    font-size: 0.9375rem;
    font-weight: 500;
    margin: 1rem 0;
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

.inab-alert-success {
    background-color: var(--inab-success-bg);
    color: #065f46;
    border-left: 4px solid var(--inab-success);
}

.inab-alert-danger {
    background-color: var(--inab-error-bg);
    color: #991b1b;
    border-left: 4px solid var(--inab-error);
}

.inab-alert-warning {
    background-color: var(--inab-warning-bg);
    color: #92400e;
    border-left: 4px solid var(--inab-warning);
}

.inab-alert-info {
    background-color: var(--inab-info-bg);
    color: #1e3a8a;
    border-left: 4px solid var(--inab-info);
}

/* === BADGE === */
.inab-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.625rem;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 6px;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

.inab-badge-primary {
    background-color: var(--inab-primary-light);
    color: #ffffff;
}

.inab-badge-success {
    background-color: var(--inab-success);
    color: #ffffff;
}

.inab-badge-warning {
    background-color: var(--inab-warning);
    color: #ffffff;
}

/* === UTILITIES === */
.inab-text-muted {
    color: var(--inab-text-muted);
}

.inab-text-primary {
    color: var(--inab-primary);
}

.inab-text-success {
    color: var(--inab-success);
}

.inab-text-error {
    color: var(--inab-error);
}

.inab-shadow-sm {
    box-shadow: var(--inab-shadow-sm);
}

.inab-shadow-md {
    box-shadow: var(--inab-shadow-md);
}

.inab-shadow-lg {
    box-shadow: var(--inab-shadow-lg);
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .inab-card {
        padding: 1.5rem 1rem;
        border-radius: 8px;
    }
    
    .inab-card-header {
        font-size: 1.5rem;
    }
    
    .inab-table thead th,
    .inab-table tbody td {
        padding: 0.5rem 0.375rem;
        font-size: 0.8125rem;
    }
    
    .inab-btn {
        padding: 0.5rem 1rem;
        font-size: 0.875rem;
    }
}
