/* ============================================================
   ACCADEMIA DI BELLE ARTI DI NAPOLI — Orari Lezioni
   Stylesheet v1.1
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#0a1628;--navy-light:#132240;--navy-mid:#1a2d50;
  --blue-accent:#2e5fa3;--blue-bright:#4a8fe7;
  --gold:#c5a55a;--gold-light:#ddc580;
  --cream:#f5f0e8;--cream-dark:#e8e0d0;
  --text-dark:#1a1a1a;--text-mid:#555;--text-light:#888;
  --white:#fff;--card-bg:#fff;--border:#e0dbd2;
  --radius:10px;--radius-sm:6px;
  --shadow:0 2px 12px rgba(10,22,40,.08);
  --shadow-lg:0 8px 32px rgba(10,22,40,.12);
}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--text-dark);min-height:100vh;-webkit-font-smoothing:antialiased}

/* HEADER */
.header{background:linear-gradient(135deg,var(--navy),var(--navy-mid));color:var(--white);padding:1.5rem 1.25rem 1.25rem;position:sticky;top:0;z-index:100;box-shadow:0 4px 20px rgba(10,22,40,.25)}
.header-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:1rem}
.logo-area{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}
.logo-mark{width:44px;height:44px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;font-family:'Instrument Serif',serif;font-size:1.5rem;color:var(--navy);font-weight:700;flex-shrink:0}
.logo-text h1{font-family:'Instrument Serif',serif;font-size:1.15rem;font-weight:400;line-height:1.2;letter-spacing:.02em}
.logo-text p{font-size:.7rem;opacity:.6;letter-spacing:.08em;text-transform:uppercase;margin-top:.15rem}
.header-badge{background:rgba(197,165,90,.15);border:1px solid rgba(197,165,90,.3);color:var(--gold-light);font-size:.65rem;padding:.25rem .6rem;border-radius:20px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;flex-shrink:0}

/* MAIN */
.main{max-width:1200px;margin:0 auto;padding:1rem 1rem 3rem}

/* FILTERS */
.filters-section{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;margin-bottom:1rem;border:1px solid var(--border)}
.search-row{position:relative;margin-bottom:1rem}
.search-row input{width:100%;padding:.75rem 1rem .75rem 2.75rem;border:2px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:.95rem;background:var(--cream);color:var(--text-dark);transition:border-color .2s,box-shadow .2s;outline:none}
.search-row input:focus{border-color:var(--blue-accent);box-shadow:0 0 0 3px rgba(46,95,163,.12)}
.search-row input::placeholder{color:var(--text-light)}
.search-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--text-light);pointer-events:none}
.search-icon svg{width:18px;height:18px}
.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem}
.filter-group label{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-light);margin-bottom:.3rem;font-weight:600}
.filter-group select{width:100%;padding:.55rem .7rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:.85rem;background:var(--cream);color:var(--text-dark);cursor:pointer;outline:none;transition:border-color .2s;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;padding-right:2rem}
.filter-group select:focus{border-color:var(--blue-accent)}
.filter-actions{display:flex;align-items:flex-end;gap:.5rem;margin-top:.6rem}
.btn-reset{background:none;border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.5rem 1rem;font-family:inherit;font-size:.8rem;color:var(--text-mid);cursor:pointer;transition:all .2s}
.btn-reset:hover{border-color:var(--blue-accent);color:var(--blue-accent)}

/* PILLS */
.active-filters{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.75rem}
.active-filters:empty{display:none}
.pill{display:inline-flex;align-items:center;gap:.3rem;background:rgba(46,95,163,.08);border:1px solid rgba(46,95,163,.2);color:var(--blue-accent);font-size:.72rem;padding:.2rem .55rem;border-radius:20px;font-weight:500}
.pill button{background:none;border:none;cursor:pointer;color:var(--blue-accent);font-size:.85rem;line-height:1;padding:0;opacity:.6}
.pill button:hover{opacity:1}

/* RESULTS BAR */
.results-bar{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;margin-bottom:.5rem}
.results-count{font-size:.8rem;color:var(--text-mid)}
.results-count strong{color:var(--text-dark)}
.view-toggle{display:flex;gap:0;border:1.5px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}
.view-toggle button{background:none;border:none;padding:.35rem .6rem;cursor:pointer;color:var(--text-light);transition:all .15s;display:flex;align-items:center}
.view-toggle button.active{background:var(--navy);color:var(--white)}
.view-toggle button svg{width:16px;height:16px}

/* TABLE */
.results-table-wrap{overflow-x:auto;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);-webkit-overflow-scrolling:touch}
table.schedule{width:100%;border-collapse:collapse;font-size:.82rem}
table.schedule thead{background:var(--navy);color:var(--white);position:sticky;top:0;z-index:2}
table.schedule th{padding:.65rem .6rem;text-align:left;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-bottom:2px solid var(--gold)}
table.schedule td{padding:.6rem;border-bottom:1px solid var(--border);vertical-align:top}
table.schedule tbody tr{transition:background .15s}
table.schedule tbody tr:hover{background:rgba(46,95,163,.03)}
table.schedule tbody tr:last-child td{border-bottom:none}
.td-materia{font-weight:600;color:var(--navy);min-width:180px}
.td-docente{color:var(--blue-accent);font-weight:500;white-space:nowrap}
.td-corso{white-space:nowrap}
.td-orario{min-width:200px;font-size:.78rem}
.td-sede{white-space:nowrap}
.td-badge{display:inline-block;padding:.15rem .45rem;border-radius:3px;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.badge-triennio{background:#e8f0fe;color:#1a4fa0}
.badge-biennio{background:#fef3e0;color:#a06f1a}
.badge-quinquennio{background:#e8f5e9;color:#2e7d32}
.badge-sem1{background:rgba(46,95,163,.1);color:var(--blue-accent)}
.badge-sem2{background:rgba(197,165,90,.15);color:#8a6d2f}
.badge-semA{background:rgba(100,180,100,.12);color:#2e7d32}
.day-chip{display:inline-block;background:var(--navy);color:var(--white);padding:.1rem .35rem;border-radius:3px;font-size:.68rem;font-weight:600;margin-right:.25rem}
.time-slot{display:inline-flex;align-items:center;gap:.25rem;margin-bottom:.2rem;font-size:.78rem}
.time-slot .aula{color:var(--text-light);font-size:.72rem}

/* CARDS */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.75rem}
.card{background:var(--white);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);padding:1rem;transition:box-shadow .2s,transform .15s}
.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}
.card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.6rem}
.card-materia{font-family:'Instrument Serif',serif;font-size:1.05rem;line-height:1.3;color:var(--navy);flex:1}
.card-badges{display:flex;gap:.3rem;flex-shrink:0;flex-wrap:wrap}
.card-docente{font-weight:600;color:var(--blue-accent);font-size:.85rem;margin-bottom:.5rem}
.card-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem;color:var(--text-mid);margin-bottom:.6rem}
.card-meta span{display:flex;align-items:center;gap:.2rem}
.card-meta svg{width:13px;height:13px;opacity:.5}
.card-schedule{background:var(--cream);border-radius:var(--radius-sm);padding:.6rem;font-size:.78rem}
.card-schedule .time-slot{display:flex;margin-bottom:.2rem}
.card-schedule .time-slot:last-child{margin-bottom:0}
.card-note{margin-top:.4rem;font-size:.72rem;color:var(--text-light);font-style:italic}

/* PAGINATION */
.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:1.25rem}
.pagination button{background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .75rem;font-family:inherit;font-size:.8rem;cursor:pointer;color:var(--text-mid);transition:all .15s}
.pagination button:hover:not(:disabled){border-color:var(--blue-accent);color:var(--blue-accent)}
.pagination button:disabled{opacity:.4;cursor:default}
.pagination button.active{background:var(--navy);color:var(--white);border-color:var(--navy)}
.pagination .page-info{font-size:.78rem;color:var(--text-mid)}

/* EMPTY / LOADING */
.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-light)}
.empty-state svg{width:48px;height:48px;opacity:.3;margin-bottom:.75rem}
.empty-state h3{font-size:1rem;color:var(--text-mid);margin-bottom:.3rem}
.empty-state p{font-size:.85rem}
.loading{text-align:center;padding:2rem;color:var(--text-light)}
.loading .spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--blue-accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto .75rem}
@keyframes spin{to{transform:rotate(360deg)}}

/* FOOTER */
.footer{text-align:center;padding:1.5rem 1rem;font-size:.72rem;color:var(--text-light);border-top:1px solid var(--border);margin-top:2rem}
.footer a{color:var(--blue-accent);text-decoration:none}

/* SCROLL HINT */
.scroll-hint{display:none;font-size:.7rem;color:var(--text-light);text-align:right;margin-bottom:.3rem}

/* RESPONSIVE */
@media(max-width:768px){
  .header{padding:1rem}
  .logo-text h1{font-size:1rem}
  .header-badge{display:none}
  .filters-grid{grid-template-columns:1fr 1fr}
  .cards-grid{grid-template-columns:1fr}
  table.schedule{font-size:.75rem}
  table.schedule th,table.schedule td{padding:.45rem .35rem}
  .td-orario{min-width:150px}
  .scroll-hint{display:block}
}
@media(max-width:480px){
  .filters-grid{grid-template-columns:1fr}
  .logo-mark{width:36px;height:36px;font-size:1.2rem}
  .logo-text h1{font-size:.9rem}
  .card-materia{font-size:.95rem}
}
