/* Corsi Suite: palette calda e minimale (crema, verde petrolio, arancione) con raggio ampio e ombre morbide. */
[hidden]{display:none!important}
:root{
  --background:40 22% 98.5%;--foreground:0 0% 12%;--card:40 25% 99.5%;--muted:40 10% 92%;--muted-foreground:0 0% 34%;
  --primary:174 33% 27%;--primary-hover:174 33% 22%;--cta:33 83% 52%;--border:40 10% 88%;--accent:38 25% 75%;--sidebar:30 45% 96%;
  --r:1.25rem;--r-sm:.75rem;--shadow:0 8px 30px hsl(0 0% 0% / .04);--shadow-sm:0 2px 12px hsl(174 33% 27% / .05);
  --side-w:220px;--font:"Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media(prefers-color-scheme:dark){:root{--background:200 12% 8%;--foreground:40 20% 94%;--card:200 12% 11%;--muted:200 10% 16%;--muted-foreground:40 8% 68%;--primary:174 38% 52%;--primary-hover:174 38% 60%;--border:200 8% 20%;--accent:38 20% 35%;--sidebar:200 14% 10%;--shadow:0 8px 30px hsl(0 0% 0% / .3)}}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:hsl(var(--background));color:hsl(var(--foreground));font:400 15px/1.5 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.01em}
.mut{color:hsl(var(--muted-foreground))}
.ic{width:20px;height:20px;flex:none}.ic.on{fill:hsl(var(--cta));stroke:hsl(var(--cta))}

.shell{display:grid;grid-template-columns:var(--side-w) 1fr;height:100dvh;transition:grid-template-columns .25s}
.shell.collapsed{--side-w:68px}
.side{position:relative;background:hsl(var(--sidebar) / .85);border-right:1px solid hsl(var(--border));padding:16px 12px;display:flex;flex-direction:column;gap:20px;overflow:hidden}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px;font-size:17px}
.logo{width:36px;height:36px;border-radius:10px;background:hsl(var(--primary));color:#fff;display:grid;place-items:center;flex:none}.logo .ic{width:22px;height:22px}
.collapsed .brand b,.collapsed #nav span{display:none}
#nav{display:flex;flex-direction:column;gap:4px}
#nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-sm);color:hsl(var(--muted-foreground));font-weight:600}
#nav a:hover{background:hsl(var(--muted))}#nav a.on{background:hsl(var(--primary));color:#fff}
.collapse{position:absolute;right:-1px;top:56px;width:26px;height:26px;border-radius:50%;background:hsl(var(--card));border:1px solid hsl(var(--border));display:grid;place-items:center;transform:translateX(50%);z-index:3;box-shadow:var(--shadow-sm)}
.collapse .ic{width:14px;height:14px;transition:transform .2s}.collapsed .collapse .ic{transform:none}.shell:not(.collapsed) .collapse .ic{transform:rotate(180deg)}
.col{display:flex;flex-direction:column;min-width:0;min-height:0}
.top{display:flex;align-items:center;gap:16px;padding:12px 24px;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background) / .8);backdrop-filter:blur(10px)}
.search{flex:1;max-width:520px;display:flex;align-items:center;gap:10px;height:42px;padding:0 16px;border-radius:999px;background:hsl(var(--muted));color:hsl(var(--muted-foreground))}
.search:focus-within{outline:2px solid hsl(var(--primary))}
.search input{flex:1;min-width:0;border:0;outline:0;background:none;color:inherit;font:inherit;font-size:16px}
.top-r{margin-left:auto;display:flex;align-items:center;gap:12px}
.conn{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.conn.ok{background:hsl(var(--primary) / .12);color:hsl(var(--primary))}
.cta,.ghost{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 20px;border-radius:999px;font-weight:700;white-space:nowrap}
.cta{background:hsl(var(--cta));color:#fff;box-shadow:0 4px 16px hsl(var(--cta) / .25)}.cta:hover{filter:brightness(.96)}.cta.ok{background:hsl(var(--primary));box-shadow:none}.cta.sm{height:34px;padding:0 14px}
.ghost{border:1px solid hsl(var(--border));background:hsl(var(--card))}.ghost:hover{border-color:hsl(var(--primary))}
.view{flex:1;overflow:auto;padding:28px 32px 48px;min-height:0}
.view>*{max-width:1180px;margin-left:auto;margin-right:auto}
.ph{font-size:30px;margin-bottom:6px}
.hero h1{font-size:34px}.hero p{color:hsl(var(--muted-foreground));margin:4px 0 24px}
section{margin-top:28px}.sec-h{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.sec-h h2{font-size:20px}.sec-h a{color:hsl(var(--primary));font-weight:700;font-size:14px}
.back{display:inline-flex;align-items:center;gap:4px;color:hsl(var(--muted-foreground));font-weight:600;margin-bottom:12px}.back .ic{width:16px;height:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.grid.cats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.card{display:block;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 36px hsl(0 0% 0% / .08)}
.card.cat{padding:22px 18px;min-height:110px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(145deg,hsl(var(--h) 38% 90%),hsl(var(--card)));}
@media(prefers-color-scheme:dark){.card.cat{background:linear-gradient(145deg,hsl(var(--h) 25% 20%),hsl(var(--card)))}}
.card.cat b{font-size:17px}.card.cat small{color:hsl(var(--muted-foreground))}
.cover{aspect-ratio:16/10}
.cover.big{width:160px;aspect-ratio:1;border-radius:var(--r);flex:none}
.card-b{padding:14px 16px 16px;display:flex;flex-direction:column;gap:2px}.card-b b{line-height:1.25}.card-b small{color:hsl(var(--muted-foreground))}
.resume{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:var(--r);background:hsl(var(--primary));color:#fff;box-shadow:var(--shadow)}
.resume>div:nth-child(2){flex:1;display:flex;flex-direction:column;min-width:0}.resume small{opacity:.75}.resume b{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resume span{opacity:.8;font-size:13px}
.play{width:46px;height:46px;border-radius:50%;background:#ffffff26;display:grid;place-items:center;flex:none}
.banner{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:var(--r);background:hsl(var(--cta) / .12);border:1px solid hsl(var(--cta) / .35);margin-bottom:18px}
.banner>div{flex:1}.banner p{margin:0;font-size:14px;color:hsl(var(--muted-foreground))}.banner .ic{color:hsl(var(--cta))}
.course-h{display:flex;gap:24px;align-items:center;margin-top:8px}
.ch-t{flex:1;min-width:0}.ch-t small{color:hsl(var(--primary));font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:12px}.ch-t h1{font-size:28px;margin:2px 0 6px;line-height:1.2}
.ch-a{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}.ring{flex:none;color:hsl(var(--foreground))}
.module{margin-top:12px;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--r);overflow:hidden}
.module summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;list-style:none}.module summary::-webkit-details-marker{display:none}
.module summary small{color:hsl(var(--muted-foreground));font-weight:700}
.lessons{list-style:none;margin:0;padding:0 8px 8px}
.lessons a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-sm)}.lessons a:hover{background:hsl(var(--muted))}
.lessons a.now{background:hsl(var(--primary) / .12);font-weight:700}.lessons a.done .li-n{color:hsl(var(--muted-foreground))}
.li-ic{width:30px;height:30px;border-radius:50%;background:hsl(var(--muted));display:grid;place-items:center;flex:none}.li-ic .ic{width:15px;height:15px}
.done .li-ic{background:hsl(var(--primary));color:#fff}
.li-n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lessons small{color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums}
.lesson{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;max-width:1280px}
.player{margin-top:6px;border-radius:var(--r);overflow:hidden;background:#000;box-shadow:var(--shadow)}
.player.v{aspect-ratio:16/9}.player.d{height:min(78vh,820px)}.player iframe{width:100%;height:100%;border:0;display:block}
.player.demo{aspect-ratio:16/9;display:grid;place-content:center;gap:12px;text-align:center;color:#fff;padding:20px}.player.demo p{margin:0;opacity:.8}
.l-h{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-top:18px}.l-h small{color:hsl(var(--muted-foreground))}.l-h h1{font-size:24px;line-height:1.25}
.l-a{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.l-a .ghost{width:42px;padding:0;justify-content:center}
.l-nav{display:flex;justify-content:space-between;margin:18px 0}
.notes{display:block;margin-top:8px}.notes textarea{display:block;width:100%;margin:8px 0 4px;padding:14px;border-radius:var(--r-sm);border:1px solid hsl(var(--border));background:hsl(var(--card));color:inherit;font:inherit;font-size:16px;resize:vertical}
.l-side{position:sticky;top:0;align-self:start;max-height:calc(100dvh - 120px);overflow:auto}
.ls-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.note-card{display:block;padding:16px 18px;margin-top:12px;border-radius:var(--r);background:hsl(var(--card));border:1px solid hsl(var(--border))}.note-card small{color:hsl(var(--primary));font-weight:700}.note-card b{display:block}.note-card p{margin:6px 0 0;color:hsl(var(--muted-foreground))}
.panel{padding:22px;border-radius:var(--r);background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:var(--shadow)}.panel h2{font-size:18px;margin-bottom:6px}
.field{display:block;margin:14px 0;font-weight:700;font-size:14px}.field input,.field textarea{display:block;width:100%;margin-top:6px;padding:12px 14px;border-radius:var(--r-sm);border:1px solid hsl(var(--border));background:hsl(var(--background));color:inherit;font:inherit;font-size:15px;font-weight:400}
code{background:hsl(var(--muted));padding:1px 6px;border-radius:6px;font-size:13px}.row{display:flex;gap:10px;flex-wrap:wrap}
.empty{text-align:center;padding:60px 20px;display:flex;flex-direction:column;align-items:center;gap:14px}.empty p{color:hsl(var(--muted-foreground));margin:0}
.loading{display:grid;place-items:center;gap:12px;padding:80px 0;color:hsl(var(--muted-foreground))}.spin{width:28px;height:28px;border-radius:50%;border:3px solid hsl(var(--border));border-top-color:hsl(var(--primary));animation:sp .8s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}
#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,16px);background:hsl(var(--foreground));color:hsl(var(--background));padding:10px 18px;border-radius:999px;opacity:0;pointer-events:none;transition:.2s;z-index:50;font-weight:600}#toast.on{opacity:1;transform:translate(-50%,0)}
.tabbar{display:none}
@media(max-width:900px){
  .shell{grid-template-columns:1fr;padding-bottom:64px}.side{display:none}.top{padding:10px 14px}.view{padding:20px 16px 40px}
  .search{max-width:none}.conn,#signBtn span{display:none}#signBtn{width:42px;padding:0;justify-content:center}
  .tabbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;background:hsl(var(--background) / .92);backdrop-filter:blur(12px);border-top:1px solid hsl(var(--border));padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:20}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:700;color:hsl(var(--muted-foreground));padding:6px 0}.tabbar a.on{color:hsl(var(--primary))}
  .lesson{grid-template-columns:1fr}.l-side{position:static;max-height:none}.course-h{flex-direction:column;align-items:flex-start}.cover.big{width:100%;aspect-ratio:16/8}
  .grid.cats{grid-template-columns:repeat(2,1fr)}.card.cat{min-height:92px;padding:16px}
  .l-h{flex-direction:column}.l-a{justify-content:flex-start}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
}
.topic-sel{display:inline-flex;align-items:center;gap:8px;margin-top:6px;font-weight:700;font-size:14px}.topic-sel select{height:34px;padding:0 10px;border-radius:999px;border:1px solid hsl(var(--border));background:hsl(var(--card));color:inherit;font:inherit;font-weight:600}
.sec-h h2 small{font-weight:600;font-size:14px;margin-left:6px}
/* immagini: categorie e copertine dei corsi */
.card.cat{padding:0;min-height:0;display:block;background:hsl(var(--card))}
.card.cat img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.card.cat .card-b{padding:12px 16px 14px}.card.cat b{font-size:16px}
.cover{position:relative;overflow:hidden;background:hsl(var(--muted))}
.cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.cover .cv-real{animation:fadein .35s ease both}@keyframes fadein{from{opacity:0}to{opacity:1}}
.cover.big{box-shadow:var(--shadow)}
.cat-hero{position:relative;overflow:hidden;border-radius:var(--r);margin:6px 0 20px;min-height:180px;display:flex;align-items:flex-end;box-shadow:var(--shadow)}
.cat-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cat-hero div{position:relative;width:100%;padding:60px 24px 18px;background:linear-gradient(transparent,hsl(0 0% 6% / .62));color:#fff}.cat-hero h1{font-size:30px}.cat-hero p{margin:2px 0 0;opacity:.85}
.cover .cv-topic{transform:scale(1.55);transform-origin:var(--ox,50%) var(--oy,50%);filter:hue-rotate(var(--hr,0deg)) saturate(1.05)}

/* ---------- accesso, account, amministrazione ---------- */
.login{position:fixed;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,hsl(var(--background)),hsl(38 40% 94%));z-index:100;padding:20px}
@media(prefers-color-scheme:dark){.login{background:linear-gradient(135deg,hsl(var(--background)),hsl(200 14% 12%))}}
.login-card{width:min(420px,100%);padding:36px 28px;border-radius:var(--r);background:hsl(var(--card));border:1px solid hsl(var(--border));box-shadow:var(--shadow);text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.login-card h1{font-size:28px}.login-card p{margin:0;color:hsl(var(--muted-foreground))}.login-card small{color:hsl(var(--cta));min-height:1em}
.logo.big{width:56px;height:56px;border-radius:16px}.logo.big .ic{width:32px;height:32px}
.me{margin-top:auto;padding-top:12px;border-top:1px solid hsl(var(--border))}
.me-l{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--r-sm)}.me-l:hover,.me-l.on{background:hsl(var(--muted))}
.me-l img,.av{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none}.av{display:grid;place-items:center;background:hsl(var(--primary));color:#fff;font-weight:800}
.me-l span:last-child{display:flex;flex-direction:column;min-width:0;line-height:1.2}.me-l b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.me-l small{color:hsl(var(--muted-foreground));font-size:11px}
.collapsed .me-l span:last-child{display:none}
#nav hr{border:0;border-top:1px solid hsl(var(--border));margin:8px 4px}
.who{display:flex;gap:16px;align-items:center;margin-bottom:16px}.who img{width:64px;height:64px;border-radius:50%}
.panel{margin-top:18px}.panel+.panel{margin-top:18px}
.inv{display:flex;gap:10px;flex-wrap:wrap}.inv input,.inv select{flex:1;min-width:160px;height:42px;padding:0 14px;border-radius:999px;border:1px solid hsl(var(--border));background:hsl(var(--background));color:inherit;font:inherit;font-size:15px}
.tbl{overflow:auto;padding:6px 6px 10px}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:hsl(var(--muted-foreground));padding:10px 12px}
td{padding:10px 12px;border-top:1px solid hsl(var(--border));vertical-align:top}tr.off td{opacity:.55}
td select{height:34px;padding:0 8px;border-radius:10px;border:1px solid hsl(var(--border));background:hsl(var(--background));color:inherit;font:inherit;font-size:13px;max-width:210px}
.st{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;background:hsl(var(--muted));white-space:nowrap}.st .ic{width:13px;height:13px}
.st.active,.st.rel-mantieni{background:hsl(var(--primary) / .14);color:hsl(var(--primary))}.st.invited{background:hsl(var(--cta) / .16);color:hsl(33 80% 38%)}.st.disabled,.st.rel-archivia{background:hsl(0 70% 50% / .13);color:hsl(0 60% 42%)}.st.rel-verifica{background:hsl(var(--cta) / .16);color:hsl(33 80% 38%)}
.why{font-size:12px;max-width:260px}
.ghost.sm{height:32px;padding:0 14px;font-size:13px}.ghost.danger{color:hsl(0 65% 48%);margin-right:auto}
.chips-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:22px 0 4px}.chips-bar input{margin-left:auto;height:36px;padding:0 14px;border-radius:999px;border:1px solid hsl(var(--border));background:hsl(var(--card));color:inherit;font:inherit;font-size:15px}
.chip{height:36px;padding:0 14px;border-radius:999px;border:1px solid hsl(var(--border));background:hsl(var(--card));font-weight:700;font-size:13px}.chip small{color:hsl(var(--muted-foreground));margin-left:4px}.chip.on{background:hsl(var(--primary));color:#fff;border-color:transparent}.chip.on small{color:#ffffffb0}
.dlg{width:min(640px,94vw);max-height:90dvh;padding:24px;border-radius:var(--r);border:1px solid hsl(var(--border));background:hsl(var(--card));color:inherit;box-shadow:0 30px 80px #0006}.dlg::backdrop{background:#0008}
.dlg h2{font-size:20px}.dlg h3{font-size:14px;margin:18px 0 8px}.dlg .field select,.dlg #uQ{display:block;width:100%;height:40px;margin-top:6px;padding:0 12px;border-radius:var(--r-sm);border:1px solid hsl(var(--border));background:hsl(var(--background));color:inherit;font:inherit;font-size:15px}
.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 12px}.chk{display:flex;gap:8px;align-items:flex-start;font-size:14px;padding:4px 0}.chk input{margin-top:3px}
.pick{max-height:240px;overflow:auto;margin-top:8px;border:1px solid hsl(var(--border));border-radius:var(--r-sm);padding:6px 12px}.row.end{justify-content:flex-end;margin-top:18px}
.mm-link{margin-left:8px;color:hsl(var(--primary));display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%}.mm-link:hover{background:hsl(var(--muted))}
.module summary small{margin-left:auto}
/* schede della lezione, trascrizione, mappe */
.tabs{display:flex;gap:6px;margin:18px 0 12px;border-bottom:1px solid hsl(var(--border))}.tabs button{display:inline-flex;align-items:center;gap:6px;padding:10px 14px;font-weight:700;color:hsl(var(--muted-foreground));border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.on{color:hsl(var(--primary));border-color:hsl(var(--primary))}.tabs .ic{width:16px;height:16px}
.tr-bar{display:flex;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.tr-bar input{flex:1;min-width:180px;height:38px;padding:0 14px;border-radius:999px;border:1px solid hsl(var(--border));background:hsl(var(--card));color:inherit;font:inherit;font-size:15px}
.transcript{max-height:420px;overflow:auto;padding:14px 16px;border-radius:var(--r-sm);background:hsl(var(--card));border:1px solid hsl(var(--border));line-height:1.65}.transcript p{margin:0 0 10px}.ts{font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;color:hsl(var(--primary));background:hsl(var(--primary) / .1);border-radius:6px;padding:1px 6px;margin-right:4px}
.empty.sm{padding:30px 10px}.mm-wrap{overflow:auto;padding:14px;border-radius:var(--r-sm);background:hsl(var(--card));border:1px solid hsl(var(--border));--mm-bg:hsl(var(--card));--mm-fg:hsl(var(--foreground));--primary-c:hsl(var(--primary))}
.mm{display:block;min-width:100%}.mm-n.has{cursor:pointer}.mm-n text{pointer-events:none}
.player.a{padding:30px 20px;background:hsl(var(--card));border:1px solid hsl(var(--border))}.player.a audio{width:100%}.player.i{background:hsl(var(--card));text-align:center}.player.i img{max-width:100%;max-height:70vh}
.player video{width:100%;height:100%;display:block;background:#000}
@media(max-width:900px){.top-r .conn{display:none}th:nth-child(4),td:nth-child(4),th:nth-child(5),td:nth-child(5){display:none}}
/* login con password, invito, link */
.lf{width:100%;display:flex;flex-direction:column;gap:12px;text-align:left}.lf label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px}
.lf input,.pwf input{height:44px;padding:0 14px;border-radius:var(--r-sm);border:1px solid hsl(var(--border));background:hsl(var(--background));color:inherit;font:inherit;font-size:16px;font-weight:400}
.lf input:focus,.pwf input:focus{outline:2px solid hsl(var(--primary));border-color:transparent}.lf input[readonly]{opacity:.7}
.lf .cta{justify-content:center;width:100%}.lf small{min-height:1.2em;color:hsl(0 65% 48%);text-align:center}.login-card .mut{font-size:13px}
.pwf{max-width:420px}.pwf .field{margin:10px 0}.linkbox{width:100%;height:44px;padding:0 12px;border-radius:var(--r-sm);border:1px solid hsl(var(--border));background:hsl(var(--background));color:inherit;font:13px ui-monospace,Menlo,monospace}
td.acts{white-space:nowrap}
