/* SIDP Manager · tema "Dojo" 0.9 — layer di restyling globale sopra app.css. Struttura e classi invariate. */
:root{
  --bg-app:#f8f6f0;--bg-paper:#ffffff;--bg-paper-alt:#f3efe6;
  --bg-sidebar:#121417;--bg-sidebar-active:#1d2127;--bg-sidebar-hover:#181c22;
  --text-primary:#1a1d20;--text-muted:#6b7280;--text-on-dark:#f3efe6;--text-on-dark-muted:#9ca3af;
  --border-light:#e5dfd3;--border-medium:#d4cebf;
  --gold:#c5a059;--gold-hover:#b28e47;--gold-light:rgba(197,160,89,.12);--gold-border:rgba(197,160,89,.35);
  --green:#2e7d32;--green-bg:#e8f5e9;--amber:#b45309;--amber-bg:#fffbeb;--red-s:#c62828;--red-bg:#ffebee;
  --shadow-sm:0 2px 4px rgba(0,0,0,.03),0 1px 2px rgba(0,0,0,.04);
  --shadow-panel:0 10px 25px -5px rgba(18,20,23,.05),0 4px 10px -2px rgba(18,20,23,.02);
  --r-sm:6px;--r-md:10px;--r-lg:16px;
  --font-display:'Barlow Condensed','Cinzel',sans-serif;--font-body:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  --ink:var(--text-primary);--muted:var(--text-muted);--brand:#121417;--paper:var(--bg-app);--line:var(--border-light);--accent:var(--gold);--red:var(--red-s);
  font-family:var(--font-body);color:var(--text-primary);background:var(--bg-app);
}
html{background:var(--bg-app)}body{font-size:15px;line-height:1.6;background:var(--bg-app)}
::selection{background:var(--gold);color:#fff}
h1,h2,h3{font-family:var(--font-display);color:var(--text-primary)}
h1{font-size:40px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;line-height:1.05}
h2{font-size:24px;font-weight:700;letter-spacing:0}
h3{font-size:19px;font-weight:600;letter-spacing:.01em}
.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:700;color:var(--gold-hover);margin-bottom:10px}
.small,small{font-size:12.5px}

/* Sidebar — obsidian con logo preservato */
.sidebar{background:var(--bg-sidebar);color:var(--text-on-dark);border-right:1px solid #1f242b;width:260px;padding:28px 18px 22px}
.shell{margin-left:260px}
.brand{color:var(--text-on-dark);font-family:var(--font-display);font-weight:700;font-size:26px;letter-spacing:.2em}
.brand-logo{width:104px;height:104px;padding:8px;border-radius:50%;background:#fff;border:1px solid var(--gold-border);box-shadow:0 0 0 6px rgba(197,160,89,.08);transition:transform .3s ease,box-shadow .3s ease}
.brand:hover .brand-logo{transform:scale(1.03);box-shadow:0 0 0 8px rgba(197,160,89,.14)}
.brand-sub{color:var(--gold);letter-spacing:.35em;font-size:9px}
.school-name{color:var(--text-on-dark-muted);font-size:11px;letter-spacing:.04em;margin:14px 0 26px;text-align:center}
.sidebar nav a{color:var(--text-on-dark-muted);border:1px solid transparent;border-radius:8px;padding:11px 14px;font-weight:600;font-size:13.5px;margin-bottom:3px;transition:background-color .2s ease,color .2s ease,transform .2s ease}
.sidebar nav a span{color:#8a7a5a;transition:color .2s ease}
.sidebar nav a:hover{background:var(--bg-sidebar-hover);color:var(--text-on-dark);border-color:transparent;transform:translateX(2px)}
.sidebar nav a:hover span{color:var(--gold)}
.sidebar nav a.current{background:var(--bg-sidebar-active);color:#fff;border-color:transparent;border-left:3px solid var(--gold);padding-left:11px}
.sidebar nav a.current span{color:var(--gold)}
.sidebar nav a:not(:has(>span)){padding-left:47px}.sidebar nav a.current:not(:has(>span)){padding-left:44px}
.nav-section{color:#6d6250;letter-spacing:.2em;font-size:9.5px;margin:26px 14px 10px}
.nav-count{background:var(--gold);color:#121417;font-weight:700}
.sidebar-foot{color:var(--text-on-dark-muted);border-top:1px solid #23282f;font-size:11px}
.sidebar-foot small{color:#6d6250}.online-dot{background:var(--gold);box-shadow:0 0 0 3px rgba(197,160,89,.18)}

/* Topbar */
.topbar{height:68px;background:rgba(255,255,255,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border-light);position:sticky;top:0;z-index:4;padding:0 44px}
.topbar-context{font-family:var(--font-display);font-size:13px;letter-spacing:.22em;color:var(--gold-hover);font-weight:700}
.account>a{border:1px solid var(--border-light);border-radius:999px;padding:5px 14px 5px 6px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}
.account>a:hover{text-decoration:none;border-color:var(--gold-border);box-shadow:var(--shadow-sm)}
.avatar{background:var(--bg-sidebar);color:var(--gold);font-family:var(--font-display);font-size:14px;font-weight:700}
.account small{color:var(--text-muted)}

main{padding:40px 44px 56px;max-width:1500px}
.page-heading{margin-bottom:34px;padding-bottom:22px;border-bottom:1px solid var(--border-light);position:relative}
.page-heading::after{content:"";position:absolute;left:0;bottom:-1px;width:72px;height:2px;background:var(--gold)}
.page-heading p{font-size:14.5px;color:var(--text-muted)}
.breadcrumbs{font-size:12.5px}

/* Pulsanti */
.button,main .button,.topbar .button{font-family:var(--font-body);font-weight:700;font-size:12.5px;letter-spacing:.02em;border:1px solid var(--border-medium);border-radius:var(--r-sm);background:#fff;color:var(--text-primary);transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .15s ease,box-shadow .2s ease}
.button:hover,main a.button:not(.primary):hover{background:var(--bg-paper-alt);border-color:var(--gold-border);box-shadow:var(--shadow-sm);text-decoration:none}
.button:active{transform:translateY(1px)}
.button.primary,main .button.primary{background:var(--gold);border-color:var(--gold);color:#fff;box-shadow:0 4px 12px -4px rgba(197,160,89,.6)}
.button.primary:hover,main .button.primary:hover{background:var(--gold-hover);border-color:var(--gold-hover);transform:translateY(-1px)}
main .button-danger{background:#fff;color:var(--red-s);border-color:#e7b9b9}main .button-danger:hover{background:var(--red-bg);border-color:var(--red-s)}
main .tabs a.active,main .tabs a[aria-current="page"],.student-tabs .button.selected{background:var(--bg-sidebar);border-color:var(--bg-sidebar);color:#fff}
.tabs a.active{color:var(--text-primary);border-color:var(--gold)}
.text-button{color:var(--text-muted)}

/* Card e pannelli */
.panel,.stat{background:var(--bg-paper);border:1px solid var(--border-light);border-radius:var(--r-md);box-shadow:var(--shadow-panel);padding:26px 28px;transition:box-shadow .25s ease,transform .25s ease}
.panel+.panel{margin-top:22px}
.stat{border-top:3px solid var(--gold)}
.stat>strong{font-family:var(--font-display);font-size:42px;font-weight:700;color:var(--text-primary)}
.stat:hover{transform:translateY(-2px);box-shadow:0 14px 30px -8px rgba(18,20,23,.12)}
.hero{background:var(--bg-sidebar);color:var(--text-on-dark);border:1px solid #23282f;border-left:4px solid var(--gold);border-radius:var(--r-lg)}
.hero h2{color:#fff;font-size:38px}.hero p{color:var(--text-on-dark-muted)}.hero .eyebrow{color:var(--gold)}
.hero-button{border-color:var(--gold);color:#fff;background:transparent}.hero-button:hover{background:var(--gold);color:#121417}
.hero-logo{filter:drop-shadow(0 10px 25px rgba(0,0,0,.45))}
.section-heading h2{font-size:22px}.section-heading small{letter-spacing:.06em;text-transform:uppercase}
.student-manage{border-left:4px solid var(--gold)}
.student-course,.enrollment-card,.student-document,.interactive-card{border:1px solid var(--border-light);border-radius:var(--r-md);background:#fff;transition:border-color .2s ease,box-shadow .2s ease}
.student-course:hover,.enrollment-card:hover,.interactive-card:hover{border-color:var(--gold-border);box-shadow:var(--shadow-sm)}
.person-labels{background:var(--bg-paper-alt)}

/* Tabelle */
.table-wrap,.people-table-scroll{border-radius:var(--r-md)}
table{font-size:13px}
th,.people-export-table th{background:var(--bg-paper-alt);padding:13px 16px;text-transform:uppercase;font-size:11px;letter-spacing:.08em;color:var(--text-muted);font-weight:700;border-bottom:1px solid var(--border-medium)}
td,.people-export-table td{padding:14px 16px;border-bottom:1px solid var(--border-light)}
tbody tr{transition:background-color .15s ease}tbody tr:hover{background:rgba(197,160,89,.05)}
.people-export-table tbody tr:nth-child(even){background:transparent}

/* Form */
label{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--text-muted)}
.check-label{text-transform:none;letter-spacing:0;font-size:14px;color:var(--text-primary);font-weight:500}
input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--border-medium);border-radius:var(--r-sm);background:#fff;padding:11px 14px;transition:border-color .2s ease,box-shadow .2s ease}
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-light)}
input[type=checkbox]{accent-color:var(--gold)}
.helptext{font-size:12px}.errorlist{color:var(--red-s)}
.form-panel{max-width:780px}
.notice{background:var(--gold-light);border:1px solid var(--gold-border);border-left:4px solid var(--gold);border-radius:var(--r-sm);font-size:13.5px}
.notice.success{background:var(--green-bg);border-color:#c8e6c9;border-left-color:var(--green)}
.notice.error,.notice.warning{background:var(--amber-bg);border-color:#fde68a;border-left-color:var(--amber);color:#78350f}

/* Badge e stati */
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--bg-paper-alt);border:1px solid var(--border-light);color:var(--text-muted)}
.badge.green,.green{background:var(--green-bg);color:var(--green);border-color:#c8e6c9}
.badge.red,.red{background:var(--red-bg);color:var(--red-s);border-color:#f3c3c3}
.badge.amber,.amber{background:var(--amber-bg);color:var(--amber);border-color:#fde68a}
.label-chip{border-radius:999px;font-weight:600}
.student-alert{border-radius:var(--r-sm);border-left-width:4px}
.student-alert.amber{background:var(--amber-bg);border-color:#fde68a;border-left-color:var(--amber)}
.student-alert.red{background:var(--red-bg);border-color:#f3c3c3;border-left-color:var(--red-s)}
.student-alert h2{font-size:18px}
.date-tile{background:var(--bg-sidebar);color:#fff;border-radius:var(--r-sm)}.date-tile b{font-family:var(--font-display);font-size:24px}.date-tile small{color:var(--gold)}
.event-row,.person-row,.history-row,.config-row,.notification,.roster-row{border-color:var(--border-light)}

/* Details */
main details{border:1px solid var(--border-light);border-radius:var(--r-md);background:#fff}
main details>summary{list-style:none;display:flex;align-items:center;gap:10px;background:var(--bg-paper-alt);border:1px solid var(--border-light);border-radius:var(--r-sm);font-weight:700;letter-spacing:.01em;transition:background-color .2s ease,border-color .2s ease}
main details>summary::-webkit-details-marker{display:none}
main details>summary::before{content:"";width:7px;height:7px;border-right:2px solid var(--gold-hover);border-bottom:2px solid var(--gold-hover);transform:rotate(-45deg);transition:transform .25s ease;flex:none}
main details[open]>summary::before{transform:rotate(45deg)}
main details>summary:hover{border-color:var(--gold-border);background:var(--gold-light)}
main details[open]>summary{background:var(--gold-light)}

/* Statistiche sede: grafico CSS-only */
.sede-stats{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);gap:22px;margin-top:26px}
.stat-card{background:var(--bg-paper-alt);border:1px solid var(--border-light);border-radius:var(--r-md);padding:22px 24px;min-width:0}
.stat-card h3{margin:0 0 14px;font-size:21px}
.stat-card .section-heading{align-items:flex-start;margin-bottom:6px}
.chart-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--text-muted);padding-top:6px}
.legend-item{display:inline-flex;align-items:center;gap:7px}.legend-item b{font-family:var(--font-display);font-size:18px;color:var(--text-primary)}
.legend-item b.neg{color:var(--red-s)}.legend-item b.pos{color:var(--green)}
.dot{width:10px;height:10px;border-radius:3px;display:inline-block}.dot-joined{background:var(--gold)}.dot-left{background:var(--bg-sidebar)}
.css-bar-chart{display:flex;align-items:flex-end;justify-content:space-between;height:220px;padding-top:26px;margin-top:10px;border-bottom:2px solid var(--border-medium);gap:8px;background:repeating-linear-gradient(to top,transparent 0 54px,rgba(0,0,0,.045) 54px 55px)}
.chart-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;min-width:0}
.bars-group{display:flex;align-items:flex-end;gap:3px;width:100%;height:100%;padding:0 3px}
.bar{flex:1;height:var(--h,0%);min-height:2px;border-radius:4px 4px 0 0;position:relative;animation:bar-rise .7s cubic-bezier(.16,1,.3,1) both;transform-origin:bottom}
.bar[style="--h:0%"]{min-height:0;opacity:.35}
.bar-joined{background:var(--gold)}.bar-left{background:var(--bg-sidebar)}
.bar-val{position:absolute;top:-18px;left:50%;transform:translateX(-50%);font-size:10.5px;font-weight:700;color:var(--text-muted)}
.col-label{margin-top:8px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}
.ranking-list{display:flex;flex-direction:column;gap:14px}
.ranking-info{display:flex;justify-content:space-between;gap:12px;font-size:13.5px}.reason-name{font-weight:600}.reason-count{color:var(--text-muted);font-variant-numeric:tabular-nums}
.progress-bar-bg{height:8px;background:#e9e3d6;border-radius:4px;overflow:hidden;margin-top:6px}
.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-hover));border-radius:4px;animation:bar-grow .9s ease both}
@keyframes bar-rise{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes bar-grow{from{width:0}}

/* Entrata animata dei pannelli */
@media(prefers-reduced-motion:no-preference){main>.panel,main .page-heading,main>section,main>div{animation:fade-up .45s ease both}main>*:nth-child(2){animation-delay:.05s}main>*:nth-child(3){animation-delay:.1s}main>*:nth-child(4){animation-delay:.15s}}
@keyframes fade-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Login */
.auth-panel,.login-layout .panel{border-top:3px solid var(--gold)}
.login-intro h1{font-size:52px}.login-intro .eyebrow{color:var(--gold-hover)}

/* Mobile */
.mobile-nav{background:var(--bg-sidebar);border-top:1px solid #23282f}
.mobile-nav a{color:var(--text-on-dark-muted);border-color:transparent;font-weight:600}
.mobile-nav a:hover{color:var(--gold)}
.mobile-brand{font-family:var(--font-display);letter-spacing:.14em}
@media(max-width:1150px){.sidebar{width:220px}.shell{margin-left:220px}main{padding:30px 28px}.topbar{padding:0 28px}.brand-logo{width:84px;height:84px}}
@media(max-width:760px){.shell{margin-left:0}h1{font-size:28px}main{padding:22px 16px 90px}.panel,.stat{padding:18px}.sede-stats{grid-template-columns:1fr}.css-bar-chart{height:170px;gap:4px}.bar-val{display:none}.col-label{font-size:8.5px;letter-spacing:0}.topbar{padding:0 16px;height:60px}.page-heading{margin-bottom:24px}}
@media print{.panel,.stat,.stat-card{box-shadow:none;animation:none}.bar,.progress-bar-fill{animation:none}}

/* Statistiche globali */
.global-stats{margin-bottom:24px;border-top:3px solid var(--gold)}
.css-bar-chart.compact{height:160px}
.venue-compare{display:flex;flex-direction:column;gap:10px;margin-top:22px}
.venue-compare-row{display:grid;grid-template-columns:minmax(140px,220px) 1fr auto;gap:18px;align-items:center;padding:12px 14px;border:1px solid var(--border-light);border-radius:var(--r-sm);background:var(--bg-paper-alt);transition:border-color .2s ease}
.venue-compare-row:hover{border-color:var(--gold-border)}
.venue-compare-name{font-family:var(--font-display);font-size:17px;font-weight:700}
.sparkbars{display:flex;gap:4px;height:34px;align-items:flex-end}
.spark{flex:1;display:flex;gap:1px;align-items:flex-end;height:100%}
.spark i{flex:1;height:var(--h,0%);min-height:2px;border-radius:2px 2px 0 0;display:block}
.spark-joined{background:var(--gold)}.spark-left{background:var(--bg-sidebar)}
.venue-compare-nums{font-size:12.5px;color:var(--text-muted);white-space:nowrap}.venue-compare-nums b{color:var(--text-primary)}.venue-compare-nums b.gold{color:var(--gold-hover)}.venue-compare-nums b.neg{color:var(--red-s)}.venue-compare-nums b.pos{color:var(--green)}
.churn-rate{display:inline-flex;align-items:center;gap:10px;min-width:150px}
.churn-rate i{display:block;width:90px;height:8px;border-radius:4px;background:#e9e3d6;position:relative;overflow:hidden}
.churn-rate i::after{content:"";position:absolute;inset:0;width:var(--w,0%);background:var(--green);border-radius:4px}
.churn-mid .churn-rate i::after{background:var(--amber)}.churn-high .churn-rate i::after{background:var(--red-s)}
.churn-high .churn-rate b{color:var(--red-s)}.churn-mid .churn-rate b{color:var(--amber)}
.churn-high td:first-child{box-shadow:inset 3px 0 0 var(--red-s)}

/* Comunicazioni */
.compose-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}
.compose-layout .preview-panel{grid-column:1/-1}
.mail-preview{border:1px solid var(--border-light);border-radius:var(--r-md);overflow:hidden;margin-bottom:18px;background:#fff}
.mail-head{padding:14px 18px;background:var(--bg-paper-alt);border-bottom:1px solid var(--border-light);font-size:13.5px;line-height:1.7}.mail-head small{text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:var(--text-muted);margin-right:6px}
.mail-body{padding:18px;font-size:14px;line-height:1.7}
.recipient-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 18px;font-size:13.5px}
.recipient-list li{padding:6px 0;border-bottom:1px dashed var(--border-light)}.recipient-list small{color:var(--text-muted);margin-left:6px}
code{background:var(--bg-paper-alt);border:1px solid var(--border-light);border-radius:4px;padding:1px 6px;font-size:12px}
@media(max-width:760px){.compose-layout{grid-template-columns:1fr}.venue-compare-row{grid-template-columns:1fr;gap:8px}.venue-compare-nums{white-space:normal}}

/* 0.9 — daily course register and course definition */
.course-form-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:18px;margin:18px 0}
.course-fieldset {min-width:0;border:1px solid #d5cbb9;border-radius:10px;padding:16px;background:#fff}
.course-definition input:not([type=checkbox]),.course-definition select,.course-definition textarea {max-width:100%;box-sizing:border-box}
.course-definition .panel {min-width:0}
.register-row {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid #ded8cc;scroll-margin-top:90px}
.register-row:last-child {border-bottom:0}
.register-state {display:block;margin-bottom:10px}
.register-row .button {min-height:44px}
.register-row p {margin:8px 0}
.register-date {align-items:end;flex-wrap:wrap}
.register-date p {margin:0}
#register-feedback:empty {display:none}
@media(max-width:600px){.register-row{align-items:stretch;flex-direction:column}.register-row .presence-form{display:grid;grid-template-columns:1fr 1fr}.course-form-grid{grid-template-columns:1fr}.register-date{align-items:stretch;flex-direction:column}}

/* 0.9.1: compact course workspace, progressively enhanced section navigation. */
.course-cards,.course-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.course-cards .panel,.course-fields>div{min-width:0}
.course-cards h2{font-size:1.15rem;overflow-wrap:anywhere}
.course-fields label{display:block;margin-bottom:.4rem}
.course-fields input,.course-fields select{width:100%;max-width:100%;box-sizing:border-box}
.course-editor-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.course-editor-tabs[hidden],[data-course-panel][hidden],[data-course-prev][hidden],[data-course-next][hidden]{display:none!important}
.course-editor-footer{position:sticky;bottom:0;z-index:5;background:#fff;border:1px solid #dedede;border-radius:12px;padding:1rem;margin-top:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:0 -4px 16px #00000008}
.course-definition .course-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){.course-cards,.course-fields,.course-definition .course-form-grid{grid-template-columns:1fr}.course-editor-footer{bottom:64px;flex-direction:column;align-items:stretch;padding:.75rem;gap:.4rem}.course-editor-footer .actions{flex-wrap:wrap}.course-editor-tabs .button{flex:1 1 40%}}
@media print{[data-course-panel][hidden]{display:block!important}.course-editor-footer,.course-editor-tabs{display:none!important}}

.course-cards>.panel{margin:0}

/* 0.9.2: closures and focused daily workflows. */
[data-break-field][hidden], [data-register-search][hidden] { display: none !important; }
.register-filtered { display: none; }
#register-feedback:not(:empty) { position: sticky; top: 8px; z-index: 5; box-shadow: 0 3px 12px #0001; }
.course-cards article { min-width: 0; }
.course-cards .actions { margin-top: 1rem; }
@media print { .register-filtered { display: flex !important; } #register-feedback { position: static !important; } }
.teacher-options { border: 1px solid var(--border, #ddd); border-radius: 8px; padding: 12px; min-width: 0; }
.teacher-options > div { max-height: 300px; overflow-y: auto; }
.teacher-options label { display: flex; align-items: center; gap: 10px; padding: 8px 4px; }
.teacher-options input[type=checkbox] { width: auto; flex: 0 0 auto; }

.topbar .account form { flex: 0 0 auto; }
.topbar .account .button { white-space: nowrap; word-break: normal; overflow-wrap: normal; }
@media (min-width:761px) and (max-width:900px) { .topbar-context { display: none; } .topbar { justify-content: flex-end; } }
