:root{--primary: #312783;--primary-light: #edeafb;--accent: #e8a020;--green: #22a05a;--red: #d63031;--gray: #6b7280;--bg: #f5f4fb;--card: #ffffff;--border: #dfdcee;--text: #1c1a30;--text-light: #8880aa;--text-muted: #5f5880;--green-strong: #1a7a44;--badge-green-bg: #d4f4e2;--scrim: color-mix(in srgb, var(--text) 45%, transparent);--fs-label: .75rem;--fs-meta: .8125rem;--fs-small: .875rem;--fs-body: .9375rem;--fs-input: 1rem;--fs-title: 1.125rem;--fs-hero: 1.375rem;--fs-brand: 2rem;--primary-glow: #4836a8;--warn-bg: #fff8e6;--warn-line: #f5d98f;--warn-fg: #875500;--busy-bg: #fde8e8;--busy-fg: #a02020;--busy-line: #e8b4b4;--busy-hatch: repeating-linear-gradient(135deg, transparent 0 4px, color-mix(in srgb, var(--busy-fg) 16%, transparent) 4px 5px)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}header{background:var(--primary);color:#fff;display:flex;align-items:center;box-shadow:0 2px 8px #0003;flex-shrink:0}.header-logo{font-weight:700}.header-logo span{color:var(--accent)}.header-sub{font-size:.72rem;opacity:.75;margin-top:1px}.card{background:var(--card);border:1px solid var(--border)}.card-title{font-weight:700;color:var(--primary);display:flex;align-items:center;gap:8px}[hidden]{display:none!important}.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.badge-green{background:var(--badge-green-bg);color:var(--green-strong)}.badge-red{background:#fde8e8;color:#a02020}.badge-orange{background:#fef0d0;color:#875500}.badge-indigo{background:#ede9fe;color:#312783}.badge-gray{background:#ececf3;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;border:none;cursor:pointer;font-weight:600;transition:opacity .15s,transform .1s;touch-action:manipulation}.btn-primary{background:var(--primary);color:#fff}.btn-success{background:var(--green-strong);color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}.btn[aria-busy=true]{cursor:progress}.btn-outline{background:#fff;color:var(--primary);border:1.5px solid var(--primary)}.btn-full{width:100%;justify-content:center}.form-group label{font-size:.78rem;font-weight:600;color:var(--gray)}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:0 0 0 3px #31278338}header :focus-visible{outline-color:#fff}.ico{width:1.15em;height:1.15em;flex-shrink:0;vertical-align:-.2em}.ico-xl{width:2.5rem;height:2.5rem}@keyframes ico-ruota{to{transform:rotate(360deg)}}.ico-spin{animation:ico-ruota 1s linear infinite}@media(prefers-reduced-motion:reduce){.ico-spin{animation-duration:3s}}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}input:not(:placeholder-shown),textarea:not(:placeholder-shown){background-color:var(--primary-light);border-color:color-mix(in srgb,var(--primary) 40%,transparent)}select[data-filled="1"]{background-color:var(--primary-light);border-color:color-mix(in srgb,var(--primary) 40%,transparent)}.login-divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:var(--text-muted);font-size:var(--fs-meta)}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.login-error{color:var(--red);font-size:var(--fs-meta);min-height:18px;margin-bottom:10px}#toast{position:fixed;left:50%;transform:translate(-50%);background:#1e1a3c;color:#fff;padding:10px 22px;border-radius:18px;font-size:var(--fs-small);opacity:0;pointer-events:none;transition:opacity .3s;z-index:999;width:max-content;max-width:min(92vw,440px);text-align:center;line-height:1.4;box-shadow:0 4px 16px #0000004d;display:flex;align-items:center;justify-content:center;gap:8px}#toast.show{opacity:1}#toast.con-azione{pointer-events:auto}.toast-azione{background:none;border:0;border-left:1px solid rgba(255,255,255,.35);margin-left:4px;padding:2px 0 2px 12px;color:#fff;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.toast-azione:disabled{opacity:.6;cursor:progress}#toast.toast-errore{background:var(--busy-fg)}#toast.toast-ok .ico{color:var(--badge-green-bg)}.login-iulm-logo{display:block;width:200px;height:auto;margin:0 auto 18px}.header-iulm-logo{height:36px;width:auto}@media(max-width:600px){html{scroll-padding-bottom:96px}}
