@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/sora-latin-ext-400-normal-Twk1CgKs.woff2)format("woff2"),url(/assets/sora-latin-ext-400-normal-BmhJC382.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/sora-latin-400-normal-CRt88UEn.woff2)format("woff2"),url(/assets/sora-latin-400-normal-OW7qkl5a.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sora-latin-ext-600-normal-Cue1zdhl.woff2)format("woff2"),url(/assets/sora-latin-ext-600-normal-DLOJK0Ta.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sora-latin-600-normal-Cdg4DaK0.woff2)format("woff2"),url(/assets/sora-latin-600-normal-1_7fyUAY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/sora-latin-ext-700-normal-DM0oy5s8.woff2)format("woff2"),url(/assets/sora-latin-ext-700-normal-Oc7uZIYt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/sora-latin-700-normal-9waGdLWo.woff2)format("woff2"),url(/assets/sora-latin-700-normal-BKPfQAnC.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--navy:#16204a;--navy-2:#1e2e6b;--indigo:#3b2e86;--blue:#3b82f6;--blue-soft:#6fa8ff;--violet:#8b5cf6;--violet-soft:#a78bfa;--teal:#14b8a6;--danger:#dc2626;--bg:#f4f6fc;--surface:#fff;--text:#121833;--muted:#5b6480;--border:#e1e5f2;--accent:var(--blue);--accent-grad:linear-gradient(135deg, var(--blue) 0%, var(--violet) 100%);--radius:16px;--tabbar-h:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-text-size-adjust:100%;font-family:Sora,system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f1535;--surface:#182150;--text:#edf2ff;--muted:#a3acd0;--border:#2a356e;--accent:var(--blue-soft)}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;line-height:1.45}body{-webkit-tap-highlight-color:transparent;min-height:100dvh}a{color:var(--accent)}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.6rem;font-weight:700}h2{font-size:1.1rem;font-weight:600}h3{margin:4px 0;font-size:1rem;font-weight:600}p{margin:6px 0}.content{max-width:1100px;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 24px);margin:0 auto}.muted{color:var(--muted)}.small{font-size:.85rem}.block{display:block}.center{text-align:center}.row{align-items:center;display:flex}.between{justify-content:space-between;gap:8px}.gap{gap:8px}.wrap{flex-wrap:wrap}.grow{flex:1}.page-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:14px 16px}.card-link{color:inherit;text-decoration:none;display:block}.card-link:active{transform:scale(.99)}.list{margin:0;padding:0;list-style:none}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 16px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent-grad);color:#fff;border-color:#0000}.btn-ghost{background:0 0}.btn-small{min-height:36px;padding:6px 12px;font-size:.85rem}.btn-block{width:100%;margin:8px 0}.btn-on{border-color:var(--violet);background:color-mix(in srgb, var(--violet) 15%, var(--surface))}.danger{color:var(--danger)}input,textarea,select{font:inherit;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:12px;padding:10px 12px;font-size:16px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--violet);flex:none}.form{flex-direction:column;gap:12px;display:flex}.form label{flex-direction:column;gap:6px;font-size:.9rem;font-weight:600;display:flex}.form label.check,label.check{flex-direction:row;align-items:center;gap:8px;font-weight:400}.form-error{color:var(--danger);font-size:.9rem}.search{margin-bottom:12px}.chip{background:var(--border);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-block}.chip-relevant{color:#166534;background:#dcfce7}.chip-potential{color:#92400e;background:#fef3c7}.chip-not_relevant{color:#374151;background:#e5e7eb}.cat-verifica{--cat:#ef4444}.cat-interrogazione{--cat:#f97316}.cat-pagamento{--cat:#14b8a6}.cat-uscita_didattica{--cat:#3b82f6}.cat-avviso{--cat:#8b5cf6}.cat-altro{--cat:#64748b}.chip[class*=cat-]{background:color-mix(in srgb, var(--cat) 18%, transparent);color:var(--cat)}.event{border-left:4px solid var(--cat,var(--border))}.chips{scrollbar-width:none;gap:8px;margin-bottom:8px;padding-bottom:8px;display:flex;overflow-x:auto}.filter{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);white-space:nowrap;cursor:pointer;border-radius:999px;padding:6px 14px;font-size:.85rem}.filter.on{background:var(--accent-grad);color:#fff;border-color:#0000}.month{text-transform:capitalize;color:var(--muted);margin:18px 0 8px;font-size:.95rem}.loading{color:var(--muted);align-items:center;gap:10px;padding:16px 0;display:flex}.spinner{border:2px solid var(--border);border-top-color:var(--violet);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error{background:color-mix(in srgb, var(--danger) 10%, var(--surface));border-radius:var(--radius);margin:12px 0;padding:12px 16px}.empty{color:var(--muted);text-align:center;padding:16px 0}.login{max-width:420px;padding:calc(env(safe-area-inset-top) + 48px) 16px 32px;text-align:center;margin:0 auto}.login .form{text-align:left;margin-top:16px}.login-logo{border-radius:22px}.back{margin-bottom:10px;font-weight:600;text-decoration:none;display:inline-block}.detail-title{margin-bottom:14px;font-size:1.3rem}.ai-box{border-color:color-mix(in srgb, var(--violet) 40%, var(--border));border-image:}.summary{white-space:pre-line}.deadlines{flex-direction:column;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.deadlines li{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:8px;display:flex}.pdf-pages{flex-direction:column;align-items:center;gap:10px;margin-top:14px;display:flex}.pdf-page{background:#fff;border-radius:6px;max-width:100%;box-shadow:0 1px 6px #00000026}.columns{scroll-snap-type:x mandatory;grid-auto-columns:minmax(280px,88%);grid-auto-flow:column;gap:12px;padding-bottom:8px;display:grid;overflow-x:auto}.column{scroll-snap-align:start}.column-title{margin-bottom:10px}.count{color:var(--muted);font-size:.8rem}@media (min-width:900px){.columns{grid-template-columns:repeat(3,1fr);grid-auto-flow:row;overflow:visible}}.proposal-text{white-space:pre-line}.rep-actions{border-top:1px dashed var(--border);margin-top:8px;padding-top:8px}.comments{border-top:1px solid var(--border);margin-top:10px;padding-top:8px}.comment{border-bottom:1px solid var(--border);padding:6px 0}.comment-form{flex-direction:column;gap:6px;margin-top:8px;display:flex}.highlight{background:var(--accent-grad);color:#fff;border:none}.teacher-desk{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:10px;max-width:200px;margin:12px auto;padding:6px;font-size:.8rem;font-weight:600}.seat-grid{gap:8px;display:grid;overflow-x:auto}.desk{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:4px;min-width:0;padding:6px;display:flex}.desk-empty{opacity:.4;background:0 0;border-style:dashed;min-height:48px}.desk-mine{border-color:var(--violet);box-shadow:0 0 0 2px color-mix(in srgb, var(--violet) 40%, transparent)}.seat{text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.seat-me{color:var(--violet);font-weight:700}.switch{justify-content:space-between;align-items:center;gap:12px;display:flex;flex-direction:row!important;font-weight:400!important}.tabbar{background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{height:var(--tabbar-h);color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:1.2rem;text-decoration:none;display:flex}.tabbar a.active{color:var(--violet)}.tab-label{font-size:.68rem;font-weight:600}.update-banner{z-index:20;padding:calc(env(safe-area-inset-top) + 8px) 16px 8px;background:var(--navy);color:#fff;justify-content:center;align-items:center;gap:12px;font-size:.9rem;display:flex;position:sticky;top:0}.install-guide{z-index:30;padding:16px 16px calc(env(safe-area-inset-bottom) + 16px);background:#0f1535b3;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.install-card{background:var(--surface);color:var(--text);text-align:center;border-radius:24px;width:100%;max-width:440px;padding:24px}.install-card ol{text-align:left;flex-direction:column;gap:10px;padding-left:20px;display:flex}.install-icon{border-radius:18px}.share-icon{vertical-align:-4px;width:20px;height:20px;color:var(--blue);margin:0 4px}
