:root{--text:#1a1a1a;--bg:#fff;--accent:#2563eb;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#e5e5e5;--bg:#121212;--accent:#60a5fa}}*{box-sizing:border-box}body{min-height:100dvh;margin:0}#root{max-width:480px;min-height:100dvh;padding:16px;padding-bottom:env(safe-area-inset-bottom,16px);margin:0 auto}@media (width>=768px){#root{max-width:100%;padding:24px}}button,input,select{font:inherit}:root{--card:#fff;--muted:#6b7280;--line:#e6e8eb;--pill-bg:#eef1f4;--ok-bg:#e5f6ec;--ok-ink:#1f8a4c;--avatar-bg:#dfe8ff}@media (prefers-color-scheme:dark){:root{--card:#1c1c1e;--muted:#9aa0a6;--line:#2a2a2d;--pill-bg:#2a2a2d;--ok-bg:#12321f;--ok-ink:#4ade80;--avatar-bg:#1e2b52}}.app{flex-direction:column;min-height:calc(100dvh - 32px);display:flex}.topbar{background:var(--bg);z-index:5;padding-bottom:10px;position:sticky;top:0}.topbar h1{margin:0 0 10px;font-size:18px;font-weight:600}.search{border:1px solid var(--line);background:var(--card);width:100%;color:var(--text);border-radius:12px;outline:none;padding:11px 14px}.search:focus{border-color:var(--accent)}.content{flex:1}.list{margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:11px 4px;display:flex}.avatar{background:var(--avatar-bg);width:40px;height:40px;color:var(--accent);border-radius:50%;flex:0 0 40px;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.avatar.act{background:var(--pill-bg);color:var(--muted)}.row-main{flex-direction:column;flex:1;min-width:0;display:flex}.row-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.row-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.badge{white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:600}.badge.ok{background:var(--ok-bg);color:var(--ok-ink)}.badge.muted{background:var(--pill-bg);color:var(--muted)}.stato{text-align:center;color:var(--muted);padding:40px 0}.stato.errore{color:#c0392b}.tabbar{background:var(--bg);border-top:1px solid var(--line);gap:4px;margin-top:8px;padding-top:6px;display:flex;position:sticky;bottom:0}.tab{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 0 4px;font-size:11px;font-weight:600;display:flex}.tab .tab-icon{font-size:20px;line-height:1}.tab.active{color:var(--accent)}.topbar-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.logout{border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600}.row-cliccabile{padding:0}.row-btn{width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;align-items:center;gap:12px;padding:11px 4px;display:flex}.apri{color:var(--muted);font-size:20px}.sync{margin:4px 0 16px}.sync-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:14px;width:100%;padding:16px;font-size:16px;font-weight:600}.sync-btn:disabled{opacity:.65;cursor:default}.sync-msg{color:var(--muted);flex-direction:column;gap:2px;margin:8px 0 0;font-size:12px;display:flex}.sync-msg.ok{color:var(--ok-ink)}.sync-msg.errore{color:#c0392b}.sync-conteggi{color:var(--muted)}.appello h1{margin:6px 0 10px;font-size:17px}.contatore{color:var(--muted);font-size:12px;font-weight:600}.riga-controlli{gap:10px;display:flex}.riga-controlli label{color:var(--muted);flex-direction:column;flex:1;gap:4px;font-size:12px;font-weight:600;display:flex}.riga-controlli input,.riga-controlli select{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;padding:9px 10px}.riga-appello{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 4px;display:flex}.riga-appello.presente{background:var(--ok-bg);border-radius:10px;padding-left:8px;padding-right:8px}.riga-nome{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:10px;min-height:48px;padding:10px 4px;font-size:16px;font-weight:600;display:flex}.riga-nome:active{opacity:.6}.segno{border:2px solid var(--line);color:#fff;border-radius:8px;flex:0 0 26px;justify-content:center;align-items:center;width:26px;height:26px;font-size:16px;display:flex}.riga-appello.presente .segno{background:var(--ok-ink);border-color:var(--ok-ink)}.nome{flex:1;min-width:0}.riga-extra{gap:8px;padding-left:36px;display:flex}.chip{font:inherit;color:var(--muted);background:var(--pill-bg);cursor:pointer;border:none;border-radius:999px;padding:7px 14px;font-size:13px}.chip.rimuovi{color:var(--muted);background:0 0;margin-left:auto;font-size:12px}.chip.rimuovi.conferma{color:#c0392b;background:#fdecea;font-weight:600}.chip.attivo{background:var(--ok-bg);color:var(--ok-ink);font-weight:600}.note-riga{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;margin-left:36px;padding:8px 10px;font-size:14px}.note-lezione{flex-direction:column;gap:8px;margin:16px 0 8px;display:flex}.note-lezione label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.note-lezione textarea{border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;resize:vertical;border-radius:10px;padding:10px}.note-lezione button,.secondario{border:1px solid var(--line);background:var(--card);color:var(--accent);cursor:pointer;border-radius:12px;width:100%;margin-top:8px;padding:11px 14px;font-weight:600}.aggiungi{flex-direction:column;gap:8px;margin-top:12px;display:flex}.aggiungi input{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:12px;padding:11px 14px}.risultati{margin:0;padding:0;list-style:none}.risultati button{width:100%;color:inherit;text-align:left;border:none;border-bottom:1px solid var(--line);cursor:pointer;font:inherit;background:0 0;flex-direction:column;padding:9px 4px;display:flex}.toast{background:var(--ok-bg);color:var(--ok-ink);border-radius:10px;margin:8px 0 0;padding:8px 12px;font-size:13px}.report .riga-controlli{margin-bottom:12px}.kpi{gap:8px;margin-bottom:12px;display:flex}.kpi>div{background:var(--pill-bg);border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px;display:flex}.kpi strong{font-size:20px;font-weight:600}.kpi span{color:var(--muted);font-size:11px}.segmenti{background:var(--pill-bg);border-radius:10px;gap:4px;margin-bottom:8px;padding:3px;display:flex}.seg{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:8px 4px;font-size:13px;font-weight:600}.seg.attivo{background:var(--card);color:var(--accent)}.sotto-titolo{color:var(--muted);margin:14px 0 2px;font-size:13px;font-weight:600}.materiali-badge{gap:4px;display:flex}.login{flex-direction:column;max-width:340px;margin:12dvh auto 0;display:flex}.login h1{text-align:center;margin:0 0 20px;font-size:22px}.login form{flex-direction:column;gap:12px;display:flex}.login input{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:12px;outline:none;padding:12px 14px}.login input:focus{border-color:var(--accent)}.login button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;padding:12px 14px;font-weight:600}.login button:disabled{opacity:.6;cursor:default}.login-hint{color:var(--muted);margin:0;font-size:14px}.login-secret{background:var(--pill-bg);word-break:break-all;border-radius:8px;margin-top:6px;padding:6px 8px;font-size:13px;display:inline-block}.login-info{color:var(--ok-ink);background:var(--ok-bg);border-radius:10px;padding:10px 12px;font-size:14px}.login-error{color:#c0392b;font-size:14px}.login-mfa-setup{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.login-qr-container{background:var(--card);border:1px solid var(--line);border-radius:12px;justify-content:center;padding:16px;display:flex}.login-qr-container canvas{display:block}.login-hint-small{color:var(--muted);margin:0;font-size:13px}@media (width>=768px){.topbar{padding-bottom:16px}.topbar h1{margin-bottom:16px;font-size:24px}.row{padding:14px 8px}.avatar{flex:0 0 48px;width:48px;height:48px;font-size:16px}.row-title{font-size:16px}.row-meta{font-size:14px}.login{max-width:420px;margin:10dvh auto 0}.login h1{margin-bottom:28px;font-size:28px}.login form{gap:14px}.login input,.login button{padding:14px 16px;font-size:16px}.login-hint{font-size:15px}.login-secret{padding:8px 12px;font-size:14px}.search{padding:13px 16px;font-size:16px}}
