/* --- Stili Base e Variabili (Tema Chiaro - da Q-System) --- */
:root {
    --primary-color: #0056b3;     /* Blu scuro per azioni primarie */
    --secondary-color: #17a2b8;   /* Ciano per azioni secondarie (mantenuto per coerenza) */
    --success-color: #28a745;     /* Verde */
    --info-color: #17a2b8;        /* Ciano */
    --warning-color: #ffc107;     /* Giallo */
    --danger-color: #dc3545;      /* Rosso */
    --light-bg: #f8f9fa;          /* Sfondo principale molto chiaro */
    --medium-bg: #e9ecef;         /* Sfondo per sezioni/header */
    --white-bg: #ffffff;          /* Sfondo dei pannelli bianchi */
    --dark-text: #212529;         /* Testo principale scuro */
    --medium-text: #495057;       /* Testo secondario */
    --light-text: #6c757d;        /* Testo più chiaro/disabilitato */
    --border-color: #dee2e6;      /* Colore bordi chiari */
    --border-radius: 6px;
    --box-shadow: 0 3px 10px rgba(0, 0, 0, 0.07);
    --focus-shadow-color: rgba(0, 123, 255, 0.25); /* Blu per focus */
}

body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    line-height: 1.4;
    margin: 0;
    padding: 0;
    background-color: var(--light-bg);
    color: var(--dark-text);
}

/* --- Stili Tabs (Tema Chiaro) --- */
.tab-container {
    max-width: 1100px;
    margin: 20px auto;
    background-color: var(--white-bg);
    border-radius: var(--border-radius);
    box-shadow: var(--box-shadow);
    border: 1px solid var(--border-color);
}

.tab-nav {
    display: flex;
    border-bottom: 2px solid var(--border-color);
    background-color: var(--medium-bg);
    flex-wrap: wrap;
    position: sticky;
    top: 0;
    z-index: 10;
    align-items: center;
    min-height: 50px;
}

.tab-link {
    padding: 15px 25px;
    cursor: pointer;
    border: none;
    background-color: transparent;
    font-size: 1.05em;
    font-weight: 600;
    color: var(--medium-text);
    transition: background-color 0.2s, color 0.2s, border-bottom 0.2s;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    white-space: nowrap;
    flex-shrink: 0;
}

.tab-link:hover {
    color: var(--primary-color);
    background-color: #dde2e7;
}

.tab-link.active {
    color: var(--primary-color);
    border-bottom: 3px solid var(--primary-color);
    background-color: var(--white-bg);
}

.tab-content {
    display: none;
    padding: 30px 40px;
    animation: fadeIn 0.5s ease-in-out;
}

.tab-content.active {
    display: block;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.program-version {
    margin-left: auto;
    padding-right: 20px;
    padding-left: 15px;
    font-size: 0.9em;
    color: var(--danger-color);
    font-weight: 600;
    white-space: nowrap;
}

/* --- Stili Contenuto Specifico Tab 1 (Spiegazione AHP) --- */
.explanation-content h1, .explanation-content h2, .explanation-content h3 {
     margin-top: 1.5em; padding-bottom: 0.4em; border-bottom: 1px solid var(--border-color);
}
.explanation-content h1 { color: var(--primary-color); font-size: 1.7em; }
.explanation-content h2 { color: var(--secondary-color); font-size: 1.6em; }
.explanation-content h3 { color: var(--primary-color); font-size: 1.3em; }
.explanation-content p, .explanation-content ul, .explanation-content ol { margin-bottom: 1em; }
.explanation-content ul { list-style: disc; padding-left: 25px; }
.explanation-content code { background-color: var(--medium-bg); padding: 2px 5px; border-radius: 3px; font-family: monospace; }
.explanation-content table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 0.9em; border: 1px solid var(--border-color); }
.explanation-content th, .explanation-content td { border: 1px solid var(--border-color); padding: 9px 12px; text-align: left; }
.explanation-content th { background-color: var(--medium-bg); font-weight: 600; }
.explanation-content td:first-child { font-weight: bold; }

/* --- Stili Calcolatore AHP (Tab 2 - Tema Chiaro) --- */
.calculator-content .container { background-color: transparent; padding: 0; border: none; box-shadow: none; max-width: none; margin: 0; }
.calculator-content h1 { text-align: center; border-bottom-width: 2px; margin-top: 0.5em; font-size: 1.8em; color: var(--primary-color); padding-bottom: 10px; margin-bottom: 30px; }
.calculator-content h2 { color: var(--secondary-color); font-size: 1.5em; margin-top: 1.8em; margin-bottom: 1em; padding-bottom: 0.5em; border-bottom: 1px solid var(--border-color); font-weight: 600; }
.calculator-content h3 { color: var(--info-color); font-size: 1.25em; margin-top: 1.8em; border-bottom: none; padding-bottom: 0.2em; font-weight: 600; }
.calculator-content .step-section { margin-bottom: 40px; padding: 30px; border: 1px solid var(--border-color); border-radius: var(--border-radius); background-color: #fdfdfd; box-shadow: var(--box-shadow); }
.calculator-content .form-row { display: flex; flex-wrap: wrap; gap: 25px; margin-bottom: 20px; }
.calculator-content .input-group { flex: 1; min-width: 220px; }
.calculator-content .input-group label { margin-bottom: 6px; display: block; font-weight: 600; color: var(--medium-text); font-size: 0.95em; }
.calculator-content .input-group input { width: 100%; }

.calculator-content input[type="number"],
.calculator-content input[type="text"],
.calculator-content input[type="date"],
.calculator-content select {
    display: block; width: 100%; padding: 12px 15px; margin-bottom: 15px;
    border: 1px solid var(--border-color); border-radius: var(--border-radius);
    font-size: 1em; background-color: var(--white-bg); color: var(--dark-text);
    box-sizing: border-box; transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.calculator-content input::placeholder,
.calculator-content select::placeholder { color: var(--light-text); }

.calculator-content input:focus, .calculator-content select:focus {
    border-color: var(--secondary-color);
    box-shadow: 0 0 0 3px rgba(23, 162, 184, 0.2);
    outline: none;
}
.calculator-content select:disabled { background-color: var(--medium-bg); color: var(--light-text); cursor: not-allowed; opacity: 0.7; }

/* Sezione Carica File */
.calculator-content #loadSection { padding: 20px 25px; background-color: var(--medium-bg); border: 1px solid var(--border-color); border-radius: var(--border-radius); margin-bottom: 35px; font-size: 0.95em; }
.calculator-content #loadSection label { margin-bottom: 10px; color: var(--medium-text); font-weight: 600; display: block; }
.calculator-content #loadFileInput { display: block; width: 100%; padding: 10px; border: 1px dashed var(--border-color); border-radius: var(--border-radius); background-color: var(--white-bg); cursor: pointer; color: var(--medium-text); transition: background-color 0.2s, border-color 0.2s; text-align: center; }
.calculator-content #loadFileInput:hover { background-color: var(--light-bg); border-color: var(--secondary-color); }
.calculator-content #loadFileInput::file-selector-button { padding: 8px 15px; border: 1px solid var(--secondary-color); border-radius: calc(var(--border-radius) - 2px); background-color: var(--secondary-color); color: var(--white-bg); cursor: pointer; margin-right: 10px; transition: background-color 0.2s; }
.calculator-content #loadFileInput::file-selector-button:hover { background-color: var(--primary-color); }

.calculator-content .comparison-pair { margin-bottom: 25px; padding-bottom: 20px; border-bottom: 1px dashed var(--border-color); display: flex; flex-wrap: wrap; align-items: center; gap: 15px; }
.calculator-content .comparison-pair label { flex: 1 1 400px; margin-bottom: 0; font-weight: normal; color: var(--dark-text); display: inline-block; }
.calculator-content .comparison-pair select { flex: 0 0 auto; display: inline-block; width: auto; min-width: 280px; margin-bottom: 0; vertical-align: middle; }

/* Bottoni */
.calculator-content button { display: inline-block; width: auto; padding: 12px 25px; border: none; border-radius: var(--border-radius); cursor: pointer; font-size: 1em; font-weight: 600; margin-top: 10px; margin-right: 10px; transition: background-color 0.2s, box-shadow 0.2s, transform 0.1s; box-shadow: 0 2px 5px rgba(0,0,0,0.1); text-align: center; background-color: var(--success-color); color: var(--white-bg); }
.calculator-content button:hover { box-shadow: 0 4px 8px rgba(0,0,0,0.15); transform: translateY(-1px); background-color: #218838; }
.calculator-content button:active { transform: translateY(0px); box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
.calculator-content button.secondary { background-color: var(--secondary-color); }
.calculator-content button.secondary:hover { background-color: #138496; }
.calculator-content button.save { background-color: var(--info-color); }
.calculator-content button.save:hover { background-color: #117a8b; }
.calculator-content button.retry { background-color: var(--warning-color); color: var(--dark-text); }
.calculator-content button.retry:hover { background-color: #e0a800; }
.calculator-content button:disabled { background-color: var(--light-text); color: var(--white-bg); cursor: not-allowed; opacity: 0.65; box-shadow: none; transform: none; }
.calculator-content .action-buttons { margin-top: 20px; }

/* Risultati e Matrici */
.calculator-content #results { margin-top: 40px; padding: 30px; border: 1px solid #c3e6cb; border-radius: var(--border-radius); background-color: #d4edda; color: #155724; }
.calculator-content #results h2 { margin-top: 0; border-bottom-color: #b1dfbb; color: #155724; }
.calculator-content .matrix-display, .calculator-content .result-summary { margin-top: 25px; padding: 20px; border: 1px solid var(--border-color); border-radius: var(--border-radius); background-color: var(--white-bg); }
.calculator-content .matrix-display h4, .calculator-content .result-summary h4 { margin-top: 0; margin-bottom: 15px; color: var(--medium-text); font-weight: 600; border-bottom: 1px solid var(--border-color); padding-bottom: 8px; }
.calculator-content .retry-container { margin-top: 15px; min-height: 50px; }

/* Messaggi Info, Warning, Error */
.calculator-content .error, .calculator-content .warning, .calculator-content .info { padding: 15px 20px; margin: 20px 0; border-radius: var(--border-radius); border-width: 1px; border-style: solid; font-size: 0.98em; }
.calculator-content .error { color: #721c24; background-color: #f8d7da; border-color: #f5c6cb; }
.calculator-content .warning { color: #856404; background-color: #fff3cd; border-color: #ffeeba; }
.calculator-content #consistencyWarningsGlobal h4 { margin-top: 0; margin-bottom: 10px; color: inherit; border-bottom: none; padding-bottom: 0; }
.calculator-content #consistencyWarningList p { margin: 5px 0 5px 15px; }
.calculator-content .consistency-warning { color: var(--danger-color); font-weight: bold; margin-left: 5px; }
.calculator-content .info { color: #0c5460; background-color: #d1ecf1; border-color: #bee5eb; border-left: 4px solid var(--info-color); margin-bottom: 25px; }

/* Tabelle AHP */
.calculator-content table { width: 100%; border-collapse: collapse; margin: 25px 0; font-size: 0.95em; box-shadow: 0 1px 3px rgba(0,0,0,0.05); border: 1px solid var(--border-color); }
.calculator-content th, .calculator-content td { border: 1px solid var(--border-color); padding: 12px 15px; text-align: center; vertical-align: middle; }
.calculator-content th { background-color: var(--medium-bg); font-weight: 600; border-bottom-width: 2px; }
.calculator-content tbody tr td:first-child { text-align: left; font-weight: 600; background-color: var(--light-bg); }
.calculator-content tbody tr:nth-child(even) { background-color: var(--light-bg); }
.calculator-content tbody tr:hover { background-color: #e2e6ea; }
.calculator-content .result-final th { background-color: #b8daff; }
.calculator-content .result-final td:first-child { background-color: #cce5ff; }

.calculator-content .sum-verification { font-size: 0.95em; font-style: italic; margin-top: 15px; padding: 12px 15px; background-color: var(--light-bg); border-radius: var(--border-radius); border-left: 4px solid var(--light-text); }
.calculator-content .sum-ok { color: var(--success-color); font-weight: bold; }
.calculator-content .sum-warn { color: var(--warning-color); font-weight: bold; }
.calculator-content .hidden { display: none; }

/* Gestione Dati Finali AHP */
.calculator-content #ahp-final-data-management { margin-top: 30px; padding: 25px; border: 1px solid var(--border-color); border-radius: var(--border-radius); background-color: var(--medium-bg); }
.calculator-content #ahp-final-data-management h3 { margin-top: 0; margin-bottom: 20px; font-size: 1.3em; color: var(--dark-text); border-bottom: none; text-align: left; }
.calculator-content #ahp-final-data-management .data-action-group { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; margin-bottom: 15px; }
.calculator-content #ahp-final-data-management button { margin: 0; }
.calculator-content #saveAhpAllStatus { margin-top: 8px; font-size: 0.9em; font-weight: 500; min-height: 1.3em; color: var(--medium-text); }

/* --- Stili Calcolatore RQD (Tab 3 - da Q-System) --- */
.rqd-calculator-content .container { max-width: 900px; margin: 0 auto; background: transparent; padding: 0; border-radius: 0; box-shadow: none; }
.rqd-calculator-content h2, .rqd-calculator-content h3 { color: var(--dark-text); border-bottom: 1px solid var(--border-color); padding-bottom: 5px; margin-top: 30px; }
.rqd-calculator-content h2.section-title { border-bottom: 1px dashed var(--secondary-color); margin-bottom: 20px; color: var(--secondary-color); font-size: 1.4em; }
.rqd-calculator-content #method-selector { background-color: var(--medium-bg); padding: 15px 20px; border-radius: var(--border-radius); margin-bottom: 30px; border: 1px solid var(--border-color); }
.rqd-calculator-content #method-selector h2 { margin-top: 0; margin-bottom: 15px; border-bottom: none; font-size: 1.3em; color: var(--medium-text); }
.rqd-calculator-content #method-selector label { margin-right: 15px; cursor: pointer; font-weight: normal; color: var(--dark-text); display: inline-block; margin-bottom: 5px; }
.rqd-calculator-content #method-selector input[type="radio"] { margin-right: 5px; vertical-align: middle; }
.rqd-calculator-content .method-section { margin-bottom: 40px; padding: 20px; border: 1px solid var(--border-color); border-radius: var(--border-radius); background-color: #fdfdfd; display: none; }
.rqd-calculator-content .visible-section { display: block; }
.rqd-calculator-content #final-rqd-result-area { margin-top: 40px; padding: 20px; background-color: #d4edda; border: 1px solid #c3e6cb; border-radius: var(--border-radius); text-align: center; display: none; }
.rqd-calculator-content #final-rqd-result-area h2 { margin-top: 0; border-bottom: none; color: #155724; }
.rqd-calculator-content #final-rqd-result-area p { font-size: 1.2em; color: #155724; }
.rqd-calculator-content #final-rqd-result-area strong { font-size: 1.4em; }
.rqd-calculator-content .input-group { margin-bottom: 15px; }
.rqd-calculator-content label { display: block; margin-bottom: 5px; font-weight: 600; color: var(--medium-text); font-size: 0.95em; }
.rqd-calculator-content .input-row { display: flex; gap: 10px; margin-bottom: 10px; }
.rqd-calculator-content .input-row .input-group { flex: 1; margin-bottom: 0; }
.rqd-calculator-content input[type="number"], .rqd-calculator-content input[type="text"] { width: 100%; padding: 12px 15px; border: 1px solid var(--border-color); border-radius: var(--border-radius); box-sizing: border-box; font-size: 1em; background-color: var(--white-bg); color: var(--dark-text); transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.rqd-calculator-content input[type="number"]:focus, .rqd-calculator-content input[type="text"]:focus { border-color: var(--secondary-color); box-shadow: 0 0 0 3px rgba(23, 162, 184, 0.2); outline: none; }
.rqd-calculator-content button { display: inline-block; width: auto; padding: 12px 25px; border: none; border-radius: var(--border-radius); cursor: pointer; font-size: 1em; font-weight: 600; margin-top: 10px; margin-right: 10px; transition: all 0.2s ease; box-shadow: 0 2px 5px rgba(0,0,0,0.1); text-align: center; background-color: var(--secondary-color); color: white; }
.rqd-calculator-content button:hover { box-shadow: 0 4px 8px rgba(0,0,0,0.15); transform: translateY(-1px); background-color: #117a8b; }
.rqd-calculator-content .remove-button { background-color: var(--danger-color); padding: 5px 10px; font-size: 0.8em; margin-left: auto; margin-top: 0; box-shadow: none; }
.rqd-calculator-content .remove-button:hover { background-color: #c82333; transform: none; }
.rqd-calculator-content .result { margin-top: 15px; padding: 15px; background-color: #e9f5ff; border: 1px solid #b3d7ff; border-radius: var(--border-radius); }
.rqd-calculator-content .result strong { color: var(--primary-color); }
.rqd-calculator-content .info, .rqd-calculator-content .limitations { font-size: 0.9em; color: var(--medium-text); margin-top: 15px; padding: 10px 15px; background-color: var(--light-bg); border-left: 3px solid var(--warning-color); border-radius: 4px; }
.rqd-calculator-content .limitations { border-left-color: var(--danger-color); }
.rqd-calculator-content .joint-set-input { display: flex; align-items: center; margin-bottom: 10px; padding: 10px; border: 1px dashed var(--border-color); border-radius: var(--border-radius); }
.rqd-calculator-content .joint-set-input label { flex-basis: auto; flex-shrink: 0; margin-right: 10px; margin-bottom: 0; font-weight: normal; color: var(--dark-text); }
.rqd-calculator-content .joint-set-input input { flex-grow: 1; margin-right: 10px; margin-bottom: 0; }
.rqd-calculator-content .note { font-style: italic; font-size: 0.9em; color: var(--medium-text); }
.rqd-calculator-content .error { color: #721c24; background-color: #f8d7da; border-color: #f5c6cb; padding: 15px 20px; margin: 20px 0; border-radius: var(--border-radius); border-width: 1px; border-style: solid; font-size: 0.98em; }
.rqd-calculator-content .hidden { display: none; }

/* --- Stili Calcolatore RMR (Tab 4 - Tema Chiaro) --- */
.calculator2-content h1 { color: var(--primary-color); font-size: 1.7em; margin-bottom: 25px; text-align: center; border-bottom: 2px solid var(--border-color); padding-bottom: 15px; }
.calculator2-content h2, .calculator2-content h3, .calculator2-content h4 { color: var(--primary-color); margin-bottom: 18px; text-align: left; }
.calculator2-content fieldset { border: 1px solid var(--border-color); padding: 20px; margin-bottom: 25px; border-radius: var(--border-radius); background-color: var(--white-bg); }
.calculator2-content legend { font-weight: 600; color: var(--primary-color); padding: 0 10px; font-size: 1.1em; }
.calculator2-content label { display: block; margin-top: 14px; margin-bottom: 4px; font-weight: 500; color: var(--medium-text); font-size: 0.9em; }

.calculator2-content select,
.calculator2-content input[type="number"],
.calculator2-content input[type="text"] {
    width: 100%; padding: 9px 11px; margin-bottom: 12px; border: 1px solid var(--border-color); border-radius: 4px; box-sizing: border-box; background-color: var(--white-bg); color: var(--dark-text); font-size: 0.95em; transition: all 0.2s ease;
}
.calculator2-content input:focus, .calculator2-content select:focus { border-color: var(--secondary-color); outline: 0; box-shadow: 0 0 0 2px rgba(23, 162, 184, 0.2); }

.calculator2-content button { display: inline-block; width: auto; padding: 10px 22px; background-color: var(--primary-color); color: var(--white-bg); border: none; border-radius: 5px; font-size: 0.95em; font-weight: 500; cursor: pointer; transition: all 0.2s ease; margin-top: 15px; margin-right: 10px; }
.calculator2-content button:hover { background-color: #004494; transform: translateY(-1px); }
.calculator2-content button#calculate-btn { display: block; width: 100%; background-color: var(--success-color); margin-top: 25px; font-size: 1.1em; padding: 14px; color: var(--white-bg); }
.calculator2-content button#calculate-btn:hover { background-color: #218838; }
.calculator2-content button:disabled { background-color: var(--light-text); color: var(--white-bg); cursor: not-allowed; opacity: 0.65; box-shadow: none; transform: none; }

.calculator2-content .info { font-size: 0.85em; color: #0c5460; margin-bottom: 15px; background-color: #d1ecf1; padding: 10px 15px; border-radius: 4px; border-left: 4px solid var(--info-color); }
.calculator2-content .warning { font-size: 0.85em; color: #856404; background-color: #fff3cd; padding: 10px 15px; border-radius: 4px; border-left: 4px solid var(--warning-color); margin-bottom: 20px; text-align: left; }
.calculator2-content .error { color: #721c24; background-color: #f8d7da; border-color: #f5c6cb; padding: 15px 20px; margin: 20px 0; border-radius: var(--border-radius); border-width: 1px; border-style: solid; }
.calculator2-content .hidden { display: none; }

.calculator2-content .family-parameter-section { border: 1px solid var(--border-color); background-color: #fbfdff; padding: 20px; margin-top: 20px; margin-bottom: 20px; border-radius: 6px; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.calculator2-content .family-parameter-section legend { font-size: 1.0em; font-weight: 600; color: var(--dark-text); background-color: var(--medium-bg); padding: 6px 12px; border-radius: 4px; display: inline-block; margin-bottom: 15px; }
.calculator2-content .ahp-weight-display { font-weight: normal; font-size: 0.9em; color: var(--medium-text); margin-left: 8px; }
.calculator2-content .giaciture-inputs { display: flex; gap: 15px; margin-bottom: 10px; }
.calculator2-content .giaciture-inputs > div { flex: 1; }
.calculator2-content .param-group-d { padding-left: 15px; border-left: 2px solid var(--medium-bg); margin-top: 5px; margin-bottom: 15px; }
.calculator2-content .param-group-d label { font-weight: normal; font-size: 0.85em; margin-top: 8px; }

.calculator2-content #result-display { margin-top: 30px; padding: 20px; border: 1px solid #b8daff; border-radius: 8px; background-color: #cce5ff; color: #004085; }
.calculator2-content #result-display h3 { margin-top: 0; color: #004085; border-bottom: 1px solid #b8daff; padding-bottom: 10px; text-align: center; }
.calculator2-content #result-display h4 { margin-top: 20px; color: #004085; font-size: 1.1em; text-align: left; border-bottom: none;}
.calculator2-content #result-display ul { list-style-type: none; padding-left: 0; }
.calculator2-content #result-display li { margin-bottom: 18px; padding: 15px; border: 1px solid var(--border-color); border-radius: 5px; background-color: var(--white-bg); color: var(--dark-text); }
.calculator2-content #result-display .result-details { font-size: 0.9em; color: var(--medium-text); margin-top: 8px; line-height: 1.5; }
.calculator2-content #final-rmr-result { font-weight: bold; font-size: 1.25em; margin-top: 20px; padding-top: 15px; border-top: 2px solid var(--primary-color); text-align: center; color: #004085; }
.calculator2-content #rmr-class-text, .calculator2-content #strength-estimates { margin-top: 10px; font-weight: bold; text-align: center; font-size: 1.1em; color: #004085; }
.calculator2-content #strength-estimates { border-top: 1px dashed #b8daff; padding-top: 15px; font-weight: normal;}

.calculator2-content #data-management-section { margin-top: 40px; padding: 25px; border: 1px solid var(--border-color); border-radius: 6px; background-color: var(--medium-bg); }
.calculator2-content #data-management-section h2 { text-align: left; margin-top: 0; margin-bottom: 20px; font-size: 1.4em; color: var(--dark-text); border-bottom: none; }
.calculator2-content .data-action-group { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; margin-bottom: 20px; }
.calculator2-content .data-action-group label { margin: 0; flex-shrink: 0; }
.calculator2-content .data-action-group input[type="text"] { flex-grow: 1; margin: 0; }
.calculator2-content .data-action-group button { margin: 0; padding: 10px 25px; }
.calculator2-content #download-data-btn { background-color: var(--info-color); }
.calculator2-content #download-data-btn:hover { background-color: #117a8b; }
.calculator2-content #load-data-label { padding: 10px 25px; background-color: var(--warning-color); color: var(--dark-text); border: none; cursor: pointer; }
.calculator2-content #load-data-label:hover { background-color: #e0a800; }
.calculator2-content #load-data-input { display: none; }
.calculator2-content #load-status, .calculator2-content #download-status { margin-top: 10px; font-size: 0.95em; font-weight: 500; min-height: 1.5em; }

/* Stile per opzioni disabilitate */
.calculator2-content select option:disabled { color: var(--light-text); background-color: #f2f2f2; }

/* --- Stili Tabella Riassuntiva (Tab 5 - Tema Chiaro) --- */
#tab-summary-content .input-container { display: flex; gap: 20px; margin-bottom: 20px; padding: 20px; background-color: var(--medium-bg); border-radius: var(--border-radius); }
#tab-summary-content .input-container .input-group { flex: 1; }
#tab-summary-content .input-container label { font-weight: 600; color: var(--medium-text); margin-bottom: 8px; display: block; }
#tab-summary-content .input-container input[type="file"] { width: 100%; border: 1px solid var(--border-color); padding: 8px; border-radius: 4px; }
#tab-summary-content .file-status { font-size: 0.85em; color: var(--light-text); margin-top: 5px; }
#summaryLoadStatusMessage { font-weight: bold; margin-bottom: 15px; padding: 12px; border-radius: var(--border-radius); text-align: center; font-size: 1.0em; }
#summaryLoadStatusMessage.status-info { background-color: #e2e3e5; color: var(--dark-text); border: 1px solid #d6d8db; }
#summaryLoadStatusMessage.status-success { background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
#summaryLoadStatusMessage.status-error { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }

#summaryTableContainer { overflow-x: auto; background-color: var(--white-bg); border-radius: var(--border-radius); box-shadow: var(--box-shadow); padding: 15px; margin-top: 15px; border: 1px solid var(--border-color); }
#summaryTableContainer table { border-collapse: collapse; width: 100%; margin-top: 5px; font-size: 0.9em; white-space: nowrap; }
#summaryTableContainer th { background-color: var(--medium-bg); color: var(--dark-text); padding: 10px 12px; text-align: center; font-weight: bold; border-bottom: 2px solid var(--border-color); position: sticky; top: 0; z-index: 1; }
#summaryTableContainer th .family-name { display: block; font-size: 1.1em; font-weight: bold; }
#summaryTableContainer th .family-weight { display: block; font-size: 0.9em; font-weight: normal; color: var(--medium-text); margin-top: 2px; }
#summaryTableContainer th:first-child { text-align: left; position: sticky; left: 0; z-index: 2; border-right: 2px solid var(--border-color); }
#summaryTableContainer td { border: 1px solid var(--border-color); padding: 8px 10px; vertical-align: middle; }
#summaryTableContainer td:first-child { text-align: left; font-weight: 600; background-color: #f8f9fa; position: sticky; left: 0; z-index: 1; border-right: 2px solid var(--border-color); }
#summaryTableContainer td:not(:first-child) { text-align: center; }
#summaryTableContainer tbody tr:hover td { background-color: #f1f3f5; }
#summaryTableContainer .val { font-weight: bold; font-size: 1.05em; display: block; }
#summaryTableContainer .text { font-size: 0.85em; color: var(--medium-text); display: block; margin-top: 3px; font-style: italic; white-space: normal; }
#summaryTableContainer .group-header td { background-color: var(--medium-bg); font-weight: bold; color: var(--secondary-color); text-align: center; font-size: 1em; padding: 10px 0; border-top: 2px solid var(--border-color); border-bottom: 1px solid var(--border-color); }
#summaryTableContainer .group-header td:first-child { position: sticky; left: 0; background-color: var(--medium-bg); }
#summaryTableContainer .param-d-detail td:first-child { padding-left: 25px; font-weight: normal; }
#summaryFileInfoDiv { margin-top: 15px; font-size: 0.8em; color: var(--medium-text); text-align: center; font-style: italic; }

/* Responsive Adjustments */
@media (max-width: 768px) {
    .tab-container { margin: 10px; max-width: calc(100% - 20px); }
    .tab-content { padding: 20px; }
    .tab-link { padding: 12px 15px; font-size: 1em; }
    .calculator-content .container, .calculator2-content, .rqd-calculator-content .container { padding: 0; }
    .calculator-content h1, .calculator2-content h1, .rqd-calculator-content h2 { font-size: 1.6em; }
    .calculator-content h2, .calculator2-content h2, .rqd-calculator-content h2 { font-size: 1.3em; }
    .calculator2-content fieldset { padding: 15px; }
    .calculator2-content .giaciture-inputs { flex-direction: column; gap: 5px; }
    #summaryTableContainer { font-size: 0.85em; }
    #tab-summary-content .input-container { flex-direction: column; }
}

@media (max-width: 480px) {
    .tab-link { padding: 10px 12px; font-size: 0.9em; }
    .tab-content { padding: 15px; }
    .calculator-content th, .calculator-content td,
    .calculator2-content th, .calculator2-content td,
    .rqd-calculator-content th, .rqd-calculator-content td,
    #summaryTableContainer th, #summaryTableContainer td { font-size: 0.85em; padding: 6px 8px; }
    .calculator-content button, .calculator2-content button, .rqd-calculator-content button { font-size: 0.9em; padding: 10px 12px; }
    .calculator2-content .data-action-group { flex-direction: column; align-items: stretch; }
    .rqd-calculator-content .joint-set-input { flex-direction: column; align-items: stretch; }
}