:root{--ink:#0b1220;--slate:#475569;--muted:#94a3b8;--line:#e6eaf0;--soft:#f6f8fb;--red:#e8442a;--green:#3da838;--blue:#2e9bd6;--danger:#b42318;--grad:linear-gradient(100deg,#e8442a,#3da838,#2e9bd6)}*{box-sizing:border-box}[hidden]{display:none!important}body,html{margin:0;padding:0}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--soft);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit}h1,h2,h3{letter-spacing:-.015em;line-height:1.2;margin:0}h1{font-size:28px}h2{font-size:20px}p{margin:0}.wrap{max-width:1040px}.narrow,.wrap{margin:0 auto;padding:0 20px}.narrow{max-width:520px}.topbar{background:#fff;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:20}.topbar .wrap{justify-content:space-between;gap:16px;height:68px}.brand,.topbar .wrap{display:flex;align-items:center}.brand{gap:12px;text-decoration:none}.brand img{height:40px;width:auto;display:block}.brand span{font-weight:800;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}.topnav{display:flex;align-items:center;gap:18px;font-size:14.5px;font-weight:600;color:var(--slate);margin-left:auto}.topnav a{text-decoration:none;white-space:nowrap}.topnav a:hover{color:var(--ink)}.topright{display:flex;align-items:center;gap:14px;font-size:14.5px}.topright .who{color:var(--muted);font-weight:500;white-space:nowrap}@media (max-width:1100px){.topright .who{display:none}}@media (max-width:760px){.topbar .wrap{height:auto;flex-wrap:wrap;padding-top:10px;padding-bottom:0;row-gap:4px}.brand img{height:34px}.topright{margin-left:auto}.topnav{order:3;width:100%;margin:0 -20px;padding:6px 20px 10px;gap:20px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-top:1px solid var(--line);width:calc(100% + 40px)}.topnav::-webkit-scrollbar{display:none}}@media (max-width:420px){.brand span{display:none}}main{padding:36px 0 72px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}.card+.card{margin-top:18px}.stack{display:grid;grid-gap:18px;gap:18px}.stack>*{min-width:0}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.between{justify-content:space-between}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}.sub{font-size:15px}.small,.sub{color:var(--slate)}.small{font-size:13px}label{display:block;font-size:13.5px;font-weight:700;margin:0 0 6px}input[type=date],input[type=datetime-local],input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{width:100%;background:#fff;border:1px solid #cfd6e0;border-radius:10px;padding:11px 13px;font-size:15px;color:var(--ink);font-family:inherit}textarea{min-height:120px;resize:vertical}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.field{margin-bottom:14px}.grid2{display:grid;grid-gap:14px;gap:14px;grid-template-columns:1fr 1fr}@media (max-width:640px){.grid2{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:700;font-size:14.5px;padding:11px 18px;border-radius:10px;border:1px solid transparent;cursor:pointer;text-decoration:none}.btn-p{background:var(--ink);color:#fff}.btn-p:hover{background:#1a2740}.btn-o{background:#fff;color:var(--ink);border-color:#cfd6e0}.btn-o:hover{background:var(--soft)}.btn-d{background:#fff;color:var(--danger);border-color:#f1c2bd}.btn-d:hover{background:#fef3f2}.btn-s{padding:7px 12px;font-size:13px;border-radius:8px}.btn:disabled{opacity:.55;cursor:wait}.btn-block{width:100%}.msg{border-radius:10px;padding:11px 14px;font-size:14px;margin:0 0 14px}.msg-err{background:#fef3f2;border:1px solid #f1c2bd;color:#7a1f16}.msg-ok{background:#f0f9ef;border:1px solid #bfe3bc;color:#1e4c1b}.msg-info{background:#eef6fc;border:1px solid #bfdcf0;color:#164a6b}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14.5px}th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--slate);padding:10px 12px;white-space:nowrap}td,th{border-bottom:1px solid var(--line)}td{padding:12px;vertical-align:middle}tr:last-child td{border-bottom:0}td.actions{white-space:nowrap;text-align:right}td.actions .btn{margin-left:6px}.pill{display:inline-block;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}.pill-ok{background:#e6f5e5;color:#1e5c1b}.pill-wait{background:#fff4d6;color:#7a5200}.pill-off{background:#eef1f5;color:var(--slate)}.pill-err{background:#fdecea;color:#7a1f16}.stats{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(3,1fr)}@media (max-width:640px){.stats{grid-template-columns:1fr}}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.stat b{display:block;font-size:30px;font-weight:800;line-height:1.1}.stat span{font-size:13.5px}.empty,.stat span{color:var(--slate)}.empty{text-align:center;padding:34px 16px}.crumb{font-size:13.5px;color:var(--slate);margin-bottom:10px}.crumb a{text-decoration:none}.crumb a:hover{text-decoration:underline}.authpage{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:40px 0}.authpage .logo{display:block;height:52px;width:auto;margin:0 auto 22px;mix-blend-mode:multiply}.authpage h1{font-size:23px;text-align:center;margin-bottom:6px}.authpage .sub{text-align:center;margin-bottom:22px}.authpage .card{padding:32px 34px}@media (max-width:640px){.authpage .card{padding:22px 18px}}.authfoot{text-align:center;margin-top:16px;font-size:13.5px;color:var(--slate)}a.coursecard{display:block;text-decoration:none;transition:box-shadow .15s,transform .15s}a.coursecard:hover{box-shadow:0 8px 24px rgba(11,18,32,.08);transform:translateY(-1px)}.bar{height:8px;background:#eef1f5;overflow:hidden;margin:12px 0 8px}.bar,.bar i{border-radius:8px}.bar i{display:block;height:100%;background-image:var(--grad)}.modlist{list-style:none;margin:0;padding:0}.modlist li{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.modlist li:last-child{border-bottom:0}.modlist li.locked{color:var(--muted)}.modlist .num{flex:none;width:32px;height:32px;border-radius:50%;background:var(--soft);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13.5px}.modlist .modinfo{flex:1 1;min-width:180px;display:flex;flex-direction:column}.playerframe{background:#f2f5f9;border:1px solid var(--line);border-radius:16px;overflow:hidden}.playerframe iframe{display:block;width:100%;height:620px;border:0}.wrap-wide{max-width:1320px}.lesson{display:grid;grid-template-columns:300px minmax(0,1fr);grid-gap:28px;gap:28px;align-items:start}.lesson-main{min-width:0}.sidebar{position:-webkit-sticky;position:sticky;top:88px;max-height:calc(100vh - 108px);overflow-y:auto;padding-right:4px}.sb-progress{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 18px 12px;margin-bottom:18px;font-size:14.5px;color:var(--slate)}.sb-progress b{color:var(--ink);font-size:15px}.sb-progress b span{color:var(--muted);font-weight:700}.sb-progress .bar{margin:12px 0 4px;height:6px}.sb-section summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:800;font-size:15px;padding:6px 0 10px}.sb-section summary::-webkit-details-marker{display:none}.sb-chev{flex:none;width:28px;height:28px;border-radius:50%;background:#eef1f5;position:relative}.sb-chev:after{content:"";position:absolute;left:10px;top:8px;width:7px;height:7px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg);transition:transform .15s}.sb-section:not([open]) .sb-chev:after{transform:rotate(-45deg);left:9px;top:10px}.sb-section ol{list-style:none;margin:0 0 8px;padding:0 0 0 4px}.sb-section li .sb-row,.sb-section li a{display:flex;align-items:flex-start;gap:11px;padding:9px 10px;border-radius:10px;text-decoration:none;font-size:14px}.sb-section li a:hover{background:#eef1f5}.sb-section li.current a{background:#fff;box-shadow:inset 0 0 0 1px var(--line);font-weight:700}.sb-section li.locked .sb-row{color:var(--muted);cursor:not-allowed}.sb-txt{display:flex;flex-direction:column;min-width:0}.sb-title{line-height:1.35}.sb-dur{font-size:12px;color:var(--muted);font-weight:500}.sb-ico{flex:none;width:20px;height:20px;border-radius:50%;margin-top:1px;display:inline-flex;align-items:center;justify-content:center}.sb-done{background:var(--green);color:#fff}.sb-todo{border:2px solid #cfd6e0}.sb-half{border:2px solid var(--blue);background:conic-gradient(var(--blue) 0 50%,transparent 50% 100%)}.sb-lock{color:var(--muted)}@media (max-width:960px){.lesson{grid-template-columns:1fr}.sidebar{position:static;max-height:none;order:2}}@media (max-width:640px){main{padding:22px 0 56px}.wrap{padding:0 14px}@media (max-width:760px){.topnav{margin:0 -14px;padding:6px 14px 10px;width:calc(100% + 28px)}}h1{font-size:23px}.card{padding:18px 16px;border-radius:14px}.playerframe{border-radius:12px;margin:0 -6px}.btn{padding:12px 16px}.row.between>.btn,.row.between>a.btn{width:100%}.modlist li{gap:10px}.modlist li .btn{margin-left:42px}td,th{padding:10px 8px}}.quiz-q{border:1px solid var(--line);margin:0;min-width:0}.quiz-q legend{float:left;width:100%;display:flex;gap:12px;align-items:flex-start;font-weight:700;font-size:16.5px;line-height:1.4;margin-bottom:14px;padding:0}.quiz-q legend+*{clear:both}.quiz-n{flex:none;width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;font-size:13px;display:inline-flex;align-items:center;justify-content:center;margin-top:-1px}.quiz-opt{display:flex;gap:12px;align-items:flex-start;font-weight:500;font-size:15px;line-height:1.45;margin:0 0 8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:background .12s,border-color .12s}.quiz-opt:hover{background:var(--soft)}.quiz-opt.on{border-color:var(--blue);background:#eef6fc}.quiz-opt input{margin-top:3px;flex:none;width:18px;height:18px;accent-color:var(--blue)}.quiz-submit{position:-webkit-sticky;position:sticky;bottom:0;background:rgba(246,248,251,.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:12px 0}.verify dl{display:grid;grid-template-columns:max-content 1fr;grid-gap:10px 18px;gap:10px 18px;margin:0;font-size:15px}.verify dt{color:var(--slate);font-weight:600}.verify dd{margin:0;font-weight:700}@media (max-width:480px){.verify dl{grid-template-columns:1fr;gap:2px}.verify dd{margin-bottom:10px}}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px 14px;gap:12px 14px;align-items:end}.filters .field{margin:0}.stats-6{grid-template-columns:repeat(3,1fr)}@media (max-width:640px){.stats-6{grid-template-columns:1fr 1fr}.stats-6 .stat b{font-size:24px}}.grid-report{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-gap:18px;gap:18px}.grid-report .card+.card{margin-top:0}@media (max-width:860px){.grid-report{grid-template-columns:1fr}}.chart{width:100%;height:auto;display:block}.chart-ax{font-size:11px;fill:#94a3b8;font-family:inherit}.barlist{list-style:none;margin:0;padding:0;display:grid;grid-gap:14px;gap:14px}.barlist-top{display:flex;justify-content:space-between;gap:12px;font-size:14px;margin-bottom:5px}.barlist-top span{min-width:0}.barlist-top b{white-space:nowrap}.barlist-track{height:10px;background:#eef1f5;border-radius:10px;overflow:hidden}.barlist-track i{display:block;height:100%;border-radius:10px}.donut{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.donut svg{width:150px;height:150px;flex:none}.donut-c{font-size:24px;font-weight:800;fill:var(--ink)}.donut-c,.donut-s{font-family:inherit}.donut-s{font-size:10px;fill:var(--slate)}.donut ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:7px;gap:7px;font-size:14px}.donut li{display:flex;align-items:center;gap:8px}.donut li i{width:12px;height:12px;border-radius:3px;flex:none}.donut li b{margin-left:auto;padding-left:10px}.minibar{height:7px;background:#eef1f5;border-radius:7px;overflow:hidden;margin-bottom:3px}.minibar i{display:block;height:100%;background-image:var(--grad);border-radius:7px}.nowrap{white-space:nowrap}.table-log td{vertical-align:top}.ev{display:inline-block;font-size:12.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:#eef1f5;color:var(--slate);white-space:nowrap}.ev-login,.ev-logout,.ev-password{background:#eef6fc;color:#164a6b}.ev-corso,.ev-modulo{background:#f0f9ef;color:#1e4c1b}.ev-attestato,.ev-test{background:#fff4d6;color:#7a5200}.ev-scorm{background:#fdecea;color:#7a1f16}.timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--line)}.timeline li{position:relative;padding:0 0 14px 14px;font-size:14.5px}.timeline li:before{content:"";position:absolute;left:-25px;top:5px;width:12px;height:12px;border-radius:50%;background:#cfd6e0;border:2px solid #fff}.timeline li.tl-corso:before,.timeline li.tl-modulo:before{background:var(--green)}.timeline li.tl-attestato:before,.timeline li.tl-test:before{background:#e8a72a}.timeline li.tl-login:before,.timeline li.tl-logout:before,.timeline li.tl-password:before{background:var(--blue)}.timeline li.tl-scorm:before{background:var(--red)}.tl-time{display:block;font-size:12.5px;color:var(--muted)}.tl-detail{display:block;font-size:13px;color:var(--slate)}@media (max-width:640px){.tablewrap table:not(.table-log){min-width:600px}.table-log thead{display:none}.table-log,.table-log tbody,.table-log td,.table-log tr{display:block;width:100%}.table-log tr{padding:10px 0;border-bottom:1px solid var(--line)}.table-log tr:last-child{border-bottom:0}.table-log td{border:0;padding:2px 0}.table-log td:nth-child(3){margin:4px 0}}.pub{padding-top:0}.hero{background:#fff;border-bottom:1px solid var(--line);padding:44px 0 40px;margin-bottom:34px;position:relative}.hero:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background-image:var(--grad)}.hero h1{font-size:36px;max-width:760px;margin:8px 0 12px}.hero .sub{font-size:17px;max-width:720px}.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:22px;gap:22px}.ccard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;text-decoration:none;transition:box-shadow .15s,transform .15s}.ccard:hover{box-shadow:0 12px 30px rgba(11,18,32,.09);transform:translateY(-2px)}.ccard-cover{position:relative;aspect-ratio:16/9;background:var(--soft)}.ccard-cover img,.cp-cover img{width:100%;height:100%;object-fit:cover;display:block}.badge-free{position:absolute;top:12px;left:12px;background:var(--green);color:#fff;font-weight:800;font-size:12.5px;letter-spacing:.04em;padding:5px 11px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.15)}.ccard-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px;flex:1 1}.ccard-body h2{font-size:19px}.ccard-body .sub{font-size:14.5px}.ccard-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--slate);margin-top:auto;padding-top:6px}.ccard-meta span:before{content:"•";color:var(--blue);margin-right:6px}.ccard-cta{align-self:flex-start;margin-top:6px}.cover-fallback{width:100%;height:100%;display:flex;align-items:flex-end;padding:20px;background:linear-gradient(135deg,#0b1220,#1d3550);position:relative}.cover-fallback:after{content:"";position:absolute;left:0;right:0;top:0;height:5px;background-image:var(--grad)}.cover-fallback span{color:#fff;font-weight:800;font-size:22px;line-height:1.2}.course-pub{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:28px;gap:28px;align-items:start}.cp-cover{aspect-ratio:16/9;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--soft)}.cp-side{position:-webkit-sticky;position:sticky;top:92px}.signup-card h2{font-size:21px}.lead{font-size:17.5px;color:var(--ink);line-height:1.5;margin-top:10px}.facts{list-style:none;padding:0;margin:16px 0 0;display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.facts li{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:14px;color:var(--slate)}.facts b{color:var(--ink)}.check{display:flex;gap:10px;align-items:flex-start;font-weight:500;font-size:13.5px;line-height:1.45;color:var(--slate);margin:4px 0 16px}.check input{margin-top:3px;width:17px;height:17px;flex:none;accent-color:var(--blue)}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.pubfoot{border-top:1px solid var(--line);background:#fff;padding:22px 0;font-size:13.5px;color:var(--slate)}.pubfoot a{text-decoration:none}.pubfoot a:hover{text-decoration:underline}@media (max-width:900px){.course-pub{grid-template-columns:1fr}.cp-side{position:static}}@media (max-width:640px){.hero{padding:28px 0 26px;margin-bottom:22px}.hero h1{font-size:27px}.hero .sub{font-size:15.5px}.catalog,.facts{grid-template-columns:1fr}.lead{font-size:16px}}a.coursecard.with-cover{display:grid;grid-template-columns:240px minmax(0,1fr);grid-gap:20px;gap:20px;align-items:center}.coursecard-cover{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;display:block}.course-head.with-cover{display:grid;grid-template-columns:280px minmax(0,1fr);grid-gap:24px;gap:24px;align-items:center}.course-head img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:14px;border:1px solid var(--line)}@media (max-width:640px){.course-head.with-cover,a.coursecard.with-cover{grid-template-columns:1fr;gap:14px}}.cover-admin{display:grid;grid-template-columns:280px minmax(0,1fr);grid-gap:20px;gap:20px;align-items:center}.cover-frame{aspect-ratio:16/9;border-radius:12px;border:1px dashed #cfd6e0;background:var(--soft);overflow:hidden;display:flex;align-items:center;justify-content:center}.cover-frame img{width:100%;height:100%;object-fit:cover}@media (max-width:640px){.cover-admin{grid-template-columns:1fr}}.opt-edit{display:flex;gap:10px;align-items:center;margin-bottom:8px;padding:6px 8px;border-radius:10px;border:1px solid transparent}.opt-edit.ok{background:#f0f9ef;border-color:#bfe3bc}.opt-edit input[type=text]{flex:1 1;padding:9px 11px}.opt-radio{margin:0;display:flex}.opt-radio input{width:20px;height:20px;accent-color:var(--green)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.btn-ok{background:var(--green);color:#fff}.btn-ok:hover{background:#33912f}.btn-d-full{background:var(--danger);color:#fff}.decide{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.decide .btn{flex:1 1;min-width:140px}.navbadge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:5px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;font-weight:800;vertical-align:1px}.card.attn{border-color:#f3c9a8;background:#fff8f1}.ctabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line);margin-top:-4px;-webkit-overflow-scrolling:touch}.ctabs::-webkit-scrollbar{display:none}.ctabs a{flex:none;text-decoration:none;font-weight:700;font-size:14.5px;color:var(--slate);padding:10px;border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}.ctabs a.on,.ctabs a:hover{color:var(--ink)}.ctabs a.on{border-bottom-color:var(--blue)}.tab-intro{color:var(--slate);font-size:15px;margin:-4px 0 0}.kpis{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(4,1fr)}@media (max-width:900px){.kpis{grid-template-columns:1fr 1fr}}.quick{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(3,1fr)}@media (max-width:760px){.quick{grid-template-columns:1fr}}.quick a{display:block;text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;transition:box-shadow .15s}.quick a:hover{box-shadow:0 8px 22px rgba(11,18,32,.07)}.quick b{display:block;font-size:15.5px;margin-bottom:3px}.quick span{font-size:13.5px;color:var(--slate)}.linkbtn{background:none;border:0;padding:0;font:inherit;font-size:13px;color:var(--blue);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.linkbtn:disabled{opacity:.5}.dropzone{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;text-align:center;border:2px dashed #cfd6e0;border-radius:14px;padding:26px 18px;background:var(--soft);cursor:pointer;transition:border-color .15s,background .15s;margin:0;font-weight:500}.dropzone b{font-size:15px}.dropzone span{font-size:13px;color:var(--slate)}.dropzone.over,.dropzone:hover{border-color:var(--blue);background:#eef6fc}.fold summary{cursor:pointer;font-weight:700;font-size:14.5px;color:var(--blue)}.grid-prog .gc{text-align:center;width:46px;padding-left:4px;padding-right:4px}.gcell{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;font-weight:800;font-size:14px;border:1px solid var(--line);background:#fff;color:var(--muted)}.gcell.done{background:var(--green);border-color:var(--green);color:#fff}.gcell.half{background:#eef6fc;border-color:#bfdcf0;color:var(--blue)}button.gcell{cursor:pointer;font-family:inherit}button.gcell:hover{border-color:var(--ink);color:var(--ink)}.grid-prog tr.sel td{background:#f5f9fd}.scale{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:8px;gap:8px}.scale-opt{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0;padding:10px 4px;border:1px solid var(--line);border-radius:12px;cursor:pointer;text-align:center;font-weight:500}.scale-opt input{position:absolute;opacity:0;pointer-events:none}.scale-opt b{font-size:18px}.scale-opt span{font-size:11.5px;color:var(--slate);line-height:1.2}.scale-opt:hover{background:var(--soft)}.scale-opt.on{border-color:var(--blue);background:#eef6fc}@media (max-width:420px){.scale-opt span{font-size:10px}}.sres{border-bottom:1px solid var(--line);padding-bottom:16px}.sres:last-child{border-bottom:0}.sres-texts{margin:8px 0 0;padding-left:18px;color:var(--slate);font-size:14px;display:grid;grid-gap:6px;gap:6px}.pdfview{width:100%;height:78vh;min-height:420px;border:1px solid var(--line)}.imgview,.pdfview{border-radius:14px;background:#fff}.imgview{max-width:100%;height:auto;border:1px solid var(--line)}.cgroup+.cgroup{margin-top:18px}.cgroup-head{display:flex;align-items:center;gap:12px;padding:4px 0 8px;border-bottom:1px solid var(--line);font-size:14.5px}.clist{list-style:none;margin:0;padding:0}.clist li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.clist li:last-child{border-bottom:0}.cico{flex:none;width:34px;height:34px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;color:#fff}.k-scorm,.k-video{background:var(--blue)}.k-file{background:#7c8a9e}.k-gradimento{background:var(--green)}.cinfo{flex:1 1;min-width:220px;display:flex;flex-direction:column;gap:2px}.cact{white-space:nowrap}.cact .btn{margin-left:6px}.inline-check{display:inline-flex;align-items:center;gap:4px;font-weight:500;font-size:13px;margin:0;cursor:pointer}.uplist{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-gap:8px;gap:8px}.uplist li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);grid-gap:12px;gap:12px;align-items:center;font-size:14px}.uplist .upname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.uplist li.errore .small{color:var(--danger)}.upbar{height:8px;background:#eef1f5;border-radius:8px;overflow:hidden}.upbar i{display:block;height:100%;background:var(--blue);transition:width .2s}.modal-bg{position:fixed;inset:0;background:rgba(11,18,32,.45);z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:6vh 14px;overflow-y:auto}.modal{background:#fff;border-radius:18px;padding:22px;width:100%;max-width:860px;box-shadow:0 30px 80px rgba(11,18,32,.3)}.tiles{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px}@media (max-width:640px){.tiles,.uplist li{grid-template-columns:1fr}.uplist li{gap:4px}}.tile{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;grid-column-gap:12px;column-gap:12px;align-items:center;text-align:left;background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:14px 16px;cursor:pointer;font:inherit;color:var(--ink)}.tile:hover{border-color:var(--blue);background:#eef6fc}.tile-ico{grid-row:span 2;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px}.tile b{font-size:15.5px}.tile span:last-child{font-size:13px;color:var(--slate);line-height:1.4}.linkurl{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.linkform{border-top:1px solid var(--line);padding-top:16px}.ffield{display:grid;grid-template-columns:minmax(0,1fr) 190px auto auto;grid-gap:8px;gap:8px;align-items:center;margin-bottom:8px}.ffield .ffield-opts{grid-column:1/-1}@media (max-width:640px){.ffield{grid-template-columns:1fr 1fr}}.gcell.over{background:#fdecea;border-color:#f1c2bd;color:var(--danger)}.catgroup{font-size:20px;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line)}.k-test{background:#6f5bd3}.k-live{background:#d9480f}.k-aula{background:#0f766e}.k-accettazione{background:#7c2d12}.acc-text{max-height:420px;overflow:auto;white-space:pre-line;line-height:1.6;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#fff}.card.flash{outline:3px solid #b45309;outline-offset:2px;transition:outline-color 1.2s}.liveroom{min-height:560px;border:1px solid var(--line);border-radius:14px;background:#0b1220;overflow:hidden}.liveroom>div{width:100%}.liveroom:-webkit-full-screen{height:100vh!important;border:0;border-radius:0}.liveroom:fullscreen{height:100vh!important;border:0;border-radius:0}.rbox{border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:14px;min-width:0}.rbox h3{font-size:15.5px}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 10px}.chip{border:0;cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.chip:hover{background:#dfe5ec;color:var(--ink)}.mailprev{background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:12px;font-size:14.5px;overflow-wrap:anywhere}.mailprev-body{white-space:pre-wrap;margin:8px 0 12px}@media (max-width:640px){.rbox{padding:14px 12px}}.ai-h{font-size:15px;font-weight:700;margin:0 0 8px}.ai-list{margin:0;padding-left:18px;display:grid;grid-gap:6px;gap:6px;font-size:15px;overflow-wrap:anywhere}.tutor{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.tutor-title{display:none;align-items:center;gap:10px;font-size:15.5px;font-weight:800;padding:16px 18px 0}.tutor-dot{flex:none;width:10px;height:10px;border-radius:50%;background-image:var(--grad)}.tutor-toggle{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;padding:14px 16px 0 18px;font:inherit;color:var(--ink);text-align:left;cursor:pointer}.tutor-toggle:focus-visible{outline-offset:-3px;border-radius:18px}.tutor-toggle-txt{flex:1 1;min-width:0;display:flex;flex-direction:column}.tutor-toggle-txt b{font-size:15.5px;font-weight:800}.tutor-toggle-txt span{font-size:13px;color:var(--slate)}.tutor-chev{flex:none;width:28px;height:28px;border-radius:50%;background:#eef1f5;position:relative}.tutor-chev:after{content:"";position:absolute;left:10px;top:8px;width:7px;height:7px;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg);transition:transform .15s}.tutor.open .tutor-chev:after{transform:rotate(-135deg);top:12px}.tutor-note{font-size:12px;line-height:1.4;color:var(--slate);padding:8px 18px 14px}.tutor-body{display:none;flex-direction:column;min-height:0;border-top:1px solid var(--line)}.tutor-log,.tutor.open .tutor-body{display:flex}.tutor-log{flex:1 1;flex-direction:column;gap:10px;min-height:180px;max-height:min(60vh,460px);overflow-y:auto;overscroll-behavior:contain;padding:14px 16px}.tutor-log:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.tutor-msg{max-width:90%;padding:9px 12px;border-radius:14px;font-size:14.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.tutor-msg.me{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:4px}.tutor-msg.ai{align-self:flex-start;background:var(--soft);border:1px solid var(--line);border-bottom-left-radius:4px}.tutor-wait{color:var(--slate)}.tutor-wait i{font-style:normal;animation:tutor-wait 1.2s ease-in-out infinite}@keyframes tutor-wait{50%{opacity:.2}}@media (prefers-reduced-motion:reduce){.tutor-wait i{animation:none}}.tutor-empty{display:grid;grid-gap:8px;gap:8px;margin:auto 0;font-size:14px;color:var(--slate)}.tutor-starter{text-align:left;font:inherit;font-size:14px;font-weight:600;color:var(--ink);background:var(--soft);border:1px solid var(--line);border-radius:12px;padding:9px 12px;cursor:pointer;transition:background .12s,border-color .12s}.tutor-starter:hover{border-color:var(--blue);background:#eef6fc}.tutor-starter:disabled{opacity:.55;cursor:wait}.tutor-err{margin:0 16px 10px;font-size:13.5px}.tutor-form{border-top:1px solid var(--line);padding:12px 16px 14px}.tutor-form textarea{display:block;min-height:0;max-height:140px;resize:none;padding:9px 11px;line-height:1.45}.tutor-actions{display:flex;align-items:center;gap:10px;margin-top:8px}.tutor-actions .linkbtn{margin-right:auto;text-align:left}.tutor-count{font-size:12px;color:var(--slate);white-space:nowrap}.tutor-count.full{color:var(--danger);font-weight:700}@media (min-width:961px) and (max-width:1279px){.lesson.has-tutor>.sidebar{grid-row:1/span 2}.lesson.has-tutor>.tutor{grid-column:2}}@media (min-width:1280px){.wrap-wide.lesson.has-tutor,body:has(.lesson.has-tutor) .topbar .wrap-wide{max-width:1760px}.lesson.has-tutor{grid-template-columns:clamp(230px,18vw,300px) minmax(0,1fr) clamp(300px,23vw,380px);gap:24px}.lesson.has-tutor>.tutor{position:-webkit-sticky;position:sticky;top:88px;height:min(calc(100vh - 108px),860px)}.tutor-title{display:flex}.tutor-toggle{display:none}.tutor .tutor-body{display:flex;flex:1 1}.tutor-log{min-height:0;max-height:none}}@media (max-width:640px){.tutor{border-radius:14px}.tutor-toggle{padding:12px 12px 0 14px}.tutor-note{padding:8px 14px 12px}.tutor-log{padding:12px}.tutor-err{margin:0 12px 10px}.tutor-form{padding:10px 12px 12px}.tutor-form textarea{font-size:16px}}.gcell.done.forced{background:#fff;color:var(--green);border:2px dashed var(--green)}button.gcell.done.forced:hover{border-color:var(--danger);color:var(--danger)}.btn.disabled{opacity:.5;pointer-events:none}