/* ===== Global ===== */
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; padding-bottom: 50px; }
footer { position: fixed; bottom: 0; left: 0; right: 0; background: #343a40; color: #adb5bd; font-size: 0.85rem; letter-spacing: 0.5px; z-index: 1000; }
footer a { color: #adb5bd; text-decoration: none; }
footer a:hover { color: #fff; }

/* ===== Theme Variables ===== */
:root {
    --th-bg: #0056b3;
    --th-color: white;
    --ora-bg: #f8f9fa;
    --cella-bg: #e9f7ff;
    --cella-border: #cfe2ff;
    --materia-color: #0d6efd;
    --text-color: #333;
    --italic-color: #17609a;
}

body.theme-docente {
    --th-bg: #0056b3;
    --th-color: white;
    --ora-bg: #f8f9fa;
    --cella-bg: #e9f7ff;
    --cella-border: #cfe2ff;
    --materia-color: #0d6efd;
    --text-color: #333;
    --italic-color: #17609a;
}

body.theme-classe {
    --th-bg: #17a2b8;
    --th-color: white;
    --ora-bg: #f8f9fa;
    --cella-bg: #d1ecf1;
    --cella-border: #bee5eb;
    --materia-color: #0c5460;
    --text-color: #333;
    --italic-color: #333;
}

body.theme-aula {
    --th-bg: #28a745;
    --th-color: white;
    --ora-bg: #f8f9fa;
    --cella-bg: #e8f5e9;
    --cella-border: #c8e6c9;
    --materia-color: #2e7d32;
    --text-color: #333;
    --italic-color: #388e3c;
}

/* ===== Table Styles ===== */
.table-orario { table-layout: fixed; width: 100%; overflow-wrap: break-word; }
.table-orario th { background-color: var(--th-bg); color: var(--th-color); text-align: center; vertical-align: middle; font-size: 0.85rem; }
.table-scuola th { background-color: var(--th-bg); color: var(--th-color); text-transform: uppercase; font-size: 0.9rem; }
.ora-col { background-color: var(--ora-bg); font-weight: bold; width: 80px; text-align: center; font-size: 0.85rem; }
.cella-lezione { background-color: var(--cella-bg); border: 1px solid var(--cella-border); padding: 0.4rem; font-size: 0.8rem; border-radius: 0.25rem; }
.materia { font-weight: 700; color: var(--materia-color); }
.classe, .compresenza { display: block; color: var(--text-color); margin-top: 0.1rem; font-size: 0.75rem; }
.compresenza { font-style: italic; color: var(--italic-color); }
.docenti { display: block; color: var(--text-color); margin-top: 0.1rem; font-size: 0.75rem; font-style: italic; color: var(--italic-color); }
.room { display: block; color: var(--materia-color); margin-top: 0.1rem; font-size: 0.75rem; font-weight: 600; }
.search-box { max-width: 500px; }
.btn-orario { background-color: #f8f9fa; color: #0056b3; border: 1px solid #0056b3; }
.btn-orario:hover { background-color: #0056b3; color: white; }

/* ===== Card Accordion ===== */
.card-accordion { margin-bottom: 12px; border: none; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.08); transition: box-shadow 0.3s ease; }
.card-accordion:hover { box-shadow: 0 4px 16px rgba(0,86,179,0.18); }
.card-accordion .card-header { padding: 14px 18px; cursor: pointer; background-color: #f8f9fa; font-weight: 600; color: #0056b3; font-size: 1rem; border-bottom: 1px solid #e0e0e0; display: flex; justify-content: space-between; align-items: center; transition: all 0.3s ease; }
.card-accordion .card-header:hover { background-color: #e8eef5; }
.card-accordion .card-header .bi-chevron-down { transition: transform 0.3s ease; }
.card-accordion .card-header[aria-expanded="true"] .bi-chevron-down { transform: rotate(180deg); }
.card-accordion .card-header[aria-expanded="true"] { background-color: #0056b3; color: white; border-bottom-color: #0056b3; }
.card-accordion .card-body { padding: 0; }
.card-accordion .list-group-item { border-radius: 0; border: none; border-bottom: 1px solid #f0f0f0; padding: 10px 18px; }
.card-accordion .list-group-item:hover { background-color: #f0f4ff; }

/* ===== Mobile Responsive ===== */
@media (max-width: 768px) {
    .card-accordion .card-header { padding: 16px 20px; font-size: 1.05rem; }
    .card-accordion .list-group-item { padding: 14px 20px; font-size: 1rem; }
    .card-accordion { margin-bottom: 14px; border-radius: 12px; }
    .container { padding-left: 1rem; padding-right: 1rem; }
    #accordionList .card { width: 100%; }
    #accordionList .card-accordion { width: 100%; }
}

/* ===== Print Styles ===== */
@media print {
    @page {
        size: A4 landscape;
        margin: 3mm;
    }
    body {
        background: white;
        margin: 0;
        padding: 0;
    }
    .container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    .btn, a, input, label, select, .input-group, .badge, .mt-3, .mt-4 {
        display: none !important;
    }
    table {
        width: 100% !important;
        border-collapse: collapse !important;
        page-break-inside: avoid;
        margin: 0 !important;
        overflow: hidden;
    }
    th, td {
        padding: 1px 2px !important;
        font-size: 8px !important;
        border: 1px solid #ddd !important;
    }
    .ora-col {
        width: 40px !important;
    }
    .cella-lezione {
        padding: 1px 2px !important;
        font-size: 8px !important;
        margin-bottom: 0;
    }
    .docenti { font-size: 8px !important; }
    .room { font-size: 8px !important; }
}
