@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");
/* ==========================================================================
   MyLibretto A.L.Fa. — RESTYLE "Libretto Design System"
   Adatta il tema di riferimento (A.L.Fa.-Libretto.html) all'HTML reale dell'app.
   Va caricato DOPO campus.css. Non modifica HTML né JS: solo CSS.
   I selettori usano #app#app per vincere sui fogli esistenti (pieni di !important).
   ========================================================================== */

/* ---------- 01. DESIGN TOKENS (identici al riferimento) ------------------ */
html body.c-ui{
  --font-sans:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --font-numeric:"SF Mono",ui-monospace,"JetBrains Mono",Menlo,monospace;
  --fs-2xs:10px;--fs-xs:11px;--fs-sm:12.5px;--fs-base:14px;--fs-md:15px;--fs-lg:17px;--fs-xl:21px;--fs-2xl:26px;--fs-3xl:31px;
  --fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;
  --lh-tight:1.15;--lh-snug:1.35;--lh-normal:1.55;
  --ls-tight:-0.035em;--ls-snug:-0.02em;--ls-normal:-0.008em;--ls-wide:0.03em;--ls-widest:0.09em;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--sp-9:48px;
  --r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-2xl:26px;--r-pill:999px;
  --shadow-hairline:0 1px 2px rgba(9,9,11,.03);
  --shadow-card:0 1px 3px rgba(9,9,11,.02),0 1px 2px rgba(9,9,11,.02);
  --shadow-pop:0 12px 32px -8px rgba(9,9,11,.14),0 2px 8px rgba(9,9,11,.06);
  --shadow-modal:0 32px 80px -20px rgba(9,9,11,.32),0 8px 24px rgba(9,9,11,.12);
  --shadow-fab:0 8px 20px -6px rgba(29,78,216,.42),0 2px 6px rgba(29,78,216,.18);
  --ease:cubic-bezier(.22,.61,.36,1);--ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:140ms;--dur:220ms;--dur-slow:340ms;
  --app-max:480px;--appbar-h:56px;--bottomnav-h:62px;

  --bg-primary:#ffffff;--bg-subtle:#f8fafc;--bg-card:#ffffff;--bg-card-muted:#f8fafc;--bg-inset:#f1f5f9;--bg-elevated:#ffffff;
  --text-primary:#09090b;--text-secondary:#334155;--text-muted:#64748b;--text-faint:#94a3b8;--text-on-accent:#ffffff;
  --border-color:#e2e8f0;--border-strong:#cbd5e1;--border-subtle:#f1f5f9;
  --accent:#1d4ed8;--accent-hover:#1e40af;--accent-soft:#eff6ff;--accent-soft-text:#1d4ed8;--accent-border:#dbe4fe;--accent-ring:rgba(29,78,216,.22);--accent-line:#1d4ed8;
  --danger:#b91c1c;--danger-soft:#fef2f2;--success:#15803d;
  --track:#eef2f7;--overlay:rgba(9,9,11,.55);--glass:rgba(255,255,255,.78);--skeleton:#f1f5f9;
  --wallet-from:#0b1b4d;--wallet-to:#1d4ed8;--wallet-text:#ffffff;--wallet-muted:rgba(255,255,255,.68);
  --focus-ring:0 0 0 3px var(--accent-ring);

  /* Icone (stesso tratto del riferimento: 24px, stroke 1.7) */
  --i-clock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5V12l3 1.6'/%3E%3C/svg%3E");
  --i-book:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5.5A2.5 2.5 0 0 1 6.5 3H20v15.5H6.5A2.5 2.5 0 0 0 4 21V5.5Z'/%3E%3Cpath d='M4 18.5A2.5 2.5 0 0 1 6.5 16H20'/%3E%3C/svg%3E");
  --i-bus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='3' width='16' height='13' rx='2.5'/%3E%3Cpath d='M4 10h16M8 19l-1.5 2M16 19l1.5 2'/%3E%3Ccircle cx='8' cy='13' r='.6'/%3E%3Ccircle cx='16' cy='13' r='.6'/%3E%3C/svg%3E");
  --i-hourglass:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2.5h12M6 21.5h12M7 2.5v3a5 5 0 0 0 10 0v-3M7 21.5v-3a5 5 0 0 1 10 0v3'/%3E%3C/svg%3E");
  --i-calendar:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4.5' width='18' height='17' rx='2.5'/%3E%3Cpath d='M8 2.5v4M16 2.5v4M3 9.5h18'/%3E%3C/svg%3E");
  --i-timer:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='13.5' r='7.5'/%3E%3Cpath d='M12 10v3.5l2 1.5M9.5 2.5h5M12 2.5V6'/%3E%3C/svg%3E");
  --i-chart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20.5h16M7 16.5v-6M12 16.5V5.5M17 16.5v-9'/%3E%3C/svg%3E");
  --i-food:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3v18M4.5 3v5a2.5 2.5 0 0 0 5 0V3M17.5 21V3c-2.2 1.4-3.5 4.2-3.5 7.5V13h3.5'/%3E%3C/svg%3E");
  --i-cap:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9.2 12 5l9 4.2-9 4.3-9-4.3Z'/%3E%3Cpath d='M7 11.4V16c0 1.4 2.2 2.5 5 2.5s5-1.1 5-2.5v-4.6M21 9.5v4.8'/%3E%3C/svg%3E");
  --i-card:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2.5'/%3E%3Cpath d='M2 10h20M6 15h4'/%3E%3C/svg%3E");
  --i-spark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 3.5 12.8 8.7 18 10.5l-5.2 1.8L11 17.5l-1.8-5.2L4 10.5l5.2-1.8L11 3.5Z'/%3E%3Cpath d='M18.5 15v5M16 17.5h5'/%3E%3C/svg%3E");
  --i-tag:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4 13.4 20.6a2 2 0 0 1-2.8 0L3 13V3h10l7.6 7.6a2 2 0 0 1 0 2.8Z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.3'/%3E%3C/svg%3E");
  --i-vote:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='3.5' width='17' height='17' rx='3'/%3E%3Cpath d='M8 12.3l2.7 2.7L16 9.6'/%3E%3C/svg%3E");
  --i-news:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4.5h13v15H6.5A2.5 2.5 0 0 1 4 17V4.5Z'/%3E%3Cpath d='M17 8.5h3V17a2.5 2.5 0 0 1-2.5 2.5M8 8.5h5M8 12h5M8 15.5h3'/%3E%3C/svg%3E");
  --i-chat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16v12H7l-3 3V4Z'/%3E%3Cpath d='M8 8h8M8 11.5h5'/%3E%3C/svg%3E");
  --i-gear:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M12 2.5v3M12 18.5v3M4.6 4.6l2.1 2.1M17.3 17.3l2.1 2.1M2.5 12h3M18.5 12h3M4.6 19.4l2.1-2.1M17.3 6.7l2.1-2.1'/%3E%3C/svg%3E");
  --i-megaphone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 10.5v3a1 1 0 0 0 1 1h2.5l6 4.5v-14L7 9.5H4.5a1 1 0 0 0-1 1Z'/%3E%3Cpath d='M16.5 9a4 4 0 0 1 0 6M19 6.5a7.5 7.5 0 0 1 0 11'/%3E%3C/svg%3E");
  --i-plus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");
  --i-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  --i-chev-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E");
  --i-chev-d:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --i-arrow-ur:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M8 7h9v9'/%3E%3C/svg%3E");
  --i-euro:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6.5a7 7 0 1 0 0 11M4 10.3h9.5M4 13.7h9.5'/%3E%3C/svg%3E");
  --i-doc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8l-5-5Z'/%3E%3Cpath d='M14 3v5h5M9 13h6M9 17h6'/%3E%3C/svg%3E");
  --i-pen:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.5 3.5 20.5 8.5 8.5 20.5H3.5v-5L15.5 3.5Z'/%3E%3Cpath d='m12.5 6.5 5 5'/%3E%3C/svg%3E");
  --i-globe:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.5 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z'/%3E%3Cpath d='M3.5 12h17M12 3a14 14 0 0 1 0 18 14 14 0 0 1 0-18Z'/%3E%3C/svg%3E");
  --i-case:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2.5'/%3E%3Cpath d='M9 7V5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2M3 12h18'/%3E%3C/svg%3E");
  --i-rays:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v4M12 17v4M4.9 4.9l2.8 2.8M16.3 16.3l2.8 2.8M3 12h4M17 12h4M4.9 19.1l2.8-2.8M16.3 7.7l2.8-2.8'/%3E%3C/svg%3E");
  --i-pin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
  --i-download:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7.5 10.5 12 15l4.5-4.5M4 19.5h16'/%3E%3C/svg%3E");
  --i-trophy:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 4h8v5a4 4 0 0 1-8 0V4ZM8 6H5a3 3 0 0 0 3 4M16 6h3a3 3 0 0 1-3 4M12 13v4M8.5 20.5h7M10 17h4'/%3E%3C/svg%3E");
}
html body.c-ui[data-theme="dark"]{
  --bg-primary:#09090b;--bg-subtle:#050507;--bg-card:#121215;--bg-card-muted:#141418;--bg-inset:#18181b;--bg-elevated:#18181b;
  --text-primary:#ffffff;--text-secondary:#d4d4d8;--text-muted:#a1a1aa;--text-faint:#71717a;--text-on-accent:#ffffff;
  --border-color:#27272a;--border-strong:#3f3f46;--border-subtle:#1f1f23;
  --accent:#3b82f6;--accent-hover:#60a5fa;--accent-soft:rgba(59,130,246,.15);--accent-soft-text:#60a5fa;--accent-border:rgba(59,130,246,.28);--accent-ring:rgba(59,130,246,.32);--accent-line:#3b82f6;
  --danger:#f87171;--danger-soft:rgba(248,113,113,.12);--success:#4ade80;
  --track:#1f1f23;--overlay:rgba(0,0,0,.62);--glass:rgba(9,9,11,.72);--skeleton:#1c1c20;
  --wallet-from:#0a0a0c;--wallet-to:#172554;--wallet-text:#ffffff;--wallet-muted:rgba(255,255,255,.58);
  --shadow-hairline:0 1px 2px rgba(0,0,0,.5);
  --shadow-card:0 1px 3px rgba(0,0,0,.4);
  --shadow-pop:0 16px 40px -12px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.04);
  --shadow-modal:0 40px 90px -20px rgba(0,0,0,.9),0 1px 0 rgba(255,255,255,.04) inset;
  --shadow-fab:0 10px 24px -8px rgba(0,0,0,.8),0 0 0 1px rgba(59,130,246,.35);
}

/* Variabili dell'app ricondotte ai token (così anche le regole esistenti si allineano) */
html body.c-ui,
html body.c-ui[data-theme="dark"],
body.c-ui #app#app{
  --bg:var(--bg-primary);--surface:var(--bg-card);--text:var(--text-primary);--muted:var(--text-muted);--line:var(--border-color);--soft:var(--bg-inset);
  --navy:var(--text-primary);--blue:var(--accent);--sky:var(--accent);--teal:var(--accent);--gold:var(--accent);--gold-c:var(--accent);--gold-d:var(--accent);--gold-ink:var(--accent);--gold-light:var(--accent-soft);--yellow:var(--accent-soft);
  --radius:var(--r-lg);--shadow:var(--shadow-card);
  --c-card:var(--bg-card);--c-ink:var(--text-primary);--c-soft-ink:var(--text-muted);--c-line:var(--border-color);--c-r:var(--r-lg);
  --c-shadow:var(--shadow-card);--c-shadow-up:var(--shadow-pop);--c-ok:var(--success);--c-warn:var(--text-secondary);
  --k-lesson:var(--accent);--k-exam:var(--text-secondary);--k-deadline:var(--border-strong);--k-personal:var(--text-faint);--k-alfa:var(--accent);
  --next-ink:var(--text-primary);--next-paper:var(--bg-primary);--next-card:var(--bg-card);--next-border:var(--border-color);--next-blue:var(--accent);--next-cyan:var(--accent);--next-mint:var(--accent-soft);--next-warm:var(--bg-inset);
  --campus-blue:var(--accent);--campus-ice:var(--bg-inset);
  --sec:var(--accent);--tc:var(--accent);--kc:var(--accent);--fc:var(--accent);
  --ink-to:var(--text-primary);--ink-mix:100%;
}

/* ---------- 02. RESET & BASE --------------------------------------------- */
html body.c-ui{
  margin:0;
  font-family:var(--font-sans)!important;
  font-size:var(--fs-base);
  line-height:var(--lh-normal);
  letter-spacing:var(--ls-normal);
  color:var(--text-primary)!important;
  background:var(--bg-subtle)!important;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-feature-settings:"cv11","ss01","calt";
}
html body.c-ui ::selection{background:var(--accent-soft);color:var(--accent-soft-text)}
body.c-ui #app#app,body.c-ui #app#app *,body.c-ui #modal,body.c-ui #modal *,body.c-ui #toast,body.c-ui .c-card-drawer *{font-family:var(--font-sans)}
body.c-ui #app#app :is(h1,h2,h3,h4){font-weight:var(--fw-semibold);letter-spacing:var(--ls-snug);color:var(--text-primary)}
body.c-ui #app#app :is(b,strong){font-weight:var(--fw-semibold)}
body.c-ui #app#app :focus-visible{outline:none!important;box-shadow:var(--focus-ring)!important}
html body.c-ui *{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}
html body.c-ui *::-webkit-scrollbar{width:6px;height:6px}
html body.c-ui *::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}
body.c-ui #app#app .eyebrow{font-size:var(--fs-2xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-widest)!important;text-transform:uppercase!important;color:var(--text-faint)!important;margin:0 0 4px}
body.c-ui #app#app .muted{color:var(--text-muted)!important}
body.c-ui #app#app .meta{font-size:var(--fs-sm)!important;color:var(--text-muted);line-height:1.45}
body.c-ui #app#app p{line-height:1.5}
body.c-ui #app#app .mt{margin-top:var(--sp-3)}
body.c-ui #app#app .mb{margin-bottom:var(--sp-3)}
body.c-ui #app#app .stack{display:flex;flex-direction:column;gap:var(--sp-2)}
body.c-ui #app#app .row{display:flex;align-items:center;gap:var(--sp-2)}
body.c-ui #app#app .row.between{justify-content:space-between}
body.c-ui #app#app .row.wrap{flex-wrap:wrap}
body.c-ui #app#app .grow{flex:1;min-width:0}
body.c-ui #app#app input[type=range]{accent-color:var(--accent)}

/* Decorazioni del vecchio tema: via */
body.c-ui #app#app .alfa-logo-atmosphere,body.c-ui #app#app .news-orbs,body.c-ui #app#app::before,body.c-ui #app#app::after{display:none!important}

/* ---------- 03. APP SHELL ------------------------------------------------- */
/* Colonna "telefono": a tutto schermo su mobile, centrata su desktop */
body.c-ui #app#app{
  position:relative;width:100%;max-width:var(--app-max);min-height:100dvh;margin:0 auto;
  background:var(--bg-primary)!important;overflow-x:clip;
}
@media (min-width:640px){
  html body.c-ui{background:radial-gradient(1200px 640px at 50% -10%,var(--bg-inset),transparent 70%),var(--bg-subtle)!important}
  body.c-ui #app#app{border-left:1px solid var(--border-color);border-right:1px solid var(--border-color);box-shadow:0 0 0 1px rgba(9,9,11,.02) inset}
}
body.c-ui #app#app .layout{display:block!important;width:auto!important;max-width:none!important;padding:0!important;margin:0!important;grid-template-columns:none!important}

/* --- Top App Bar --- */
body.c-ui #app#app .topbar{
  position:sticky!important;top:0;z-index:60;
  height:var(--appbar-h)!important;min-height:var(--appbar-h)!important;padding:0!important;margin:0!important;
  background:var(--glass)!important;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);
  border:0!important;border-bottom:1px solid transparent!important;box-shadow:none!important;border-radius:0!important;
}
@supports (animation-timeline:scroll()){
  body.c-ui #app#app .topbar{animation:rs-appbar-line linear both;animation-timeline:scroll(root);animation-range:0 24px}
  @keyframes rs-appbar-line{to{border-bottom-color:var(--border-color)}}
}
body.c-ui #app#app .topbar .header-inner{
  display:flex!important;align-items:center;gap:var(--sp-2)!important;
  height:var(--appbar-h)!important;min-height:0!important;max-width:none!important;padding:0 var(--sp-4)!important;margin:0!important;
}
body.c-ui #app#app .wordmark{display:flex!important;align-items:center;flex:none!important;font-size:0!important;gap:0!important;margin:0!important;padding:0!important;color:var(--text-primary)!important}
body.c-ui #app#app .wordmark span{display:none!important}
body.c-ui #app#app .wordmark::before{
  /* logo A.L.Fa. (immagine) al posto della lettera α */
  content:""!important;display:block!important;
  width:30px!important;height:30px!important;flex:0 0 30px!important;border-radius:var(--r-sm)!important;
  background:url("assets/alfa-logo-app-160.png") center/cover no-repeat!important;box-shadow:none!important;border:0!important;
  color:var(--text-primary);font-size:17px;font-weight:var(--fw-semibold);letter-spacing:-.04em;line-height:1;
}
body.c-ui #app#app .header-course{display:none!important}
body.c-ui #app#app .c-appbar-title{
  display:grid!important;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"back eye" "back title";align-items:center;align-content:center;
  flex:1 1 auto;min-width:0;gap:0!important;color:var(--text-primary)!important;
}
body.c-ui #app#app .c-appbar-title::before{grid-area:eye;content:"A.L.Fa.";font-size:var(--fs-2xs);letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--text-faint);font-weight:var(--fw-semibold);line-height:1.2}
body.c-ui #app#app .c-appbar-title b{grid-area:title;min-width:0;font-size:var(--fs-md)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug)!important;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.c-ui #app#app .c-appbar-emoji{display:none!important}
body.c-ui #app#app .c-appbar-back{
  grid-area:back;display:grid!important;place-items:center;width:30px!important;height:30px!important;margin:0 6px 0 -2px!important;padding:0 0 2px!important;
  border:0!important;border-radius:var(--r-pill)!important;background:transparent!important;color:var(--text-secondary)!important;font-size:22px!important;line-height:1!important;
}
body.c-ui #app#app .c-appbar-back:hover{background:var(--bg-inset)!important;color:var(--text-primary)!important}
/* Esse3: pulsante tondo con bordo, icona rossa */
body.c-ui #app#app .c-esse3{
  display:grid!important;place-items:center;width:34px!important;height:34px!important;min-width:0;padding:0!important;margin:0 0 0 auto!important;
  border-radius:var(--r-pill)!important;background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:none!important;
  transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);
}
body.c-ui #app#app .c-esse3:hover{background:var(--bg-inset)!important;border-color:var(--border-strong)!important}
body.c-ui #app#app .c-esse3:active{transform:scale(.94)}
body.c-ui #app#app .c-esse3 span{display:none!important}
body.c-ui #app#app .c-esse3 .c-esse3-ico{width:20px!important;height:20px!important;filter:none!important}
body.c-ui #app#app .avatar{
  display:grid!important;place-items:center;width:32px!important;height:32px!important;min-width:0;padding:0!important;flex:none;
  border-radius:var(--r-pill)!important;background:var(--text-primary)!important;color:var(--bg-primary)!important;border:0!important;box-shadow:none!important;
  font-size:var(--fs-xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:.01em;text-transform:lowercase;
  transition:opacity var(--dur-fast) var(--ease);
}
body.c-ui #app#app .avatar:hover{opacity:.86}

/* --- Bottom Navigation (su tutte le larghezze, come nel riferimento) --- */
body.c-ui #app#app .nav{
  position:fixed!important;z-index:70;left:50%!important;right:auto!important;top:auto!important;bottom:0!important;transform:translateX(-50%)!important;
  width:100%!important;max-width:var(--app-max)!important;height:auto!important;min-height:0!important;margin:0!important;
  padding:6px var(--sp-2) calc(6px + env(safe-area-inset-bottom))!important;
  display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:0!important;overflow:visible!important;
  background:var(--glass)!important;-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);
  border:0!important;border-top:1px solid var(--border-color)!important;border-radius:0!important;box-shadow:none!important;
}
body.c-ui #app#app .nav button{
  position:relative;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:3px!important;
  width:auto!important;min-width:0!important;height:50px!important;min-height:0!important;padding:4px 0 0!important;margin:0!important;
  border:0!important;border-radius:var(--r-md)!important;background:none!important;box-shadow:none!important;
  color:var(--text-faint)!important;font-size:var(--fs-2xs)!important;font-weight:var(--fw-medium)!important;letter-spacing:.01em!important;
  transition:color var(--dur-fast) var(--ease);
}
body.c-ui #app#app .nav button span{color:inherit!important;font-size:inherit!important;font-weight:inherit!important;line-height:1.2}
body.c-ui #app#app .nav button .ico,body.c-ui #app#app .nav button svg{width:21px!important;height:21px!important;color:inherit!important;transform:none!important;stroke-width:1.7}
body.c-ui #app#app .nav button:hover{color:var(--text-secondary)!important}
body.c-ui #app#app .nav button.active,body.c-ui #app#app .nav button.active span,body.c-ui #app#app .nav button.active .ico{color:var(--accent)!important;font-weight:var(--fw-semibold)!important;background:none!important}
body.c-ui #app#app .nav button::after{
  content:"";position:absolute;top:0;left:50%;width:14px;height:2px;border-radius:2px;background:var(--accent);
  transform:translateX(-50%) scaleX(0);opacity:0;transition:transform var(--dur) var(--ease-out),opacity var(--dur) var(--ease);
}
body.c-ui #app#app .nav button.active::after{transform:translateX(-50%) scaleX(1);opacity:1}

/* --- Area contenuti --- */
body.c-ui #app#app main.content{
  display:block!important;max-width:none!important;width:auto!important;margin:0!important;
  padding:var(--sp-5) var(--sp-4) calc(var(--bottomnav-h) + 104px + env(safe-area-inset-bottom))!important;
  background:none!important;animation:rs-view-in var(--dur-slow) var(--ease-out);
}
@keyframes rs-view-in{from{opacity:0}to{opacity:1}}
/* il "+" del calendario deve restare ancorato alla finestra: niente transform sui suoi contenitori */
body.c-ui #app#app .c-cal{animation:none!important;transform:none!important}
@media (prefers-reduced-motion:reduce){body.c-ui #app#app *{animation-duration:.001ms!important;transition-duration:.001ms!important}}
body.c-ui #app#app .calendar-dock{display:none!important}
body.c-ui #app#app .connection.c-sync-ok{display:none!important}
body.c-ui #app#app .connection:not(.c-sync-ok){
  display:inline-flex!important;align-items:center;gap:5px;height:22px;padding:0 9px!important;margin:0 0 var(--sp-3)!important;
  border-radius:var(--r-pill)!important;background:var(--bg-inset)!important;color:var(--text-muted)!important;border:0!important;
  font-size:var(--fs-2xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-wide)!important;text-transform:uppercase!important;
}

/* Intestazione pagina (page-head) */
body.c-ui #app#app #main .page-top{
  display:flex!important;align-items:center;justify-content:space-between;gap:var(--sp-3);
  min-height:0!important;margin:0 0 var(--sp-4)!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;color:var(--text-primary)!important;
}
body.c-ui #app#app #main .page-top>div:first-child{display:block!important;min-width:0}
body.c-ui #app#app #main .page-top .eyebrow{display:block!important}
body.c-ui #app#app #main .page-top h1{display:block!important;margin:0!important;font-size:var(--fs-2xl)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-tight)!important;line-height:1.1!important;color:var(--text-primary)!important}
body.c-ui #app#app #main .page-top p{margin:3px 0 0!important;font-size:var(--fs-sm)!important;color:var(--text-muted)!important;line-height:1.45}
body.c-ui #app#app #main .page-top>svg,body.c-ui #app#app #main .page-top>.ico,body.c-ui #app#app #main .page-top>.icon-btn[data-nav]{display:none!important}

/* Titoli di sezione */
body.c-ui #app#app .section-title{display:flex!important;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin:var(--sp-7) 0 var(--sp-3)!important;padding:0!important;border:0!important}
body.c-ui #app#app .section-title h2{margin:0!important;font-size:var(--fs-xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-widest)!important;text-transform:uppercase;color:var(--text-faint)!important}
body.c-ui #app#app .section-title .meta{font-size:var(--fs-sm)!important;color:var(--text-muted)}

/* ---------- 04. COMPONENTI ------------------------------------------------ */
/* Card */
body.c-ui #app#app .card{
  background:var(--bg-card)!important;color:var(--text-primary)!important;
  border:1px solid var(--border-color)!important;border-radius:var(--r-lg)!important;box-shadow:var(--shadow-card)!important;
  padding:var(--sp-4)!important;margin:0 0 var(--sp-3)!important;backdrop-filter:none!important;
  transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
body.c-ui #app#app .card.mt{margin-top:var(--sp-3)!important}
body.c-ui #app#app .card h2{margin:0;font-size:var(--fs-md)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug)!important;line-height:1.3}
body.c-ui #app#app .card h3{margin:0;font-size:var(--fs-base)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug)!important}
body.c-ui #app#app .card .row.between.mb{margin-bottom:var(--sp-3)}
body.c-ui #app#app .card>.row.between.mb h2{font-size:var(--fs-xs)!important;letter-spacing:var(--ls-wide)!important;text-transform:uppercase;color:var(--text-muted)!important}

/* Bottoni */
body.c-ui #app#app .btn,body.c-ui #modal .btn{
  display:inline-flex!important;align-items:center;justify-content:center;gap:var(--sp-2);
  height:40px;min-height:40px!important;padding:0 var(--sp-4)!important;border-radius:var(--r-md)!important;
  font-size:var(--fs-base)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug)!important;line-height:1.2;white-space:nowrap;
  border:1px solid transparent!important;box-shadow:none!important;text-decoration:none;
  background:var(--accent)!important;color:var(--text-on-accent)!important;
  transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);
}
body.c-ui #app#app .btn:hover,body.c-ui #modal .btn:hover{background:var(--accent-hover)!important}
body.c-ui #app#app .btn:active,body.c-ui #modal .btn:active{transform:scale(.985)}
body.c-ui #app#app .btn svg,body.c-ui #app#app .btn .ico{width:15px;height:15px;color:currentColor!important}
body.c-ui #app#app .btn.secondary,body.c-ui #modal .btn.secondary{background:var(--bg-card)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}
body.c-ui #app#app .btn.secondary:hover,body.c-ui #modal .btn.secondary:hover{background:var(--bg-inset)!important;border-color:var(--border-strong)!important}
body.c-ui #app#app .btn.small,body.c-ui #modal .btn.small{height:32px;min-height:32px!important;padding:0 12px!important;font-size:var(--fs-sm)!important;border-radius:var(--r-sm)!important}
body.c-ui #app#app .btn.full{width:100%}
body.c-ui #app#app .btn.danger,body.c-ui #modal .btn.danger{background:var(--danger-soft)!important;border-color:transparent!important;color:var(--danger)!important}
body.c-ui #app#app .btn[disabled]{opacity:.5;pointer-events:none}
body.c-ui #app#app .quick-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-3) 0}
body.c-ui #app#app .quick-actions .btn{flex:1}
/* Link testuale (section__action) */
body.c-ui #app#app .text-btn,body.c-ui #modal .text-btn{
  display:inline-flex!important;align-items:center;gap:3px;padding:0!important;min-height:0!important;height:auto;
  background:none!important;border:0!important;box-shadow:none!important;border-radius:var(--r-xs);
  color:var(--accent)!important;font-size:var(--fs-sm)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug);text-decoration:none!important;
}
body.c-ui #app#app .text-btn:hover{color:var(--accent-hover)!important}
body.c-ui #app#app .text-btn svg{width:14px;height:14px}
/* Pulsante icona */
body.c-ui #app#app .icon-btn,body.c-ui #modal .icon-btn{
  display:grid!important;place-items:center;width:34px!important;height:34px!important;min-width:0;min-height:0!important;padding:0!important;
  border-radius:var(--r-pill)!important;background:transparent!important;border:0!important;box-shadow:none!important;color:var(--text-secondary)!important;
  transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);
}
body.c-ui #app#app .icon-btn:hover,body.c-ui #modal .icon-btn:hover{background:var(--bg-inset)!important;color:var(--text-primary)!important}
body.c-ui #app#app .icon-btn:active{transform:scale(.94)}
body.c-ui #app#app .icon-btn svg{width:17px;height:17px}

/* Badge / pillole */
body.c-ui #app#app .badge,body.c-ui #app#app .c-chip,body.c-ui #app#app .c-open,body.c-ui #app#app .c-count{
  display:inline-flex!important;align-items:center;gap:5px;height:22px;padding:0 9px!important;margin:0;
  border-radius:var(--r-pill)!important;border:0!important;box-shadow:none!important;animation:none!important;
  font-size:var(--fs-2xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-wide)!important;text-transform:uppercase;white-space:nowrap;
  background:var(--bg-inset)!important;color:var(--text-muted)!important;
}
body.c-ui #app#app .badge.gold-badge{background:var(--accent-soft)!important;color:var(--accent-soft-text)!important}
body.c-ui #app#app .c-chip.live,body.c-ui #app#app .c-open.yes{background:var(--accent-soft)!important;color:var(--accent-soft-text)!important}
body.c-ui #app#app .c-chip.live::before,body.c-ui #app#app .c-open.yes::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;animation:rs-pulse-dot 2.2s var(--ease) infinite}
@keyframes rs-pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}
body.c-ui #app#app .c-chip.done{background:transparent!important;color:var(--text-faint)!important;font-weight:var(--fw-medium)!important}
body.c-ui #app#app .c-count{min-width:20px;height:20px;padding:0 6px!important;justify-content:center;background:var(--accent-soft)!important;color:var(--accent-soft-text)!important;font-variant-numeric:tabular-nums;letter-spacing:0!important}

/* Segmented control: .tabs, .c-seg, .switcher, .news-channel-tabs */
body.c-ui #app#app :is(.tabs,.c-seg,.switcher,.news-channel-tabs){
  display:flex!important;flex-wrap:nowrap!important;gap:2px!important;padding:3px!important;margin:0 0 var(--sp-4)!important;overflow:visible!important;
  border-radius:var(--r-md)!important;background:var(--bg-inset)!important;border:1px solid transparent!important;box-shadow:none!important;
}
body.c-ui #app#app :is(.tabs,.c-seg,.switcher,.news-channel-tabs) button{
  flex:1 1 0!important;min-width:0!important;display:inline-flex!important;align-items:center;justify-content:center;gap:6px;
  height:32px!important;min-height:0!important;padding:0 6px!important;margin:0!important;border-radius:var(--r-sm)!important;
  background:transparent!important;border:0!important;box-shadow:none!important;
  font-size:var(--fs-sm)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug)!important;color:var(--text-muted)!important;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast),box-shadow var(--dur-fast);
}
body.c-ui #app#app :is(.tabs,.c-seg,.switcher,.news-channel-tabs) button:not(:has(svg)){display:block!important;text-align:center;line-height:32px!important}
body.c-ui #app#app :is(.tabs,.c-seg,.switcher,.news-channel-tabs) button:hover{color:var(--text-primary)!important}
body.c-ui #app#app :is(.tabs button.selected,.c-seg button.on,.switcher .btn:not(.secondary),.news-channel-tabs button.active){
  background:var(--bg-card)!important;color:var(--text-primary)!important;font-weight:var(--fw-semibold)!important;
  box-shadow:0 1px 2px rgba(9,9,11,.08),0 0 0 1px rgba(9,9,11,.02)!important;
}
body.c-ui[data-theme="dark"] #app#app :is(.tabs button.selected,.c-seg button.on,.switcher .btn:not(.secondary),.news-channel-tabs button.active){box-shadow:0 1px 2px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.04)!important}
body.c-ui #app#app .switcher{margin:var(--sp-2) 0 0!important}
body.c-ui #app#app :is(.switcher,.news-channel-tabs) .btn.btn{
  height:32px!important;min-height:0!important;padding:0 6px!important;border-radius:var(--r-sm)!important;
  background:transparent!important;border-color:transparent!important;color:var(--text-muted)!important;box-shadow:none!important;
  font-size:var(--fs-sm)!important;font-weight:var(--fw-medium)!important;
}
body.c-ui #app#app :is(.switcher .btn.btn:not(.secondary),.news-channel-tabs .btn.btn.active){
  background:var(--bg-card)!important;color:var(--text-primary)!important;font-weight:var(--fw-semibold)!important;
  box-shadow:0 1px 2px rgba(9,9,11,.08),0 0 0 1px rgba(9,9,11,.02)!important;
}

/* Filtri a pillola: .chips, .c-chips, .mobility-line-tabs */
body.c-ui #app#app :is(.chips,.c-chips,.mobility-line-tabs){
  display:flex!important;flex-wrap:nowrap!important;gap:var(--sp-2)!important;overflow-x:auto;scrollbar-width:none;
  margin:0 calc(var(--sp-4) * -1) var(--sp-3)!important;padding:2px var(--sp-4)!important;border:0!important;background:none!important;
}
body.c-ui #app#app :is(.chips,.c-chips,.mobility-line-tabs)::-webkit-scrollbar{display:none}
body.c-ui #app#app :is(.chips button,.c-chip-btn,.mobility-line-tab){
  flex:none!important;height:30px!important;min-height:0!important;padding:0 12px!important;margin:0!important;
  border-radius:var(--r-pill)!important;border:1px solid var(--border-color)!important;background:transparent!important;box-shadow:none!important;
  font-size:var(--fs-sm)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug);color:var(--text-muted)!important;white-space:nowrap;
  transition:all var(--dur-fast) var(--ease);
}
body.c-ui #app#app :is(.chips button,.c-chip-btn,.mobility-line-tab):hover{color:var(--text-primary)!important;border-color:var(--border-strong)!important}
body.c-ui #app#app :is(.chips button.selected,.c-chip-btn.on,.mobility-line-tab.active){background:var(--text-primary)!important;border-color:var(--text-primary)!important;color:var(--bg-primary)!important}

/* Campi di form */
body.c-ui #app#app :is(.field,label.field),body.c-ui #modal :is(.field,label.field){
  display:flex;flex-direction:column;gap:6px;
  font-size:var(--fs-xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-wide)!important;text-transform:uppercase;color:var(--text-faint)!important;
}
body.c-ui #app#app :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea),
body.c-ui #modal :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){
  min-height:42px;padding:0 12px!important;border-radius:var(--r-md)!important;
  background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:none!important;color:var(--text-primary)!important;
  font-family:var(--font-sans)!important;font-size:var(--fs-base)!important;font-weight:var(--fw-regular)!important;letter-spacing:var(--ls-normal)!important;text-transform:none!important;
  transition:border-color var(--dur-fast),background-color var(--dur-fast);
}
body.c-ui #app#app textarea,body.c-ui #modal textarea{padding:10px 12px!important;min-height:90px}
body.c-ui #app#app :is(input,select,textarea):hover,body.c-ui #modal :is(input,select,textarea):hover{border-color:var(--border-strong)!important}
body.c-ui #app#app :is(input,select,textarea):focus,body.c-ui #modal :is(input,select,textarea):focus{outline:none!important;border-color:var(--accent)!important;box-shadow:var(--focus-ring)!important}
body.c-ui #app#app input::placeholder,body.c-ui #modal input::placeholder{color:var(--text-faint)}
body.c-ui #app#app select,body.c-ui #modal select{
  appearance:none;-webkit-appearance:none;padding-right:38px!important;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:right 12px center!important;background-size:16px!important;
}
/* Checkbox minimale (18px, raggio 5) */
body.c-ui #app#app input[type=checkbox],body.c-ui #modal input[type=checkbox]{
  appearance:none;-webkit-appearance:none;position:relative;display:inline-grid;place-items:center;flex:none;
  width:18px!important;height:18px!important;min-height:0!important;margin:0!important;padding:0!important;
  border-radius:5px!important;border:1.5px solid var(--border-strong)!important;background:transparent!important;box-shadow:none!important;cursor:pointer;
  transition:background-color var(--dur-fast),border-color var(--dur-fast);
}
body.c-ui #app#app input[type=checkbox]:hover,body.c-ui #modal input[type=checkbox]:hover{border-color:var(--accent)!important}
body.c-ui #app#app input[type=checkbox]:checked,body.c-ui #modal input[type=checkbox]:checked{background:var(--accent)!important;border-color:var(--accent)!important}
body.c-ui #app#app input[type=checkbox]::after,body.c-ui #modal input[type=checkbox]::after{
  content:"";width:11px;height:11px;background:var(--text-on-accent);-webkit-mask:var(--i-check) center/contain no-repeat;mask:var(--i-check) center/contain no-repeat;
  opacity:0;transform:scale(.7);transition:opacity var(--dur-fast),transform var(--dur-fast) var(--ease-out);
}
body.c-ui #app#app input[type=checkbox]:checked::after,body.c-ui #modal input[type=checkbox]:checked::after{opacity:1;transform:none}
body.c-ui #app#app label.check,body.c-ui #modal label.check{
  display:flex!important;align-items:flex-start;gap:12px;padding:11px 0;cursor:pointer;user-select:none;
  font-size:var(--fs-base)!important;color:var(--text-primary)!important;line-height:1.4;text-transform:none;letter-spacing:var(--ls-normal);font-weight:var(--fw-regular)!important;
}
body.c-ui #app#app label.check input,body.c-ui #modal label.check input{margin-top:1px!important}

/* Stato vuoto */
body.c-ui #app#app .empty{
  display:flex!important;flex-direction:column;align-items:center;text-align:center;gap:6px;
  padding:var(--sp-6) var(--sp-5) var(--sp-5)!important;margin:0!important;background:none!important;border:0!important;box-shadow:none!important;
}
body.c-ui #app#app .empty>svg,body.c-ui #app#app .empty>.ico{
  box-sizing:border-box;width:40px!important;height:40px!important;padding:11px;margin-bottom:4px;
  border-radius:var(--r-pill);border:1px dashed var(--border-strong);color:var(--text-faint)!important;background:none!important;
}
body.c-ui #app#app .empty strong{font-size:var(--fs-base)!important;font-weight:var(--fw-medium)!important;color:var(--text-secondary)!important}
body.c-ui #app#app .empty p{margin:0;font-size:var(--fs-sm)!important;color:var(--text-faint)!important;max-width:30ch;line-height:1.45}
body.c-ui #app#app .empty .btn{margin-top:var(--sp-2)}

/* Nota con bordo sinistro */
body.c-ui #app#app .notice{
  display:block;margin:var(--sp-4) 0!important;padding:12px var(--sp-4)!important;
  border:0!important;border-left:2px solid var(--accent)!important;border-radius:0 var(--r-md) var(--r-md) 0!important;
  background:var(--bg-card-muted)!important;box-shadow:none!important;color:var(--text-muted)!important;font-size:var(--fs-sm)!important;line-height:1.5;
}
body.c-ui #app#app .notice .text-btn{display:inline!important}

/* Liste (list-row) */
body.c-ui #app#app .list-row{
  display:flex!important;align-items:center;gap:var(--sp-3);padding:13px 0!important;margin:0!important;
  background:none!important;border:0!important;border-bottom:1px solid var(--border-subtle)!important;border-radius:0!important;box-shadow:none!important;
}
body.c-ui #app#app .list-row:last-child{border-bottom:0!important}
body.c-ui #app#app .list-row .title{font-size:var(--fs-base)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug);line-height:1.3;color:var(--text-primary)!important}
body.c-ui #app#app .list-row .meta{margin-top:2px}
body.c-ui #app#app .list-row .badge{margin-top:7px}
body.c-ui #app#app .list-row .c-map-link{margin:7px 0 0 8px}
body.c-ui #app#app .list-row [data-action=lessons-open-calendar]{
  align-self:center;width:30px!important;height:30px!important;border-radius:var(--r-sm)!important;border:1px solid var(--border-color)!important;
  background:var(--bg-card)!important;color:var(--text-muted)!important;font-size:0!important;
}
body.c-ui #app#app .list-row [data-action=lessons-open-calendar]::before{content:"";width:15px;height:15px;background:currentColor;-webkit-mask:var(--i-calendar) center/contain no-repeat;mask:var(--i-calendar) center/contain no-repeat}
body.c-ui #app#app .list-row [data-action=lessons-open-calendar]:hover{color:var(--accent)!important;border-color:var(--accent-border)!important;background:var(--accent-soft)!important}
body.c-ui #app#app .list-row>.grow{border:0!important;padding:0!important;background:none!important}
/* Data a sinistra (lezioni) */
body.c-ui #app#app .date-tile{
  flex:none;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  width:42px!important;height:44px!important;min-width:0;padding:0!important;border-radius:var(--r-sm)!important;
  background:var(--bg-card-muted)!important;border:1px solid var(--border-color)!important;box-shadow:none!important;color:var(--text-primary)!important;
}
body.c-ui #app#app .date-tile small{font-size:9px!important;font-weight:var(--fw-semibold);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-faint)!important;line-height:1}
body.c-ui #app#app .date-tile b{font-size:var(--fs-md)!important;font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;line-height:1;color:var(--text-primary)!important}
/* Voto (libretto) */
body.c-ui #app#app .grade{
  flex:none;display:grid!important;place-items:center;width:42px!important;height:38px!important;min-width:0;padding:0!important;
  border-radius:var(--r-sm)!important;border:1px solid var(--border-color)!important;background:var(--bg-card-muted)!important;box-shadow:none!important;
  color:var(--text-primary)!important;font-size:var(--fs-lg)!important;font-weight:var(--fw-semibold)!important;font-variant-numeric:tabular-nums;letter-spacing:var(--ls-snug);
}
body.c-ui #app#app .grade svg{width:16px;height:16px;color:var(--text-faint)}

/* Statistiche */
body.c-ui #app#app .grid2{display:grid!important;grid-template-columns:1fr 1fr;gap:var(--sp-3)}
body.c-ui #app#app .grid2>.card{margin:0!important}
body.c-ui #app#app .stat p,body.c-ui #app#app .stat .label{margin:0;font-size:var(--fs-2xs)!important;font-weight:var(--fw-semibold);letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--text-faint)!important;line-height:1.3}
body.c-ui #app#app .stat .value{margin-top:6px;font-size:var(--fs-2xl)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-tight);font-variant-numeric:tabular-nums;line-height:1.05;color:var(--text-primary)!important}

/* Grafico a barre (.c-bars) */
body.c-ui #app#app .c-bars{display:flex!important;align-items:stretch;gap:3px;height:146px!important;padding-top:var(--sp-2);margin:var(--sp-3) 0}
body.c-ui #app#app .c-bars>div{position:relative;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;padding-bottom:22px}
body.c-ui #app#app .c-bars>div>span{width:100%;max-width:14px;min-height:2px;border-radius:3px 3px 1px 1px;background:var(--accent)!important}
body.c-ui #app#app .c-bars>div>span[style="height:0%"]{background:var(--track)!important}
body.c-ui #app#app .c-bars small{position:absolute;left:0;right:0;bottom:0;text-align:center;font-size:9px!important;color:var(--text-faint)!important;font-variant-numeric:tabular-nums}

/* Progress nativo */
body.c-ui #app#app progress{appearance:none;-webkit-appearance:none;display:block;width:100%;height:5px;border:0;border-radius:var(--r-pill);background:var(--track);overflow:hidden;color:var(--accent)}
body.c-ui #app#app progress::-webkit-progress-bar{background:var(--track);border-radius:var(--r-pill)}
body.c-ui #app#app progress::-webkit-progress-value{background:var(--accent);border-radius:var(--r-pill);transition:width 700ms var(--ease-out)}
body.c-ui #app#app progress::-moz-progress-bar{background:var(--accent);border-radius:var(--r-pill)}

/* Dettagli generici */
body.c-ui #app#app details>summary{cursor:pointer}

/* ---------- 05. VISTE ---------------------------------------------------- */
/* === OGGI === */
body.c-ui #app#app .c-hello{padding:2px 0 var(--sp-5)!important;margin:0!important;background:none!important}
body.c-ui #app#app .c-hello small{display:flex!important;align-items:center;gap:6px;font-size:var(--fs-sm)!important;color:var(--text-muted)!important;font-weight:var(--fw-medium)!important;text-transform:capitalize;letter-spacing:var(--ls-normal)!important}
body.c-ui #app#app .c-hello small::before{content:"";width:14px;height:14px;flex:none;background:currentColor;-webkit-mask:var(--i-calendar) center/contain no-repeat;mask:var(--i-calendar) center/contain no-repeat}
body.c-ui #app#app .c-hello h1{margin:6px 0 0!important;font-size:var(--fs-3xl)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-tight)!important;line-height:var(--lh-tight)!important;color:var(--text-primary)!important}
body.c-ui #app#app .c-hello h1::after{content:"."}

/* Hero: prossima lezione (next-class) */
body.c-ui #app#app .c-hero{
  position:relative;overflow:hidden;margin:0!important;
  padding:var(--sp-4) var(--sp-4) var(--sp-4) calc(var(--sp-4) + 2px)!important;
  background:var(--bg-card)!important;color:var(--text-primary)!important;
  border:1px solid var(--border-color)!important;border-radius:var(--r-lg)!important;box-shadow:var(--shadow-card)!important;
}
body.c-ui #app#app .c-hero::before{content:""!important;position:absolute;left:0;top:12px;bottom:12px;width:3px;height:auto;border-radius:0 3px 3px 0;background:var(--accent)!important;opacity:1;inset:12px auto 12px 0}
body.c-ui #app#app .c-hero::after{display:none!important}
body.c-ui #app#app .c-hero-top{display:flex!important;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:10px}
body.c-ui #app#app .c-hero-kind{display:flex!important;align-items:center;gap:6px;padding:0!important;background:none!important;font-size:var(--fs-2xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-widest)!important;text-transform:uppercase;color:var(--text-faint)!important}
body.c-ui #app#app .c-hero h2{margin:0!important;font-size:var(--fs-lg)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug)!important;line-height:1.25;color:var(--text-primary)!important}
body.c-ui #app#app .c-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:10px 0 0!important;font-size:var(--fs-sm)!important;color:var(--text-muted)!important}
body.c-ui #app#app .c-hero-meta b{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;color:var(--text-primary)!important;font-weight:var(--fw-medium)!important;letter-spacing:0}

/* Luogo (pin + aula) */
body.c-ui #app#app .c-place{display:inline-flex;align-items:center;gap:5px;color:inherit}
body.c-ui #app#app .c-place svg{width:14px!important;height:14px!important;color:var(--text-faint)!important}
body.c-ui #app#app .c-place b{font-family:var(--font-sans)!important;font-weight:var(--fw-medium)!important;color:inherit!important}

/* Azioni rapide → chip-row */
body.c-ui #app#app .c-quicks{
  display:flex!important;flex-wrap:nowrap!important;gap:var(--sp-2)!important;overflow-x:auto;scrollbar-width:none;
  margin:var(--sp-4) calc(var(--sp-4) * -1) 0!important;padding:2px var(--sp-4)!important;grid-template-columns:none!important;justify-content:flex-start!important;
}
body.c-ui #app#app .c-quicks::-webkit-scrollbar{display:none}
body.c-ui #app#app .c-quick{
  flex:none!important;display:inline-flex!important;flex-direction:row!important;align-items:center;gap:7px!important;
  width:auto!important;height:34px!important;min-height:0!important;padding:0 13px!important;margin:0!important;
  border-radius:var(--r-pill)!important;background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:none!important;
  color:var(--text-secondary)!important;font-size:var(--fs-sm)!important;font-weight:var(--fw-medium)!important;white-space:nowrap;animation:none!important;
  transition:all var(--dur-fast) var(--ease);
}
body.c-ui #app#app .c-quick:hover{border-color:var(--border-strong)!important;color:var(--text-primary)!important;background:var(--bg-inset)!important}
body.c-ui #app#app .c-quick:active{transform:scale(.97)}
body.c-ui #app#app .c-quick>span{
  display:block!important;width:15px!important;height:15px!important;padding:0!important;margin:0!important;border-radius:0!important;
  font-size:0!important;background:var(--text-muted)!important;box-shadow:none!important;
  -webkit-mask:var(--rs-ic,var(--i-spark)) center/contain no-repeat;mask:var(--rs-ic,var(--i-spark)) center/contain no-repeat;
}
body.c-ui #app#app .c-quick:hover>span{background:var(--accent)!important}

/* Mappatura icone per destinazione (sostituisce le emoji) */
body.c-ui #app#app [data-nav=study]{--rs-ic:var(--i-book)}
body.c-ui #app#app [data-nav=bus]{--rs-ic:var(--i-bus)}
body.c-ui #app#app [data-nav=deadlines]{--rs-ic:var(--i-hourglass)}
body.c-ui #app#app [data-nav=lessons]{--rs-ic:var(--i-clock)}
body.c-ui #app#app [data-nav=services]{--rs-ic:var(--i-food)}
body.c-ui #app#app [data-nav=graduation]{--rs-ic:var(--i-cap)}
body.c-ui #app#app [data-nav=card]{--rs-ic:var(--i-card)}
body.c-ui #app#app [data-nav=events]{--rs-ic:var(--i-spark)}
body.c-ui #app#app [data-nav=partners]{--rs-ic:var(--i-tag)}
body.c-ui #app#app [data-nav=polls]{--rs-ic:var(--i-vote)}
body.c-ui #app#app [data-nav=news]{--rs-ic:var(--i-news)}
body.c-ui #app#app [data-nav=support]{--rs-ic:var(--i-chat)}
body.c-ui #app#app [data-nav=settings]{--rs-ic:var(--i-gear)}
body.c-ui #app#app [data-nav=exams]{--rs-ic:var(--i-chart)}
body.c-ui #app#app .c-tile[data-nav=study],body.c-ui #app#app .c-mini[data-nav=study]{--rs-ic:var(--i-timer)}

/* La tua giornata: card con intestazione + timeline */
body.c-ui #app#app .c-day{padding:0!important;overflow:hidden;margin-top:var(--sp-7)!important}
body.c-ui #app#app .c-day>.c-sec-head{display:flex!important;align-items:center;justify-content:space-between;gap:var(--sp-2);margin:0!important;padding:var(--sp-3) var(--sp-4)!important;border-bottom:1px solid var(--border-subtle)}
body.c-ui #app#app .c-day>.c-sec-head h2{flex:1;min-width:0;margin:0!important;font-size:var(--fs-xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-wide)!important;text-transform:uppercase;color:var(--text-muted)!important}
body.c-ui #app#app .c-day>p{margin:var(--sp-3) var(--sp-4) 0;font-size:var(--fs-sm)}
body.c-ui #app#app .c-day>.btn{margin:0 var(--sp-4) var(--sp-4)}
body.c-ui #app#app .c-timeline{list-style:none;margin:0!important;padding:var(--sp-1) 0!important;border:0!important}
body.c-ui #app#app .c-timeline::before{display:none!important}
body.c-ui #app#app .c-timeline li{
  position:relative;display:grid!important;grid-template-columns:44px 9px minmax(0,1fr) auto;column-gap:var(--sp-3);align-items:start;
  padding:11px var(--sp-4)!important;margin:0!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;opacity:1!important;
}
body.c-ui #app#app .c-timeline li+li{border-top:1px solid var(--border-subtle)!important}
body.c-ui #app#app .c-timeline li::before{
  content:""!important;order:1;position:relative;z-index:1;justify-self:center;align-self:start;
  width:7px!important;height:7px!important;margin-top:5px;border-radius:50%;border:0!important;inset:auto!important;
  background:var(--border-strong)!important;box-shadow:0 0 0 3px var(--bg-card)!important;
}
body.c-ui #app#app .c-timeline li::after{content:""!important;position:absolute;left:calc(var(--sp-4) + 44px + var(--sp-3) + 4px);top:22px;bottom:-12px;width:1px;background:var(--border-subtle)!important;border:0!important;height:auto!important}
body.c-ui #app#app .c-timeline li:last-child::after{display:none!important}
body.c-ui #app#app .c-timeline time{
  order:0;width:44px;padding-top:1px;margin:0!important;background:none!important;
  font-family:var(--font-numeric)!important;font-variant-numeric:tabular-nums;font-size:var(--fs-sm)!important;font-weight:var(--fw-medium)!important;color:var(--text-muted)!important;letter-spacing:0!important;
}
body.c-ui #app#app .c-timeline li>*{grid-column:auto!important;grid-row:auto!important}
body.c-ui #app#app .c-timeline li>div{order:2;min-width:0}
body.c-ui #app#app .c-timeline li>.c-chip{order:3;align-self:start}
body.c-ui #app#app .c-timeline li>div>b{display:block;font-size:var(--fs-base)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug);line-height:1.3;text-transform:uppercase;color:var(--text-primary)!important}
body.c-ui #app#app .c-timeline li>div>small{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:3px;font-size:var(--fs-sm)!important;color:var(--text-muted)!important}
body.c-ui #app#app .c-timeline li:has(.c-chip.live) time{color:var(--accent)!important;font-weight:var(--fw-semibold)!important}
body.c-ui #app#app .c-timeline li:has(.c-chip.live)::before{background:var(--accent)!important}
body.c-ui #app#app .c-timeline li.past time{color:var(--text-faint)!important}
body.c-ui #app#app .c-timeline li.past::before{background:var(--border-color)!important}
body.c-ui #app#app .c-timeline li.past>div>b{color:var(--text-muted)!important}

/* Widget 2 colonne */
body.c-ui #app#app .c-minis{display:grid!important;grid-template-columns:1fr 1fr!important;gap:var(--sp-3)!important;margin:var(--sp-3) 0!important}
body.c-ui #app#app .c-mini{
  position:relative;display:flex!important;flex-direction:column!important;align-items:stretch!important;text-align:left;
  min-height:116px;padding:var(--sp-4)!important;margin:0!important;overflow:hidden;
  border-radius:var(--r-lg)!important;background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-card)!important;color:var(--text-primary)!important;
  transition:border-color var(--dur-fast),transform var(--dur-fast) var(--ease);
}
body.c-ui #app#app .c-mini:hover{border-color:var(--border-strong)!important}
body.c-ui #app#app .c-mini:active{transform:scale(.99)}
body.c-ui #app#app .c-mini::before,body.c-ui #app#app .c-mini::after{display:none!important}
body.c-ui #app#app .c-mini-top{display:flex!important;align-items:center;gap:6px;font-size:var(--fs-2xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-widest)!important;text-transform:uppercase;color:var(--text-faint)!important}
body.c-ui #app#app .c-mini-top>span{display:block;width:13px;height:13px;flex:none;font-size:0!important;background:var(--text-faint);-webkit-mask:var(--rs-ic,var(--i-spark)) center/contain no-repeat;mask:var(--rs-ic,var(--i-spark)) center/contain no-repeat}
body.c-ui #app#app .c-mini[data-nav=exams]{--rs-ic:var(--i-trophy)}
body.c-ui #app#app .c-mini>b{display:block;margin-top:auto;padding-top:var(--sp-4);font-size:var(--fs-2xl)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-tight)!important;font-variant-numeric:tabular-nums;line-height:1;color:var(--text-primary)!important}
body.c-ui #app#app .c-mini>small{display:block;margin-top:5px;font-size:var(--fs-sm)!important;color:var(--text-muted)!important;line-height:1.35}
body.c-ui #app#app .c-bar{position:absolute!important;left:0;right:0;bottom:0;height:3px!important;margin:0!important;border-radius:0!important;background:var(--track)!important}
body.c-ui #app#app .c-bar>i{display:block;height:100%;background:var(--accent)!important;border-radius:0 2px 2px 0}

/* Mobilità (card trasporti, start, how) */
body.c-ui #app#app .home-mobility{margin-top:var(--sp-7)}
body.c-ui #app#app :is(.mobility-card-head,.mobility-start){display:flex!important;align-items:flex-start;gap:var(--sp-3)}
body.c-ui #app#app .mobility-start{flex-wrap:wrap}
body.c-ui #app#app .mobility-start>div:nth-child(2){flex:1;min-width:0}
body.c-ui #app#app .mobility-start>.btn,body.c-ui #app#app .mobility-start>p{flex:1 0 100%}
body.c-ui #app#app :is(.mobility-symbol,.mobility-start-icon,.mobility-stop-icon){
  display:grid!important;place-items:center;flex:none;width:32px!important;height:32px!important;padding:0!important;
  border-radius:var(--r-sm)!important;background:var(--bg-inset)!important;color:var(--text-secondary)!important;border:0!important;box-shadow:none!important;
}
body.c-ui #app#app :is(.mobility-symbol,.mobility-start-icon,.mobility-stop-icon) svg{width:16px!important;height:16px!important;color:inherit!important}
body.c-ui #app#app .mobility-card .muted,body.c-ui #app#app .mobility-start .muted{font-size:var(--fs-sm)!important;margin:var(--sp-3) 0}
body.c-ui #app#app .mobility-how ol{list-style:none;margin:var(--sp-3) 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
body.c-ui #app#app .mobility-how li{display:flex;align-items:flex-start;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);line-height:1.45}
body.c-ui #app#app .mobility-how li>b{display:grid;place-items:center;flex:none;width:22px;height:22px;border-radius:var(--r-pill);background:var(--bg-inset);color:var(--text-secondary);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
body.c-ui #app#app .mobility-how strong{color:var(--text-primary)}
body.c-ui #app#app .mobility-direction-tabs{display:grid!important;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:var(--sp-3);padding:0!important;background:none!important;border:0!important}
body.c-ui #app#app .mobility-direction-tab{
  display:flex!important;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;min-height:0!important;padding:13px!important;
  border-radius:var(--r-md)!important;background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:none!important;color:var(--text-primary)!important;
  transition:border-color var(--dur-fast),background-color var(--dur-fast);
}
body.c-ui #app#app .mobility-direction-tab b{font-size:var(--fs-sm)!important;font-weight:var(--fw-semibold);letter-spacing:var(--ls-snug)}
body.c-ui #app#app .mobility-direction-tab small{font-size:var(--fs-2xs)!important;color:var(--text-faint)!important}
body.c-ui #app#app .mobility-direction-tab.active{border-color:var(--accent)!important;background:var(--accent-soft)!important;color:var(--accent-soft-text)!important}
body.c-ui #app#app .mobility-direction-tab.active small{color:var(--accent-soft-text)!important;opacity:.72}
body.c-ui #app#app .mobility-search-field{margin:var(--sp-2) 0}
body.c-ui #app#app .mobility-list-hint{font-size:var(--fs-sm)!important;color:var(--text-muted)!important;margin:var(--sp-2) 0}
body.c-ui #app#app .mobility-stop-list{display:flex;flex-direction:column;margin:0 calc(var(--sp-4) * -1) calc(var(--sp-4) * -1)}
body.c-ui #app#app .mobility-stop-row{
  display:flex!important;align-items:center;gap:var(--sp-3);width:100%;text-align:left;padding:13px var(--sp-4)!important;margin:0!important;
  background:none!important;border:0!important;border-top:1px solid var(--border-subtle)!important;border-radius:0!important;box-shadow:none!important;color:var(--text-primary)!important;
  transition:background-color var(--dur-fast);
}
body.c-ui #app#app .mobility-stop-row:hover{background:var(--bg-inset)!important}
body.c-ui #app#app .mobility-stop-row .grow>b{display:block;font-size:var(--fs-base)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug);line-height:1.3}
body.c-ui #app#app .mobility-stop-service{display:block;margin-top:2px;font-size:var(--fs-sm)!important;color:var(--text-muted)!important;line-height:1.4}
body.c-ui #app#app .mobility-stop-service b{display:block;font-weight:var(--fw-medium)!important;color:var(--text-secondary)!important}
body.c-ui #app#app .mobility-stop-open{flex:none;font-size:var(--fs-sm)!important;font-weight:var(--fw-medium);color:var(--accent)!important;white-space:nowrap;background:none!important;padding:0!important}
body.c-ui #app#app .mobility-map-card,body.c-ui #app#app .mobility-preview-image{border-radius:var(--r-lg)!important;overflow:hidden}
/* Corse (transport box) */
body.c-ui #app#app .c-trips{list-style:none;margin:var(--sp-2) 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
body.c-ui #app#app .c-trips li{display:flex!important;align-items:center;gap:10px;padding:10px 12px!important;border-radius:var(--r-md)!important;background:var(--bg-inset)!important;border:0!important}
body.c-ui #app#app .c-trips b{font-size:var(--fs-lg)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-tight);font-variant-numeric:tabular-nums;color:var(--text-primary)!important}
body.c-ui #app#app .c-trips span{flex:1;font-size:var(--fs-xs)!important;font-weight:var(--fw-medium);color:var(--text-secondary)!important}
body.c-ui #app#app .c-trips small{font-size:9px!important;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-faint)!important;font-weight:var(--fw-semibold)}
body.c-ui #app#app .card h3{margin:var(--sp-4) 0 0}

/* === ESAMI === */
/* Banner esami arretrati */
body.c-ui #app#app .c-backlog-head{display:flex!important;align-items:flex-start;gap:10px;margin-bottom:8px}
body.c-ui #app#app .c-backlog-ico{
  display:block!important;flex:none;width:28px!important;height:28px!important;border-radius:var(--r-sm)!important;
  font-size:0!important;background:var(--accent-soft)!important;position:relative;
}
body.c-ui #app#app .c-backlog-ico::before{content:"";position:absolute;inset:6px;background:var(--accent-soft-text);-webkit-mask:var(--i-book) center/contain no-repeat;mask:var(--i-book) center/contain no-repeat}
body.c-ui #app#app .c-backlog h2{font-size:var(--fs-md)!important;line-height:28px}
body.c-ui #app#app .c-backlog-head p{margin:2px 0 0!important}
body.c-ui #app#app .c-backlog-add{display:flex!important;gap:8px;align-items:stretch;margin-top:var(--sp-3)}
body.c-ui #app#app .c-backlog-add select{flex:1;min-width:0;height:42px}
body.c-ui #app#app .c-backlog-add .btn{height:42px!important;min-height:42px!important;border-radius:var(--r-md)!important;padding:0 var(--sp-4)!important;font-size:var(--fs-base)!important}
body.c-ui #app#app .c-backlog-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--sp-3)}
body.c-ui #app#app .c-backlog-chip{
  display:inline-flex!important;align-items:center;gap:6px;height:30px;padding:0 4px 0 12px!important;
  border-radius:var(--r-pill)!important;background:var(--accent-soft)!important;border:1px solid var(--accent-border)!important;color:var(--accent-soft-text)!important;
  font-size:var(--fs-sm)!important;font-weight:var(--fw-medium)!important;
}
body.c-ui #app#app .c-backlog-chip small{font-size:var(--fs-2xs)!important;color:var(--text-faint)!important}
body.c-ui #app#app .c-backlog-chip button{display:grid;place-items:center;width:22px;height:22px;padding:0;border:0;border-radius:var(--r-pill);background:transparent;color:inherit;font-size:15px;line-height:1;cursor:pointer}
body.c-ui #app#app .c-backlog-chip button:hover{background:var(--bg-card)}

/* Card libretto CFU (credit-card) */
body.c-ui #app#app .plan-progress{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:0 var(--sp-3);
  padding:var(--sp-4)!important;margin:0 0 var(--sp-3)!important;
  background:var(--bg-card)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important;border-radius:var(--r-lg)!important;box-shadow:var(--shadow-card)!important;
}
body.c-ui #app#app .plan-progress::before,body.c-ui #app#app .plan-progress::after{display:none!important}
body.c-ui #app#app .plan-progress h2{display:flex;align-items:baseline;gap:4px;margin:4px 0 0!important;font-size:var(--fs-3xl)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-tight)!important;line-height:1;font-variant-numeric:tabular-nums;color:var(--text-primary)!important}
body.c-ui #app#app .plan-progress h2 small{font-size:var(--fs-md)!important;font-weight:var(--fw-medium)!important;color:var(--text-faint)!important;letter-spacing:var(--ls-normal)}
body.c-ui #app#app .plan-progress p{margin:4px 0 0!important;font-size:var(--fs-sm)!important;color:var(--text-muted)!important}
body.c-ui #app#app .progress-number{text-align:right;background:none!important;border:0!important;padding:0!important}
body.c-ui #app#app .progress-number strong{display:block;font-size:var(--fs-lg)!important;font-weight:var(--fw-semibold)!important;font-variant-numeric:tabular-nums;color:var(--text-primary)!important}
body.c-ui #app#app .progress-number span{font-size:var(--fs-2xs)!important;letter-spacing:var(--ls-widest);text-transform:uppercase;font-weight:var(--fw-semibold);color:var(--text-faint)!important}
body.c-ui #app#app .plan-progress progress{grid-column:1/-1;margin-top:var(--sp-4)}

/* Piano di studi: accordion per anno */
body.c-ui #app#app .card:has(>details.timeline-year){padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
body.c-ui #app#app details.timeline-year{
  border-radius:var(--r-lg)!important;background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-card)!important;
  overflow:hidden;margin:0!important;padding:0!important;transition:border-color var(--dur),background-color var(--dur);
}
body.c-ui #app#app details.timeline-year+details.timeline-year{margin-top:8px!important}
body.c-ui #app#app details.timeline-year[open]{border-color:var(--border-strong)!important}
body.c-ui #app#app details.timeline-year>summary{
  display:flex!important;align-items:center;gap:var(--sp-3);width:100%;padding:14px var(--sp-4)!important;margin:0!important;
  list-style:none;text-align:left;background:none!important;border:0!important;border-radius:0!important;color:var(--text-primary)!important;
}
body.c-ui #app#app details>summary::-webkit-details-marker{display:none}
body.c-ui #app#app .timeline-marker{
  display:grid!important;place-items:center;flex:none;width:30px!important;height:30px!important;padding:0!important;
  border-radius:var(--r-sm)!important;background:var(--bg-inset)!important;color:var(--text-secondary)!important;border:0!important;box-shadow:none!important;
  font-size:var(--fs-sm)!important;font-weight:var(--fw-semibold)!important;font-variant-numeric:tabular-nums;transition:background-color var(--dur),color var(--dur);
}
body.c-ui #app#app details.timeline-year[open] .timeline-marker{background:var(--accent-soft)!important;color:var(--accent-soft-text)!important}
body.c-ui #app#app details.timeline-year>summary>span:nth-child(2){flex:1;min-width:0}
body.c-ui #app#app details.timeline-year>summary b{display:block;font-size:var(--fs-md)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug)}
body.c-ui #app#app details.timeline-year>summary small{display:block;margin-top:1px;font-size:var(--fs-sm)!important;color:var(--text-muted)!important}
body.c-ui #app#app .timeline-chevron{
  display:block!important;flex:none;width:16px;height:16px;font-size:0!important;background:var(--text-faint);
  -webkit-mask:var(--i-chev-d) center/contain no-repeat;mask:var(--i-chev-d) center/contain no-repeat;
  transition:transform var(--dur) var(--ease-out),background-color var(--dur);
}
body.c-ui #app#app details.timeline-year[open] .timeline-chevron{transform:rotate(180deg);background:var(--text-secondary)}
body.c-ui #app#app .timeline-year-body{padding:2px var(--sp-4) var(--sp-4)!important;border-top:1px solid var(--border-subtle);background:none!important}
body.c-ui #app#app :is(.timeline-year-body,details.timeline-semester,details.timeline-year)::before{display:none!important}
/* Tooltip dei badge */
body.c-ui #app#app .study-badge::after{background:var(--text-primary)!important;color:var(--bg-primary)!important;border-radius:var(--r-sm)!important;box-shadow:var(--shadow-pop)!important;font-family:var(--font-sans)!important;font-size:var(--fs-xs)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-normal)!important;text-transform:none!important;line-height:1.4}
/* Semestri: gruppi con etichetta e linea */
body.c-ui #app#app details.timeline-semester{margin:var(--sp-4) 0 0!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important}
body.c-ui #app#app details.timeline-semester:first-child{margin-top:var(--sp-3)!important}
body.c-ui #app#app details.timeline-semester>summary{
  display:flex!important;align-items:center;gap:6px;padding:4px 0!important;margin:0 0 8px!important;list-style:none;
  background:none!important;border:0!important;color:var(--text-faint)!important;
}
body.c-ui #app#app details.timeline-semester>summary>span:first-child{display:flex;align-items:baseline;gap:6px;flex:none}
body.c-ui #app#app details.timeline-semester>summary b{font-size:var(--fs-2xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-widest)!important;text-transform:uppercase;color:var(--text-faint)!important}
body.c-ui #app#app details.timeline-semester>summary small{font-size:var(--fs-2xs)!important;color:var(--text-faint)!important;font-variant-numeric:tabular-nums}
body.c-ui #app#app details.timeline-semester>summary::after{content:"";flex:1;height:1px;background:var(--border-subtle);order:1}
body.c-ui #app#app details.timeline-semester>summary>span:last-child{
  order:2;flex:none;width:14px;height:14px;font-size:0!important;background:var(--text-faint);
  -webkit-mask:var(--i-chev-d) center/contain no-repeat;mask:var(--i-chev-d) center/contain no-repeat;transition:transform var(--dur) var(--ease-out);
}
body.c-ui #app#app details.timeline-semester[open]>summary>span:last-child{transform:rotate(180deg)}
/* Riga materia (course-row) */
body.c-ui #app#app .study-activity{
  display:flex!important;align-items:flex-start;gap:12px;padding:12px!important;margin:0!important;
  border-radius:var(--r-md)!important;background:var(--bg-card-muted)!important;border:1px solid transparent!important;box-shadow:none!important;
  transition:border-color var(--dur-fast),background-color var(--dur-fast);
}
body.c-ui #app#app .study-activity+.study-activity{margin-top:6px!important}
body.c-ui #app#app .study-activity:hover{border-color:var(--border-color)!important;background:var(--bg-card)!important}
body.c-ui #app#app .study-activity::before{display:none!important}
body.c-ui #app#app .study-check{display:block!important;flex:none;margin:1px 0 0!important;padding:0!important;width:18px;height:18px;position:relative}
body.c-ui #app#app .study-check>span[aria-hidden]{display:none!important}
body.c-ui #app#app .study-check input{position:static!important;opacity:1!important}
body.c-ui #app#app .study-activity-body{flex:1;min-width:0}
body.c-ui #app#app .study-activity-title{display:flex!important;align-items:flex-start;justify-content:space-between;gap:12px}
body.c-ui #app#app .study-activity-title strong{display:block;font-size:var(--fs-base)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug);line-height:1.3;color:var(--text-primary)!important}
body.c-ui #app#app .study-badges{display:flex!important;flex-wrap:wrap;gap:6px;margin-top:6px}
body.c-ui #app#app .study-badge{
  display:inline-flex!important;align-items:center;height:auto;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;
  font-size:var(--fs-2xs)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-wide)!important;text-transform:uppercase;color:var(--text-faint)!important;
}
body.c-ui #app#app .study-badge.type-ssd{
  font-family:var(--font-numeric)!important;text-transform:none;letter-spacing:.01em!important;
  padding:2px 6px!important;border-radius:var(--r-xs)!important;background:var(--bg-inset)!important;border:1px solid var(--border-subtle)!important;
}
body.c-ui #app#app .study-cfu{
  flex:none;display:grid!important;place-items:center;min-width:44px;padding:6px 8px!important;
  border-radius:var(--r-sm)!important;background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:none!important;
  text-align:center;line-height:1.1;font-size:var(--fs-md)!important;font-weight:var(--fw-semibold)!important;font-variant-numeric:tabular-nums;color:var(--text-primary)!important;
}
body.c-ui #app#app .study-cfu small{display:block;font-size:9px!important;letter-spacing:var(--ls-widest);color:var(--text-faint)!important;font-weight:var(--fw-semibold)}
body.c-ui #app#app .study-activity.is-passed strong{color:var(--text-muted)!important;text-decoration:line-through;text-decoration-color:var(--border-strong)}

/* === CALENDARIO === */
body.c-ui #app#app .c-cal{background:none!important;padding:0!important}
body.c-ui #app#app .c-cal-head{display:flex!important;align-items:center;justify-content:space-between;gap:var(--sp-2);margin:0 0 var(--sp-4)!important}
body.c-ui #app#app .c-round{
  display:grid!important;place-items:center;width:34px!important;height:34px!important;padding:0!important;
  border-radius:var(--r-pill)!important;background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:none!important;
  color:var(--text-primary)!important;font-size:20px!important;line-height:1;
}
body.c-ui #app#app .c-round:hover{background:var(--bg-inset)!important;border-color:var(--border-strong)!important}
body.c-ui #app#app .c-cal-title{display:inline-block;font-size:var(--fs-xl)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug)!important;min-width:148px;text-align:center;font-variant-numeric:tabular-nums;color:var(--text-primary)!important}
body.c-ui #app#app .c-cal-title::first-letter{text-transform:uppercase}
body.c-ui #app#app :is(.c-month,.c-week){display:grid!important;grid-template-columns:repeat(7,1fr)!important;gap:4px!important;margin:var(--sp-3) 0 var(--sp-4)!important;padding:0!important;background:none!important;border:0!important;box-shadow:none!important}
body.c-ui #app#app .c-month-head{text-align:center;padding:0 0 4px;font-size:9px!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-faint)!important}
body.c-ui #app#app .c-day-btn{
  display:flex!important;flex-direction:column;align-items:center;gap:5px;min-width:0;min-height:0!important;height:auto!important;
  padding:8px 0 7px!important;margin:0!important;border-radius:var(--r-md)!important;
  background:none!important;border:0!important;box-shadow:none!important;color:var(--text-muted)!important;
  transition:background-color var(--dur-fast),color var(--dur-fast);
}
body.c-ui #app#app .c-day-btn:hover{background:var(--bg-inset)!important;color:var(--text-primary)!important}
body.c-ui #app#app .c-month .c-day-btn{padding:4px 0 5px!important;gap:3px}
body.c-ui #app#app .c-month .c-day-btn small{display:none!important}
body.c-ui #app#app .c-day-btn small{font-size:9px!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-faint)!important}
body.c-ui #app#app .c-day-btn b{
  display:grid;place-items:center;width:30px;height:30px;border-radius:var(--r-pill);
  font-size:var(--fs-base)!important;font-weight:var(--fw-medium)!important;font-variant-numeric:tabular-nums;letter-spacing:0;color:inherit!important;
  transition:background-color var(--dur-fast),color var(--dur-fast);
}
body.c-ui #app#app .c-day-btn.is-today b{color:var(--accent)!important;font-weight:var(--fw-semibold)!important}
body.c-ui #app#app .c-day-btn.selected{color:var(--text-primary)!important;background:none!important}
body.c-ui #app#app .c-day-btn.selected small{color:var(--accent-soft-text)!important}
body.c-ui #app#app .c-day-btn.selected b{background:var(--accent)!important;color:var(--text-on-accent)!important;font-weight:var(--fw-semibold)!important}
body.c-ui #app#app .c-day-btn.off{opacity:.38}
body.c-ui #app#app .c-dots{display:flex!important;justify-content:center;gap:2px;height:3px;min-height:3px}
body.c-ui #app#app .c-dots i{display:block;width:3px!important;height:3px!important;border-radius:50%;background:var(--border-strong)!important}
body.c-ui #app#app .c-day-btn.selected .c-dots i{background:var(--accent)!important}
/* Intestazione giorno con linea */
body.c-ui #app#app .c-cal .c-sec-head{display:flex!important;align-items:center;gap:var(--sp-2);margin:var(--sp-5) 0 var(--sp-3)!important;padding:0!important;border:0!important}
body.c-ui #app#app .c-cal .c-sec-head h2{flex:none;margin:0!important;font-size:var(--fs-sm)!important;font-weight:var(--fw-semibold)!important;color:var(--text-secondary)!important;letter-spacing:var(--ls-snug)!important;text-transform:none}
body.c-ui #app#app .c-cal .c-sec-head::after{content:"";order:2;flex:1;height:1px;background:var(--border-subtle)}
body.c-ui #app#app .c-cal .c-sec-head .c-count{order:3}
/* Lista eventi */
body.c-ui #app#app .c-agenda-list{
  display:block!important;overflow:hidden;margin:0!important;padding:0!important;
  background:var(--bg-card)!important;border:1px solid var(--border-color)!important;border-radius:var(--r-lg)!important;box-shadow:var(--shadow-card)!important;
}
body.c-ui #app#app .c-agenda-list:empty{display:none!important}
body.c-ui #app#app .c-agenda{
  display:grid!important;grid-template-columns:52px 2px minmax(0,1fr) auto;column-gap:var(--sp-3);align-items:stretch;
  padding:13px var(--sp-4)!important;margin:0!important;background:none!important;border:0!important;border-bottom:1px solid var(--border-subtle)!important;border-radius:0!important;box-shadow:none!important;
  transition:background-color var(--dur-fast);
}
body.c-ui #app#app .c-agenda:last-child{border-bottom:0!important}
body.c-ui #app#app .c-agenda:hover{background:var(--bg-card-muted)!important}
body.c-ui #app#app .c-agenda::before{content:""!important;order:1;display:block;width:2px!important;height:auto!important;border-radius:2px;background:var(--border-color)!important;position:static!important;inset:auto!important}
body.c-ui #app#app .c-agenda.c-k-lesson::before,body.c-ui #app#app .c-agenda.c-k-alfa::before{background:var(--accent)!important}
body.c-ui #app#app .c-agenda.c-k-exam::before{background:var(--text-secondary)!important}
body.c-ui #app#app .c-agenda.c-k-deadline::before{background:var(--border-strong)!important}
body.c-ui #app#app .c-agenda::after{display:none!important}
body.c-ui #app#app .c-agenda-time{order:0;padding-top:1px;background:none!important;font-family:var(--font-numeric)!important;font-variant-numeric:tabular-nums;font-size:var(--fs-sm)!important;line-height:1.35;letter-spacing:0;text-align:left!important}
body.c-ui #app#app .c-agenda-time b{display:block;color:var(--text-primary)!important;font-weight:var(--fw-medium)!important;font-size:var(--fs-sm)!important}
body.c-ui #app#app .c-agenda-time small{display:block;margin-top:1px;color:var(--text-faint)!important;font-size:var(--fs-2xs)!important;font-weight:var(--fw-regular)!important}
body.c-ui #app#app .c-agenda-body{order:2;min-width:0}
body.c-ui #app#app .c-agenda-kind{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:var(--fs-2xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-widest)!important;text-transform:uppercase;color:var(--text-faint)!important}
body.c-ui #app#app .c-agenda-body>b{display:block;margin-top:3px;font-size:var(--fs-base)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug);line-height:1.3;color:var(--text-primary)!important}
body.c-ui #app#app .c-room{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:3px;font-size:var(--fs-sm)!important;color:var(--text-muted)!important}
body.c-ui #app#app .c-agenda-actions{order:3;display:flex!important;flex-direction:column;gap:4px;align-self:center}
body.c-ui #app#app .c-icon-btn{
  display:grid!important;place-items:center;width:30px!important;height:30px!important;padding:0!important;
  border-radius:var(--r-sm)!important;border:1px solid var(--border-color)!important;background:var(--bg-card)!important;box-shadow:none!important;
  color:var(--text-muted)!important;font-size:13px;text-decoration:none;transition:all var(--dur-fast);
}
body.c-ui #app#app .c-icon-btn:hover{color:var(--accent)!important;border-color:var(--accent-border)!important;background:var(--accent-soft)!important}
body.c-ui #app#app .c-icon-btn svg{width:15px!important;height:15px!important}
body.c-ui #app#app .c-agenda.is-cancelled,body.c-ui #app#app .c-agenda.cancelled{opacity:.55}
/* Azioni in fondo */
body.c-ui #app#app .c-tools{display:flex!important;flex-direction:column;gap:8px;margin:var(--sp-5) 0 0!important;padding:0!important;background:none!important;border:0!important}
body.c-ui #app#app .c-tool{
  display:flex!important;align-items:center;gap:var(--sp-3);width:100%;text-align:left;padding:13px var(--sp-4)!important;margin:0!important;min-height:0!important;
  border-radius:var(--r-md)!important;border:1px solid var(--border-color)!important;background:var(--bg-card)!important;box-shadow:none!important;
  color:var(--text-primary)!important;font-size:var(--fs-base)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug);
  transition:background-color var(--dur-fast);
}
body.c-ui #app#app .c-tool:hover{background:var(--bg-inset)!important}
body.c-ui #app#app .c-tool::after{content:"";margin-left:auto;flex:none;width:16px;height:16px;background:var(--text-faint);-webkit-mask:var(--i-chev-r) center/contain no-repeat;mask:var(--i-chev-r) center/contain no-repeat}
body.c-ui #app#app .c-cal-foot{display:flex!important;flex-direction:column;align-items:flex-start;gap:6px;margin-top:var(--sp-4)!important;padding:0!important;background:none!important;border:0!important}
/* FAB aggiungi */
body.c-ui #app#app .c-fab{
  position:fixed!important;z-index:68;right:max(16px,calc(50vw - var(--app-max) / 2 + 16px))!important;left:auto!important;
  bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom) + 16px + 54px)!important;
  display:grid!important;place-items:center;width:52px!important;height:52px!important;padding:0!important;
  border-radius:var(--r-pill)!important;border:0!important;background:var(--accent)!important;color:var(--text-on-accent)!important;box-shadow:var(--shadow-fab)!important;
  font-size:0!important;animation:none!important;transition:transform var(--dur-fast) var(--ease),background-color var(--dur-fast);
}
body.c-ui #app#app .c-fab:hover{background:var(--accent-hover)!important}
body.c-ui #app#app .c-fab:active{transform:scale(.94)}
body.c-ui #app#app .c-fab span{display:block;width:20px;height:20px;font-size:0;background:currentColor;-webkit-mask:var(--i-plus) center/contain no-repeat;mask:var(--i-plus) center/contain no-repeat}

/* === LEZIONI: card con eventi === */
body.c-ui #app#app .event-lesson{color:var(--text-primary)}

/* === ALTRO (hub) === */
body.c-ui #app#app .c-group{margin:var(--sp-7) 0 0!important;padding:0!important;background:none!important;border:0!important}
body.c-ui #app#app .c-group:first-of-type{margin-top:0!important}
body.c-ui #app#app .c-group-title{margin:0 0 8px!important;padding-left:2px;font-size:var(--fs-2xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-widest)!important;text-transform:uppercase;color:var(--text-faint)!important}
body.c-ui #app#app .c-tiles{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
body.c-ui #app#app .c-tile{
  display:grid!important;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;column-gap:11px;row-gap:1px;align-items:center;align-content:center;
  min-height:60px;padding:12px!important;margin:0!important;text-align:left;
  border-radius:var(--r-md)!important;background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:none!important;color:var(--text-primary)!important;
  animation:none!important;transition:border-color var(--dur-fast),background-color var(--dur-fast),transform var(--dur-fast) var(--ease);
}
body.c-ui #app#app .c-tile:hover{border-color:var(--border-strong)!important;background:var(--bg-card-muted)!important}
body.c-ui #app#app .c-tile:active{transform:scale(.985)}
body.c-ui #app#app .c-tile::before,body.c-ui #app#app .c-tile::after{display:none!important}
body.c-ui #app#app .c-tile-icon{
  grid-row:1/3;position:relative;display:block!important;width:32px!important;height:32px!important;margin:0!important;padding:0!important;
  border-radius:var(--r-sm)!important;background:var(--bg-inset)!important;box-shadow:none!important;font-size:0!important;
}
body.c-ui #app#app .c-tile-icon>*{display:none!important}
body.c-ui #app#app .c-tile-icon::before{content:"";position:absolute;inset:8px;background:var(--text-secondary);-webkit-mask:var(--rs-ic,var(--i-spark)) center/contain no-repeat;mask:var(--rs-ic,var(--i-spark)) center/contain no-repeat;transition:background-color var(--dur-fast)}
body.c-ui #app#app .c-tile:hover .c-tile-icon::before{background:var(--accent)}
body.c-ui #app#app .c-tile>b{align-self:end;min-width:0;font-size:var(--fs-sm)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug);line-height:1.25;color:var(--text-primary)!important}
body.c-ui #app#app .c-tile>small{align-self:start;min-width:0;font-size:var(--fs-2xs)!important;color:var(--text-faint)!important;line-height:1.3}

/* === SCADENZE === */
body.c-ui #app#app .c-areas h2{font-size:var(--fs-md)!important}
body.c-ui #app#app .c-areas>p{font-size:var(--fs-sm)!important;margin:6px 0 var(--sp-4)}
body.c-ui #app#app .c-area-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
body.c-ui #app#app .c-area{
  position:relative;display:flex!important;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;
  min-height:92px;padding:13px!important;margin:0!important;border-radius:var(--r-md)!important;
  background:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:none!important;color:var(--text-primary)!important;
  transition:border-color var(--dur-fast),background-color var(--dur-fast);
}
body.c-ui #app#app .c-area:hover{border-color:var(--border-strong)!important}
body.c-ui #app#app .c-area>span{display:block;width:18px;height:18px;font-size:0!important;background:var(--text-muted);-webkit-mask:var(--rs-ic,var(--i-pin)) center/contain no-repeat;mask:var(--rs-ic,var(--i-pin)) center/contain no-repeat}
body.c-ui #app#app .c-area[data-id=tasse]{--rs-ic:var(--i-euro)}
body.c-ui #app#app .c-area[data-id=borse]{--rs-ic:var(--i-cap)}
body.c-ui #app#app .c-area[data-id=piano]{--rs-ic:var(--i-doc)}
body.c-ui #app#app .c-area[data-id=iscrizioni]{--rs-ic:var(--i-pen)}
body.c-ui #app#app .c-area[data-id=laurea]{--rs-ic:var(--i-cap)}
body.c-ui #app#app .c-area[data-id=erasmus]{--rs-ic:var(--i-globe)}
body.c-ui #app#app .c-area[data-id=tirocini]{--rs-ic:var(--i-case)}
body.c-ui #app#app .c-area[data-id=bandi]{--rs-ic:var(--i-rays)}
body.c-ui #app#app .c-area[data-id=elezioni]{--rs-ic:var(--i-chat)}
body.c-ui #app#app .c-area>b{margin-top:auto;font-size:var(--fs-sm)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug);line-height:1.25}
body.c-ui #app#app .c-area>small{font-size:var(--fs-2xs)!important;color:var(--text-faint)!important}
body.c-ui #app#app .c-area::after{
  content:"";position:absolute;top:9px;right:9px;width:18px;height:18px;border-radius:var(--r-pill);
  background:var(--accent) var(--i-check) center/11px no-repeat;opacity:0;transform:scale(.6);
  transition:opacity var(--dur-fast),transform var(--dur-fast) var(--ease-out);
}
body.c-ui #app#app .c-area::after{background:none;background-color:var(--accent)}
body.c-ui #app#app .c-area.on{border-color:var(--accent)!important;background:var(--accent-soft)!important}
body.c-ui #app#app .c-area.on>span{background:var(--accent-soft-text)}
body.c-ui #app#app .c-area.on>b{color:var(--accent-soft-text)!important}
body.c-ui #app#app .c-area.on>small{color:var(--accent-soft-text)!important;opacity:.72}
body.c-ui #app#app .c-area.on::after{opacity:1;transform:none}
body.c-ui #app#app .c-area>i.rs-check,body.c-ui #app#app .c-area.on::before{
  content:"";position:absolute;top:13px;right:13px;width:10px;height:10px;z-index:1;background:var(--text-on-accent);
  -webkit-mask:var(--i-check) center/contain no-repeat;mask:var(--i-check) center/contain no-repeat;
}
body.c-ui #app#app .c-area-actions{display:flex;gap:8px;margin-top:var(--sp-4)}
body.c-ui #app#app .c-area-actions .btn:first-child{flex:1.6}
body.c-ui #app#app .c-area-actions .btn.small{flex:1;height:40px;min-height:40px!important;border-radius:var(--r-md)!important;font-size:var(--fs-base)!important}

/* === SERVIZI === */
body.c-ui #app#app .c-service h2{margin:6px 0 2px!important}
body.c-ui #app#app .c-service .meta{display:flex;align-items:center;gap:5px}
body.c-ui #app#app .c-service .meta svg{width:14px;height:14px;color:var(--text-faint)}
body.c-ui #app#app .c-service>p{font-size:var(--fs-sm)!important;color:var(--text-muted);margin:var(--sp-2) 0}
body.c-ui #app#app .c-service details{margin:var(--sp-2) 0;border-top:1px solid var(--border-subtle);padding-top:var(--sp-2)}
body.c-ui #app#app .c-service summary{list-style:none;display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary)}
body.c-ui #app#app .c-service summary::after{content:"";width:14px;height:14px;background:var(--text-faint);-webkit-mask:var(--i-chev-d) center/contain no-repeat;mask:var(--i-chev-d) center/contain no-repeat;transition:transform var(--dur) var(--ease-out)}
body.c-ui #app#app .c-service details[open] summary::after{transform:rotate(180deg)}
body.c-ui #app#app .c-hours{margin:var(--sp-2) 0 0;padding:0;display:flex;flex-direction:column}
body.c-ui #app#app .c-hours div{display:flex;justify-content:space-between;gap:var(--sp-3);padding:6px 0;border-bottom:1px solid var(--border-subtle);font-size:var(--fs-sm);background:none!important}
body.c-ui #app#app .c-hours div:last-child{border-bottom:0}
body.c-ui #app#app .c-hours dt{color:var(--text-muted);font-weight:var(--fw-medium)}
body.c-ui #app#app .c-hours dd{margin:0;color:var(--text-primary);font-variant-numeric:tabular-nums}
body.c-ui #app#app .c-hours div.today :is(dt,dd){color:var(--accent)!important;font-weight:var(--fw-semibold)}
body.c-ui #app#app .c-actions{display:flex;gap:var(--sp-4);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border-subtle)}

/* === STUDIO === */
body.c-ui #app#app .card.hero{background:var(--bg-card)!important;color:var(--text-primary)!important;padding:var(--sp-5)!important}
body.c-ui #app#app .card.hero::before,body.c-ui #app#app .card.hero::after{display:none!important}
body.c-ui #app#app .timer{margin:6px 0 var(--sp-3);font-family:var(--font-sans)!important;font-size:44px!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-tight)!important;line-height:1.05;font-variant-numeric:tabular-nums;color:var(--text-primary)!important;background:none!important;-webkit-text-fill-color:currentColor!important}
body.c-ui #app#app .gold-btn{background:var(--accent)!important;color:var(--text-on-accent)!important}
body.c-ui #app#app .c-planner{display:flex!important;flex-direction:column;align-items:flex-start;gap:var(--sp-3)}
body.c-ui #app#app .c-planner p{font-size:var(--fs-sm)!important;margin:4px 0 0}
body.c-ui #app#app .c-study-stats .row.between b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums}
body.c-ui #app#app .c-inline{flex-direction:row!important;align-items:center;flex-wrap:wrap;gap:8px}
body.c-ui #app#app .c-inline input{width:110px}

/* === TESSERA (wallet) === */
body.c-ui #app#app .c-card,body.c-ui .c-card-drawer .c-card{
  position:relative;isolation:isolate;overflow:hidden;margin:0 0 var(--sp-4)!important;
  padding:var(--sp-5)!important;border-radius:var(--r-xl)!important;border:0!important;box-shadow:var(--shadow-pop)!important;
  background:radial-gradient(120% 120% at 100% 0%,rgba(255,255,255,.18) 0%,transparent 55%),linear-gradient(145deg,var(--wallet-from) 0%,var(--wallet-to) 100%)!important;
  color:var(--wallet-text)!important;aspect-ratio:auto!important;min-height:0!important;
}
body.c-ui #app#app .c-card::after,body.c-ui .c-card-drawer .c-card::after{
  content:""!important;position:absolute!important;inset:0!important;width:auto!important;height:auto!important;z-index:-1;pointer-events:none;opacity:.5!important;
  border:0!important;border-radius:0!important;transform:none!important;
  background-image:radial-gradient(rgba(255,255,255,.16) .6px,transparent .6px)!important;background-size:9px 9px!important;
}
body.c-ui #app#app .c-card::before,body.c-ui .c-card-drawer .c-card::before,
body.c-ui :is(#app#app,.c-card-drawer) .c-card :is(.c-card-top,.c-card-body,.c-card-foot,.c-card-body>div)::before,
body.c-ui :is(#app#app,.c-card-drawer) .c-card :is(.c-card-top,.c-card-body,.c-card-foot,.c-card-body>div)::after{display:none!important}
body.c-ui :is(#app#app,.c-card-drawer) .c-card-top{display:flex!important;align-items:center;gap:8px;margin:0!important;padding:0!important;font-size:var(--fs-sm)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug);color:var(--wallet-text)!important;background:none!important}
body.c-ui :is(#app#app,.c-card-drawer) .c-card-mark{
  display:grid!important;place-items:center;flex:none;width:26px!important;height:26px!important;border-radius:7px!important;
  background:rgba(255,255,255,.14)!important;border:1px solid rgba(255,255,255,.18)!important;box-shadow:none!important;
  color:#fff!important;font-size:14px!important;font-weight:var(--fw-semibold)!important;letter-spacing:-.04em;
}
body.c-ui :is(#app#app,.c-card-drawer) .c-card-body{display:flex!important;align-items:flex-end;justify-content:space-between;gap:var(--sp-4);margin-top:var(--sp-6)!important;padding:0!important;background:none!important}
body.c-ui :is(#app#app,.c-card-drawer) .c-card-body>div:first-child{display:flex;flex-direction:column;min-width:0}
body.c-ui :is(#app#app,.c-card-drawer) .c-card-body small{display:block;font-size:9px!important;letter-spacing:var(--ls-widest)!important;text-transform:uppercase;color:var(--wallet-muted)!important;font-weight:var(--fw-semibold)!important;margin-top:var(--sp-3)}
body.c-ui :is(#app#app,.c-card-drawer) .c-card-body small:first-child{margin-top:0}
body.c-ui :is(#app#app,.c-card-drawer) .c-card-body b{display:block;margin-top:2px;font-size:var(--fs-sm)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug);color:#fff!important;font-variant-numeric:tabular-nums}
body.c-ui :is(#app#app,.c-card-drawer) .c-card-body b:first-of-type{margin-top:3px;font-size:var(--fs-xl)!important;font-weight:var(--fw-semibold)!important;line-height:1.25;text-transform:lowercase}
body.c-ui :is(#app#app,.c-card-drawer) .c-card-body small:last-child{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid rgba(255,255,255,.14);text-transform:none;letter-spacing:var(--ls-snug)!important;font-size:var(--fs-2xs)!important}
body.c-ui :is(#app#app,.c-card-drawer) .c-qr{
  flex:none;display:grid!important;place-items:center;width:96px!important;height:96px!important;padding:5px!important;
  border-radius:var(--r-sm)!important;background:#fff!important;border:0!important;box-shadow:0 6px 16px rgba(0,0,0,.28)!important;
}
body.c-ui :is(#app#app,.c-card-drawer) .c-qr :is(svg,img,canvas){width:100%!important;height:100%!important;color:#09090b}
body.c-ui :is(#app#app,.c-card-drawer) .c-card-foot{display:flex!important;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-4)!important;padding:0!important;border:0!important;background:none!important;font-size:var(--fs-2xs)!important;color:var(--wallet-muted)!important;letter-spacing:var(--ls-wide)}
body.c-ui :is(#app#app,.c-card-drawer) .c-card-foot b{color:#fff!important;font-weight:var(--fw-medium)!important}
body.c-ui #app#app .c-card~.btn.secondary{width:100%}

/* === IMPOSTAZIONI / SUPPORTO === */
body.c-ui #app#app .support-avatar{
  display:grid!important;place-items:center;flex:none;width:56px!important;height:56px!important;
  border-radius:var(--r-pill)!important;background:var(--text-primary)!important;color:var(--bg-primary)!important;border:0!important;box-shadow:none!important;
  font-size:var(--fs-lg)!important;font-weight:var(--fw-semibold)!important;letter-spacing:-.02em;text-transform:lowercase;
}
body.c-ui #app#app .support-card .row.mb,body.c-ui #app#app .card>.row:first-child{gap:var(--sp-3);margin-bottom:var(--sp-4)}
body.c-ui #app#app .card>.row:first-child h2{font-size:var(--fs-lg)!important;line-height:1.2}
body.c-ui #app#app .settings-item{padding:13px 0!important;margin:0!important;border:0!important;border-bottom:1px solid var(--border-subtle)!important;background:none!important}
body.c-ui #app#app .settings-item:first-child{padding-top:0!important}
body.c-ui #app#app .settings-item:last-child{border-bottom:0!important;padding-bottom:0!important}
body.c-ui #app#app .settings-item h3{font-size:var(--fs-base)!important;font-weight:var(--fw-medium)!important}
body.c-ui #app#app .settings-item .meta{display:block;margin-top:1px}
body.c-ui #app#app .settings-item .icon-btn{color:var(--text-faint)!important}
body.c-ui #app#app .official-links{gap:0!important}
body.c-ui #app#app .official-links .text-btn{
  display:flex!important;align-items:center;gap:var(--sp-3);width:100%;padding:13px 0!important;
  border-bottom:1px solid var(--border-subtle)!important;border-radius:0;color:var(--text-secondary)!important;font-size:var(--fs-base)!important;font-weight:var(--fw-regular)!important;
}
body.c-ui #app#app .official-links .text-btn:last-child{border-bottom:0!important}
body.c-ui #app#app .official-links .text-btn:hover{color:var(--accent)!important}
body.c-ui #app#app .support-card .stack .btn{justify-content:flex-start}
body.c-ui #app#app .support-card .stack .btn svg:last-child{margin-left:auto;color:var(--text-faint)}

/* === NEWS === */
body.c-ui #app#app .news-spotlight{background:var(--bg-card-muted)!important;border-color:transparent!important;box-shadow:none!important}
body.c-ui #app#app .news-spotlight::before,body.c-ui #app#app .news-spotlight::after{display:none!important}
body.c-ui #app#app .news-spark{display:inline-block;width:auto!important;height:auto!important;padding:0!important;background:none!important;box-shadow:none!important;color:var(--accent)!important;font-size:14px;margin-bottom:6px}
body.c-ui #app#app .news-spotlight h2{font-size:var(--fs-lg)!important;margin:2px 0 4px}
body.c-ui #app#app .news-spotlight p:not(.eyebrow){font-size:var(--fs-sm);color:var(--text-muted);margin:0}
body.c-ui #app#app .goto-support{margin:0 0 var(--sp-3)}

/* === SEGNALAZIONI: skeleton === */
body.c-ui #app#app .c-skeleton{display:flex!important;flex-direction:column;gap:var(--sp-3)}
body.c-ui #app#app .c-skeleton span{display:block;height:72px;border-radius:var(--r-lg)!important;background:var(--skeleton)!important;animation:rs-skel 1.4s var(--ease) infinite}
@keyframes rs-skel{0%,100%{opacity:1}50%{opacity:.55}}

/* ---------- 06. ELEMENTI FUORI DA #app ----------------------------------- */
/* FAB Segnala → fab piccolo (bordo, superficie card) */
body.c-ui #c-report-fab#c-report-fab{
  position:fixed!important;z-index:68;right:max(16px,calc(50vw - var(--app-max) / 2 + 16px))!important;left:auto!important;
  bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom) + 16px)!important;
  display:grid!important;place-items:center;width:44px!important;height:44px!important;padding:0!important;
  border-radius:var(--r-pill)!important;background:var(--bg-card)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-pop)!important;
  font-size:0!important;transition:transform var(--dur-fast) var(--ease),background-color var(--dur-fast);
}
/* Icona "segnala un problema": fumetto con punto esclamativo, centrato otticamente */
body.c-ui #c-report-fab#c-report-fab{
  --i-report:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 3.5H4a1.5 1.5 0 0 0-1.5 1.5v11A1.5 1.5 0 0 0 4 17.5h3.5V21l4.5-3.5h8a1.5 1.5 0 0 0 1.5-1.5V5A1.5 1.5 0 0 0 20 3.5Z'/%3E%3Cpath d='M12 7.5v4.5M12 14.6v.1' stroke-width='2.2'/%3E%3C/svg%3E");
  color:var(--danger)!important;
}
body.c-ui #c-report-fab#c-report-fab::before{content:"";display:block;width:20px;height:20px;margin-top:1px;background:currentColor;-webkit-mask:var(--i-report) center/contain no-repeat;mask:var(--i-report) center/contain no-repeat}
@media (min-width:801px){
  body.c-ui #c-report-fab#c-report-fab{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;width:auto!important;height:44px!important;padding:0 18px 0 14px!important}
  body.c-ui #c-report-fab#c-report-fab::after{content:"Segnala un problema";font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:var(--ls-snug);color:var(--text-primary)}
}
body.c-ui #c-report-fab#c-report-fab:hover{background:var(--bg-inset)!important}
body.c-ui #c-report-fab#c-report-fab:active{transform:scale(.94)}

/* Tendina tessera */
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-tab{
  right:max(0px,calc(50vw - var(--app-max) / 2))!important;top:42%;gap:6px!important;padding:12px 8px 10px!important;
  background:var(--bg-card)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important;border-right:0!important;
  border-radius:var(--r-md) 0 0 var(--r-md)!important;box-shadow:var(--shadow-pop)!important;
  font-family:var(--font-sans)!important;font-size:var(--fs-2xs)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-widest)!important;text-transform:uppercase;
}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-tab svg{width:18px!important;height:18px!important;filter:none!important}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-tab span{display:none!important}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-tab:hover{padding-right:12px!important}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-panel{
  background:var(--bg-elevated)!important;color:var(--text-primary)!important;border-left:1px solid var(--border-color)!important;box-shadow:var(--shadow-modal)!important;
  border-radius:var(--r-xl) 0 0 var(--r-xl)!important;font-family:var(--font-sans)!important;
}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-head{display:flex!important;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-3)!important;border-bottom:1px solid var(--border-subtle)!important;background:none!important;color:var(--text-primary)!important}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-head b{flex:1;display:flex;align-items:center;gap:8px;font-size:var(--fs-md)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug)}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-head svg{width:18px!important;height:18px!important}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-close{display:grid!important;place-items:center;width:30px!important;height:30px!important;padding:0!important;border:0!important;border-radius:var(--r-pill)!important;background:var(--bg-inset)!important;color:var(--text-muted)!important;font-size:18px!important;line-height:1}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-close:hover{background:var(--border-color)!important;color:var(--text-primary)!important}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-body{padding:var(--sp-4)!important}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-body :is(p,.notice){font-size:var(--fs-sm);color:var(--text-muted)}
body.c-ui #c-card-drawer#c-card-drawer .c-drawer-body .btn{
  display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 var(--sp-4);border-radius:var(--r-md);
  background:var(--bg-card)!important;border:1px solid var(--border-color)!important;color:var(--text-primary)!important;font-size:var(--fs-base);font-weight:var(--fw-medium);box-shadow:none!important;
}

/* Modale (dialog nativo) */
body.c-ui #modal#modal{
  width:calc(100% - 32px);max-width:400px!important;max-height:calc(100dvh - 48px);padding:0!important;
  border-radius:var(--r-xl)!important;background:var(--bg-elevated)!important;color:var(--text-primary)!important;
  border:1px solid var(--border-color)!important;box-shadow:var(--shadow-modal)!important;overflow:auto;
}
body.c-ui #modal#modal::backdrop{background:var(--overlay);-webkit-backdrop-filter:blur(6px) saturate(120%);backdrop-filter:blur(6px) saturate(120%)}
body.c-ui #modal#modal .dialog-head{position:sticky;top:0;z-index:1;display:flex!important;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-4) var(--sp-3)!important;margin:0!important;border-bottom:1px solid var(--border-subtle)!important;background:var(--bg-elevated)!important}
body.c-ui #modal#modal .dialog-head h2{flex:1;margin:0;font-size:var(--fs-md)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug)!important;color:var(--text-primary)!important}
body.c-ui #modal#modal .dialog-head .icon-btn{width:30px!important;height:30px!important;background:var(--bg-inset)!important;color:var(--text-muted)!important;font-size:18px;line-height:1}
body.c-ui #modal#modal .dialog-head .icon-btn:hover{background:var(--border-color)!important;color:var(--text-primary)!important}
body.c-ui #modal#modal #modal-body{padding:var(--sp-4)!important;display:flex;flex-direction:column;gap:var(--sp-4);font-size:var(--fs-base);color:var(--text-primary)}
body.c-ui #modal#modal #modal-body :is(.muted,.meta){color:var(--text-muted)!important;font-size:var(--fs-sm)}

/* Toast */
body.c-ui #toast#toast{
  bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom) + 12px)!important;
  max-width:min(420px,calc(100vw - 32px));padding:11px 16px!important;border-radius:var(--r-pill)!important;
  background:var(--text-primary)!important;color:var(--bg-primary)!important;border:0!important;box-shadow:var(--shadow-pop)!important;
  font-family:var(--font-sans)!important;font-size:var(--fs-sm)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug);
}

/* Banner installazione */
body.c-ui #app#app .install-nudge{
  position:fixed!important;left:50%!important;right:auto!important;transform:translateX(-50%);
  width:calc(min(100vw,var(--app-max)) - 32px)!important;bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom) + 12px)!important;
  display:flex!important;align-items:center;gap:var(--sp-3);padding:10px 10px 10px 14px!important;border-radius:var(--r-lg)!important;
  background:var(--bg-elevated)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-pop)!important;
}
body.c-ui #app#app .install-nudge b{color:var(--text-primary)!important;font-size:var(--fs-sm)!important}
/* ---------- 07. ICONE AL POSTO DELLE EMOJI (restyle.js) ------------------ */
html body.c-ui{
  --i-phone:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 16.5v3a2 2 0 0 1-2.2 2A18.5 18.5 0 0 1 2.5 5.2 2 2 0 0 1 4.5 3h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.4 10.9a15 15 0 0 0 4.7 4.7l1.3-1.3a2 2 0 0 1 2.1-.5c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2Z'/%3E%3C/svg%3E");
  --i-user:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4.5 21a7.5 7.5 0 0 1 15 0'/%3E%3C/svg%3E");
  --i-lock:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4.5' y='10.5' width='15' height='10.5' rx='2.5'/%3E%3Cpath d='M8 10.5V7.5a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
  --i-heart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.4 5.6a5 5 0 0 0-7.1 0L12 6.9l-1.3-1.3a5 5 0 0 0-7.1 7.1L12 21l8.4-8.3a5 5 0 0 0 0-7.1Z'/%3E%3C/svg%3E");
  --i-plane:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.8 19.2 16 11l3.5-3.5a2.1 2.1 0 0 0-3-3L13 8 4.8 6.2 3.5 7.5l6.5 4-3 3H4.5l-1 1 3.5 1.5L8.5 20.5l1-1V17l3-3 4 6.5Z'/%3E%3C/svg%3E");
  --i-mail:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Cpath d='m3.5 6.5 8.5 6.5 8.5-6.5'/%3E%3C/svg%3E");
  --i-bank:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9.5 12 4l9 5.5M4.5 9.5v9M9.5 9.5v9M14.5 9.5v9M19.5 9.5v9M3 20.5h18'/%3E%3C/svg%3E");
  --i-seat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3.5h10v8H7zM5 11.5h14v4H5zM7 15.5v5M17 15.5v5'/%3E%3C/svg%3E");
  --i-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20.5 20.5-4.5-4.5'/%3E%3C/svg%3E");
  --i-signal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20v-3M9 20v-7M14 20V9M19 20V4'/%3E%3C/svg%3E");
  --i-warn:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 4 2.6 17.5A2 2 0 0 0 4.3 20.5h15.4a2 2 0 0 0 1.7-3L13.7 4a2 2 0 0 0-3.4 0Z'/%3E%3Cpath d='M12 9.5v4.5M12 17.2v.1'/%3E%3C/svg%3E");
  --i-check-circle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m8 12.3 2.7 2.7L16 9.6'/%3E%3C/svg%3E");
  --i-plug:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 2.5v5M15 2.5v5M6 7.5h12v3a6 6 0 0 1-12 0v-3ZM12 16.5v5'/%3E%3C/svg%3E");
  --i-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5M12 7.8v.1'/%3E%3C/svg%3E");
  --i-bell:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9a6 6 0 0 1 12 0c0 6 2.5 7.5 2.5 7.5h-17S6 15 6 9ZM10 20a2.2 2.2 0 0 0 4 0'/%3E%3C/svg%3E");
  --i-home:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 10.5 12 4l8 6.5V20a1 1 0 0 1-1 1h-4.5v-6h-5v6H5a1 1 0 0 1-1-1v-9.5Z'/%3E%3C/svg%3E");
  --i-map:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3 3 5.5v15L9 18l6 2.5 6-2.5v-15L15 5.5 9 3Z'/%3E%3Cpath d='M9 3v15M15 5.5v15'/%3E%3C/svg%3E");
}
.rs-ico{
  display:inline-block;flex:none;width:1.08em;height:1.08em;margin-right:.38em;vertical-align:-.17em;
  background:currentColor;opacity:.78;
  -webkit-mask:var(--rs-ic) center/contain no-repeat;mask:var(--rs-ic) center/contain no-repeat;
}
body.c-ui #app#app :is(.c-agenda-kind,.c-hero-kind,.c-timeline small) .rs-ico{opacity:1;margin-right:.1em}
body.c-ui #app#app .c-tool .rs-ico{width:16px;height:16px;margin:0;color:var(--text-muted)}
body.c-ui #app#app :is(.c-chip-btn,.tabs button,.btn) .rs-ico{margin-right:.4em}
body.c-ui #app#app .c-chip-btn.on .rs-ico{opacity:1}

body.c-ui #app#app .install-nudge .btn.btn.btn{background:var(--accent)!important;color:var(--text-on-accent)!important;height:32px;min-height:32px!important;padding:0 12px!important;font-size:var(--fs-sm)!important;border-radius:var(--r-sm)!important}

/* ---------- 08. DESKTOP A SCHERMO INTERO (da 801px) -----------------------
   Su computer niente colonna "telefono": barra in alto a tutta larghezza,
   menu laterale a sinistra e contenuto largo, come l'app prima del restyle. */
@media (min-width:801px){
  html body.c-ui{--desk-max:1240px;--side-w:224px;background:var(--bg-subtle)!important}
  body.c-ui #app#app{max-width:none!important;margin:0!important;border:0!important;box-shadow:none!important;background:var(--bg-subtle)!important}

  /* Barra in alto */
  body.c-ui #app#app .topbar{border-bottom:1px solid var(--border-color)!important;animation:none!important}
  body.c-ui #app#app .topbar .header-inner{max-width:var(--desk-max)!important;margin:0 auto!important;padding:0 var(--sp-6)!important;gap:var(--sp-3)!important}
  body.c-ui #app#app .c-esse3{width:auto!important;padding:0 12px 0 8px!important;gap:6px;display:inline-flex!important;align-items:center;border-radius:var(--r-pill)!important}
  body.c-ui #app#app .c-esse3 span{display:inline!important;font-size:0!important;color:var(--text-primary)}
  body.c-ui #app#app .c-esse3 span::after{content:"WEB ESSE3";font-size:var(--fs-sm);font-weight:var(--fw-semibold);letter-spacing:var(--ls-wide)}
  body.c-ui #app#app .c-esse3 .c-esse3-ico{width:18px!important;height:18px!important}

  /* Griglia: menu laterale + contenuto */
  body.c-ui #app#app .layout{
    display:grid!important;grid-template-columns:var(--side-w) minmax(0,1fr)!important;gap:var(--sp-7)!important;align-items:start;
    max-width:var(--desk-max)!important;margin:0 auto!important;padding:var(--sp-6) var(--sp-6) 0!important;
  }
  body.c-ui #app#app .nav{
    position:sticky!important;top:calc(var(--appbar-h) + var(--sp-6))!important;left:auto!important;bottom:auto!important;transform:none!important;
    width:auto!important;max-width:none!important;display:flex!important;flex-direction:column!important;gap:2px!important;
    padding:var(--sp-2)!important;grid-template-columns:none!important;
    background:var(--bg-card)!important;-webkit-backdrop-filter:none;backdrop-filter:none;
    border:1px solid var(--border-color)!important;border-radius:var(--r-lg)!important;box-shadow:var(--shadow-card)!important;
  }
  body.c-ui #app#app .nav button{
    flex-direction:row!important;justify-content:flex-start!important;gap:var(--sp-3)!important;width:100%!important;
    height:40px!important;padding:0 var(--sp-3)!important;border-radius:var(--r-md)!important;
    font-size:var(--fs-base)!important;font-weight:var(--fw-medium)!important;letter-spacing:var(--ls-snug)!important;color:var(--text-muted)!important;
  }
  body.c-ui #app#app .nav button .ico,body.c-ui #app#app .nav button svg{width:18px!important;height:18px!important}
  body.c-ui #app#app .nav button:hover{background:var(--bg-inset)!important;color:var(--text-primary)!important}
  body.c-ui #app#app .nav button.active{background:var(--accent-soft)!important}
  body.c-ui #app#app .nav button.active,body.c-ui #app#app .nav button.active span,body.c-ui #app#app .nav button.active .ico{color:var(--accent-soft-text)!important}
  body.c-ui #app#app .nav button::after{top:50%;left:0;width:2px;height:16px;transform:translateY(-50%) scaleY(0)}
  body.c-ui #app#app .nav button.active::after{transform:translateY(-50%) scaleY(1)}

  /* Contenuto */
  body.c-ui #app#app main.content{padding:0 0 calc(var(--sp-9) + 40px)!important;min-width:0}
  body.c-ui #app#app .c-hello h1{font-size:36px!important}
  body.c-ui #app#app .c-quicks{margin:var(--sp-4) 0 0!important;padding:2px 0!important;overflow:visible;flex-wrap:wrap!important}
  body.c-ui #app#app :is(.chips,.c-chips,.mobility-line-tabs){margin:0 0 var(--sp-3)!important;padding:2px 0!important;flex-wrap:wrap!important}
  body.c-ui #app#app .c-minis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.c-ui #app#app .c-tiles{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))!important}
  body.c-ui #app#app .c-area-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))!important}
  body.c-ui #app#app .mobility-stop-list{margin:0 calc(var(--sp-4) * -1) calc(var(--sp-4) * -1)}
  body.c-ui #app#app .c-card{max-width:440px}
  body.c-ui #app#app .tabs{max-width:560px}
  body.c-ui #app#app .c-seg{max-width:320px}

  /* Elementi fluttuanti ancorati alla finestra */
  body.c-ui #c-report-fab#c-report-fab{right:var(--sp-6)!important;bottom:var(--sp-6)!important}
  body.c-ui #app#app .c-fab{right:var(--sp-6)!important;bottom:calc(var(--sp-6) + 56px)!important}
  body.c-ui #c-card-drawer#c-card-drawer .c-drawer-tab{right:0!important}
  body.c-ui #toast#toast{bottom:var(--sp-6)!important}
  body.c-ui #app#app .install-nudge{left:auto!important;right:var(--sp-6)!important;transform:none;width:420px!important;bottom:calc(var(--sp-6) + 60px)!important}
}


/* ---------- 09. REVISIONE 30/10: priorità, chiarezza, meno ripetizioni ---------------- */
/* Azioni rapide: tutte visibili su telefono (griglia a 4), niente pillola tagliata a destra */
@media (max-width:800px){
  body.c-ui #app#app .c-quicks{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:var(--sp-2)!important;margin:var(--sp-4) 0 0!important;padding:0!important;overflow:visible}
  body.c-ui #app#app .c-quick{flex-direction:column!important;justify-content:center;gap:5px!important;height:60px!important;padding:6px 4px!important;border-radius:var(--r-md)!important;font-size:var(--fs-xs)!important;white-space:nowrap;min-width:0}
  body.c-ui #app#app .c-quick>span{width:18px!important;height:18px!important}
  /* Il titolo della pagina è già nella barra in alto: niente doppione, restano descrizione e azioni */
  body.c-ui #app#app #main .page-top .eyebrow,body.c-ui #app#app #main .page-top h1{display:none!important}
  body.c-ui #app#app #main .page-top>div:first-child:not(:has(p)){display:none!important}
  body.c-ui #app#app #main .page-top:not(:has(p)):not(:has(.btn,.icon-btn:not([data-nav]))){display:none!important}
  body.c-ui #app#app #main .page-top p{margin:0!important}
}
/* Istruzioni ripetute dei bus: il percorso è già guidato dalla pagina */
body.c-ui #app#app .mobility-how{display:none!important}

/* Più aule: indicazione esplicita */
body.c-ui #app#app .c-more-rooms{display:inline-flex;align-items:center;margin-left:4px;padding:0 6px;height:18px;border-radius:var(--r-pill);background:var(--bg-inset);color:var(--text-muted)!important;font-size:var(--fs-2xs)!important;font-weight:var(--fw-medium)!important;white-space:nowrap}
body.c-ui #app#app .c-map-link{white-space:nowrap}

/* CFU da verificare */
body.c-ui #app#app .c-cfu-check{border-color:var(--accent-border)!important}
body.c-ui #app#app .c-cfu-ico{position:relative;display:block;flex:none;width:28px;height:28px;border-radius:var(--r-sm);background:var(--accent-soft)}
body.c-ui #app#app .c-cfu-ico::before{content:"";position:absolute;inset:6px;background:var(--accent-soft-text);-webkit-mask:var(--i-warn) center/contain no-repeat;mask:var(--i-warn) center/contain no-repeat}
body.c-ui #app#app .c-cfu-check h2{font-size:var(--fs-md)!important;line-height:28px}
body.c-ui #app#app .c-cfu-list{list-style:none;margin:var(--sp-3) 0 0;padding:0;display:flex;flex-direction:column}
body.c-ui #app#app .c-cfu-list li{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3) 0;border-top:1px solid var(--border-subtle)}
body.c-ui #app#app .c-cfu-list b{font-weight:var(--fw-semibold)}
body.c-ui #app#app .c-cfu-list .grow>b{display:block;font-size:var(--fs-base)}
body.c-ui #app#app .c-cfu-list small{display:block;margin-top:2px;font-size:var(--fs-sm);color:var(--text-muted)}
body.c-ui #app#app .c-cfu-list small b{color:var(--text-primary)}
body.c-ui #app#app .c-cfu-actions{display:flex;gap:var(--sp-2);flex:none}

/* Azioni secondarie meno prominenti: in impostazioni diventano righe di elenco */
body.c-ui #app#app :is(#account-card .stack,.card>h2+.stack.mt)>.btn.secondary{
  justify-content:flex-start!important;width:100%;height:46px!important;min-height:46px!important;padding:0!important;
  background:transparent!important;border:0!important;border-bottom:1px solid var(--border-subtle)!important;border-radius:0!important;
  color:var(--text-primary)!important;font-weight:var(--fw-regular)!important;
}
body.c-ui #app#app :is(#account-card .stack,.card>h2+.stack.mt)>.btn.secondary::after{content:"";margin-left:auto;width:16px;height:16px;background:var(--text-faint);-webkit-mask:var(--i-chev-r) center/contain no-repeat;mask:var(--i-chev-r) center/contain no-repeat}
body.c-ui #app#app :is(#account-card .stack,.card>h2+.stack.mt)>.btn.secondary:hover{background:transparent!important;color:var(--accent)!important}
body.c-ui #app#app :is(#account-card .stack,.card>h2+.stack.mt){gap:0!important}
body.c-ui #app#app .card>h2+.stack.mt>.text-btn{padding:13px 0!important;border-bottom:1px solid var(--border-subtle)!important;border-radius:0}
body.c-ui #app#app .card>h2+.stack.mt>.btn.danger{margin-top:var(--sp-4)}
/* Strumenti accessori (simula, obiettivo, regole): pulsanti tenui, la scelta principale resta blu */
body.c-ui #app#app .quick-actions .btn.secondary{background:var(--bg-inset)!important;border-color:transparent!important;color:var(--text-secondary)!important}
body.c-ui #app#app .quick-actions .btn.secondary:hover{background:var(--border-color)!important;color:var(--text-primary)!important}

/* Scadenze: aree seguite + «Personalizza» */
body.c-ui #app#app .c-area-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 var(--sp-4)}
body.c-ui #app#app .c-pill{display:inline-flex!important;align-items:center;gap:6px;height:30px!important;padding:0 12px!important;border-radius:var(--r-pill)!important;border:1px solid var(--accent-border)!important;background:var(--accent-soft)!important;color:var(--accent-soft-text)!important;font-size:var(--fs-sm)!important;font-weight:var(--fw-semibold)!important;margin-left:auto}
body.c-ui #app#app .c-pill::before{content:"";width:14px;height:14px;background:currentColor;-webkit-mask:var(--i-pen) center/contain no-repeat;mask:var(--i-pen) center/contain no-repeat}
body.c-ui #app#app .c-cal-head .c-pill{margin-left:0}
body.c-ui #app#app .c-cal-head .c-pill::before{display:none}
body.c-ui #app#app .c-dl-month h2{font-size:var(--fs-xs)!important;letter-spacing:var(--ls-wide)!important;text-transform:uppercase;color:var(--text-muted)!important;margin-bottom:var(--sp-2)!important}
body.c-ui #app#app .c-deadlines{list-style:none;margin:0;padding:0}
body.c-ui #app#app .c-deadlines li{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) 0;border-top:1px solid var(--border-subtle)}
body.c-ui #app#app .c-deadlines li:first-child{border-top:0;padding-top:0}
body.c-ui #app#app .c-deadlines li .grow>b{display:block;margin-top:6px;font-size:var(--fs-base);font-weight:var(--fw-semibold);line-height:1.3}
body.c-ui #app#app .c-deadlines li .grow>small{display:block;margin-top:2px;font-size:var(--fs-sm);color:var(--text-muted)}
body.c-ui #app#app .c-deadlines li.soon .date-tile{border-color:var(--accent)!important;background:var(--accent-soft)!important}
body.c-ui #app#app .c-deadlines li.soon .date-tile b{color:var(--accent-soft-text)!important}
body.c-ui #app#app .c-auto{margin-left:6px;font-size:var(--fs-2xs);color:var(--text-faint);text-transform:uppercase;letter-spacing:var(--ls-wide);font-weight:var(--fw-semibold)}
@media (max-width:800px){body.c-ui #app#app #main .page-top:has(>div:first-child:not(:has(p))){justify-content:flex-end!important}}
body.c-ui #app#app .c-place{display:inline!important;white-space:normal}
body.c-ui #app#app .c-place svg{display:inline-block!important;vertical-align:-2px;margin-right:4px}
body.c-ui #app#app .c-place b{white-space:nowrap}
body.c-ui #app#app .c-more-rooms{vertical-align:1px}
/* Widget con un titolo (esame, scadenza, evento) invece di un numero: testo leggibile, massimo 3 righe */
body.c-ui #app#app :is(.c-mini[data-nav=deadlines],.c-mini[data-nav=events],.c-mini[data-nav=exams]:not(:has(.c-bar)))>b{font-size:var(--fs-md)!important;font-weight:var(--fw-semibold)!important;letter-spacing:var(--ls-snug)!important;line-height:1.3!important;display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;padding-top:var(--sp-3)}
/* Logo dell'app nell'invito a installare e nelle istruzioni (anche su telefono) */
body.c-ui #app#app .install-nudge>span.install-nudge-logo,body .install-nudge>span.install-nudge-logo{display:block!important;flex:0 0 36px;width:36px;height:36px;padding:0!important;background:none!important;border-radius:9px;overflow:hidden}
.install-nudge-logo img{display:block;width:36px;height:36px}
.install-modal-logo{display:flex;justify-content:center;margin:0}
.install-modal-logo img{width:72px;height:72px;border-radius:16px}
body.c-ui #app#app .install-nudge small{color:var(--text-muted)!important}

/* Piano: nome ufficiale sotto il nome modificato dallo studente */
.study-official-name{display:block;margin-top:2px;font-size:.75rem;font-weight:500;color:var(--text-muted,#64748b);text-transform:none;letter-spacing:0}
