/*
 * Skin dell'area Erasmus (grafica "B", decisa con William il 2026-10-22): fondo chiaro, colori del Portale
 * (azzurro, giallo, rosa) e testo sempre scuro sopra i colori. Si attiva con la classe `erasmus` sul <body>
 * (base.blade.php) e vale per tutte le pagine dell'area, comprese quelle di rilevazione condivise con gli auditor.
 *
 * Regole che non si toccano: il logo «I am a willer» resta nel suo azzurro originale #00B7FC; mai bianco su azzurro
 * o su giallo (contrasto 2,8:1); bersagli di almeno 44 px; il movimento si ferma con prefers-reduced-motion;
 * l'informazione non passa mai dal solo colore. Le emoji sono ammesse solo come grafica (aria-hidden), mai nei testi.
 */
body.erasmus {
    --e-bg: #f2f9ff;
    --e-card: #ffffff;
    --e-ink: #131313;
    --e-muted: #3d4650;
    --e-azure: #00b7fc;
    --e-azure-deep: #0073a6;   /* testo di link su fondo chiaro: 4,9:1 */
    --e-azure-tint: #d9f2ff;
    --e-yellow: #ffcd03;
    --e-pink: #ff4d73;
    --e-line: #cfe3ef;
    --e-danger: #b3261e;
    /* ricolora le variabili del foglio globale: tutto ciò che le usa cambia aspetto da solo */
    --nero: var(--e-bg);
    --neretto: var(--e-card);
    --grigio: var(--e-azure-tint);
    --giallo: var(--e-yellow);
    --giallo-light: var(--e-line);
    --azzurro: var(--e-azure-deep);
    background-color: var(--e-bg);
    color: var(--e-ink);
}
body.erasmus #wrapper { background-color: var(--e-bg); color: var(--e-ink); }
body.erasmus a { color: var(--e-azure-deep); }
body.erasmus a:focus-visible, body.erasmus button:focus-visible, body.erasmus input:focus-visible,
body.erasmus select:focus-visible, body.erasmus textarea:focus-visible, body.erasmus label:focus-within {
    outline: 3px solid var(--e-ink); outline-offset: 3px;
}
body.erasmus header { border-bottom: 1px solid var(--e-line); }
body.erasmus .site-title { color: #00b7fc; }   /* logo: colore originale del marchio */
body.erasmus #toggle-menu img { filter: invert(1); min-width: 44px; min-height: 44px; padding: 8px; }
body.erasmus footer { border-top: 1px solid var(--e-line); color: var(--e-muted); }
body.erasmus footer a { color: var(--e-azure-deep); }

/* menu laterale */
body.erasmus #main-menu { background-color: var(--e-card); color: var(--e-ink); border-left: 1px solid var(--e-line); }
body.erasmus #main-menu li { border-bottom: 1px solid var(--e-line); }
body.erasmus #main-menu a, body.erasmus #main-menu button { color: var(--e-ink); min-height: 48px; }
body.erasmus #main-menu a:hover, body.erasmus #main-menu a:focus, body.erasmus #main-menu button:hover, body.erasmus #main-menu button:focus {
    background-color: var(--e-yellow); color: var(--e-ink);
}
body.erasmus #close-menu { color: var(--e-ink); }
body.erasmus #main-menu .languages li.active { border-bottom-color: var(--e-azure); color: var(--e-ink); }

/* titoli e testo */
body.erasmus h1, body.erasmus h2, body.erasmus h3 { color: var(--e-ink); }
body.erasmus h1 { font-weight: 800; letter-spacing: -0.01em; }
body.erasmus .small, body.erasmus .text-muted { color: var(--e-muted) !important; }
body.erasmus .field p.small { opacity: 1; }

/* schede e righe tocco (il vecchio .field) */
body.erasmus .page .field, body.erasmus .field {
    background-color: var(--e-card); color: var(--e-ink); border: 1px solid var(--e-line); border-radius: 16px; min-height: 64px;
}
body.erasmus .field.pointer:hover, body.erasmus .field.pointer:focus { background-color: var(--e-azure-tint); }
body.erasmus .field .icon, body.erasmus .field i.fa-arrow-right, body.erasmus .field i.fa-check { color: var(--e-ink); }

/* pulsanti: a pillola, testo scuro */
body.erasmus .btn { border-radius: 99px; text-transform: none; font-weight: 800; min-height: 48px; display: flex; align-items: center; justify-content: center; letter-spacing: 0; }
body.erasmus .btn.btn-primary { background-color: var(--e-yellow); color: var(--e-ink); border: 2px solid var(--e-ink); }
body.erasmus .btn.btn-secondary { background-color: var(--e-card); color: var(--e-ink); border: 2px solid var(--e-ink); }
body.erasmus .btn.btn-primary:hover, body.erasmus .btn.btn-primary:focus,
body.erasmus .btn.btn-secondary:hover, body.erasmus .btn.btn-secondary:focus { background-color: var(--e-azure); color: var(--e-ink); }
body.erasmus .btn.back { padding: 0; width: 48px; flex: none; }

/* campi dei moduli (accesso, registrazione, impostazioni) */
body.erasmus .form-floating input.form-control, body.erasmus .form-control {
    background-color: var(--e-card); color: var(--e-ink); border: 2px solid var(--e-ink); border-radius: 12px;
}
body.erasmus .form-floating > label { color: var(--e-muted); }
body.erasmus .alert-danger { background: #fdecea; color: #5f1410; border: 2px solid var(--e-danger); border-radius: 12px; }
body.erasmus .alert-success { background: #e6f6ea; color: #14401c; border: 2px solid #1e7a35; border-radius: 12px; }

/* ───────────── componenti propri dell'area ───────────── */
.e-skip { position: absolute; left: 8px; top: -64px; z-index: 10000; background: var(--e-yellow, #FFE810); color: #131313; padding: 12px 18px; border-radius: 12px; font-weight: 700; text-decoration: none; }
.e-skip:focus { top: 8px; }
.e-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
body.erasmus .e-stack { display: grid; gap: 18px; }
body.erasmus .e-title { font-size: 20px; font-weight: 800; letter-spacing: -0.01em; margin: 0; }
body.erasmus .e-label { font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

/* avatar: cerchio con il disegno; senza disegno resta la lettera */
.e-av { display: inline-grid; place-items: center; border-radius: 50%; overflow: hidden; border: 2px solid var(--e-ink, #131313); background: var(--e-azure, #00b7fc); flex: none; position: relative; }
.e-av img { width: 100%; height: 100%; display: block; }
.e-av .e-av-ph { font-weight: 800; color: var(--e-ink, #131313); }
.e-av.has-img .e-av-ph { display: none; }
.e-av--sm { width: 36px; height: 36px; font-size: 16px; }
.e-av--md { width: 56px; height: 56px; font-size: 22px; }
.e-av--lg { width: 72px; height: 72px; font-size: 28px; }

/* saluto */
body.erasmus .e-hello { display: flex; align-items: center; gap: 14px; }
body.erasmus .e-hello a.e-av { text-decoration: none; }
body.erasmus .e-hello h1 { font-size: 26px; line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; margin: 0; }
body.erasmus .e-hello p { margin: 2px 0 0; font-size: 14px; color: var(--e-muted); }
body.erasmus .e-edit { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; min-height: 44px; }
body.erasmus .e-avatar-hint { background: var(--e-azure-tint); border: 2px dashed var(--e-ink); border-radius: 16px; padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-weight: 600; font-size: 15px; }

/* scheda del livello: azzurro, anello come nel mockup */
body.erasmus .e-level { background: var(--e-azure); color: var(--e-ink); border: 2px solid var(--e-ink); border-radius: 24px; padding: 18px; display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 14px; align-items: center; }
body.erasmus .e-ring { position: relative; width: 120px; height: 120px; }
body.erasmus .e-ring svg.rg { width: 100%; height: 100%; transform: rotate(-90deg); }
body.erasmus .e-ring .track { fill: none; stroke: rgba(255,255,255,.7); stroke-width: 11; }
body.erasmus .e-ring .bar { fill: none; stroke: var(--e-ink); stroke-width: 11; stroke-linecap: round; animation: e-fill 1.1s ease-out both; }
@keyframes e-fill { from { stroke-dasharray: 0 100; } }
body.erasmus .e-ring .e-av { position: absolute; inset: 20px; width: auto; height: auto; background: #fff; }
body.erasmus .e-ring .e-ring-icon { position: absolute; inset: 20px; border-radius: 50%; background: #fff; border: 2px solid var(--e-ink); display: grid; place-items: center; font-size: 34px; }
body.erasmus .e-level h2 { font-size: 32px; line-height: 1.05; font-weight: 800; letter-spacing: -0.03em; margin: 2px 0 0; }
body.erasmus .e-level p { margin: 6px 0 0; font-size: 15px; }
body.erasmus .e-level .e-foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; font-size: 14px; }
body.erasmus .e-chip { display: inline-flex; align-items: center; gap: 6px; background: #fff; border: 1.5px solid var(--e-ink); border-radius: 99px; padding: 4px 12px; font-size: 13px; font-weight: 700; color: var(--e-ink); }
body.erasmus .e-chip--ink { background: var(--e-azure-tint); }

/* pulsante principale */
body.erasmus .e-cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 68px; padding: 8px 12px 8px 22px; border-radius: 99px; background: var(--e-yellow); color: var(--e-ink); border: 2px solid var(--e-ink); font-weight: 800; font-size: 20px; text-decoration: none; }
body.erasmus .e-cta:hover, body.erasmus .e-cta:focus { background: var(--e-azure); text-decoration: none; color: var(--e-ink); }
body.erasmus .e-cta .go { width: 48px; height: 48px; border-radius: 50%; background: var(--e-pink); border: 2px solid var(--e-ink); display: grid; place-items: center; font-size: 20px; color: var(--e-ink); }

/* tasselli */
body.erasmus .e-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
body.erasmus .e-tile { background: var(--e-card); border: 1px solid var(--e-line); border-radius: 16px; padding: 14px; display: grid; gap: 6px; align-content: space-between; min-height: 96px; text-decoration: none; color: var(--e-ink); }
body.erasmus .e-tile:hover, body.erasmus .e-tile:focus { background: var(--e-azure-tint); text-decoration: none; }
body.erasmus .e-tile .n { font-size: 30px; font-weight: 800; line-height: 1; letter-spacing: -0.02em; }
body.erasmus .e-tile .n small { font-size: 16px; font-weight: 700; color: var(--e-muted); }
body.erasmus .e-tile .l { font-size: 14px; font-weight: 600; display: flex; align-items: center; justify-content: space-between; gap: 6px; }
body.erasmus .e-tile--wide { grid-column: 1 / -1; min-height: 72px; grid-template-columns: 1fr auto; align-items: center; }

/* adesivi (badge) */
body.erasmus .e-stickers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 8px; list-style: none; margin: 0; padding: 0; }
body.erasmus .e-stickers li { display: grid; gap: 6px; justify-items: center; text-align: center; font-size: 13.5px; font-weight: 600; line-height: 1.25; }
body.erasmus .e-stk { width: 72px; height: 72px; border-radius: 50%; border: 2px solid var(--e-ink); display: grid; place-items: center; font-size: 28px; color: var(--e-ink); }
body.erasmus .e-stickers li:nth-child(3n+1) .e-stk { background: var(--e-yellow); transform: rotate(-6deg); }
body.erasmus .e-stickers li:nth-child(3n+2) .e-stk { background: var(--e-azure); transform: rotate(5deg); }
body.erasmus .e-stickers li:nth-child(3n) .e-stk { background: var(--e-pink); transform: rotate(-3deg); }
body.erasmus .e-stickers li.lock .e-stk { background: transparent; border-style: dashed; border-color: #5b6670; color: var(--e-muted); transform: none; }
body.erasmus .e-stickers .hint { font-weight: 500; color: var(--e-muted); font-size: 12.5px; }

/* strada verso l'obiettivo di classe */
body.erasmus .e-road { background: var(--e-card); border: 1px solid var(--e-line); border-radius: 16px; padding: 42px 16px 14px; display: grid; gap: 12px; }
body.erasmus .e-track { position: relative; height: 18px; border-radius: 99px; background: #e5eef4; border: 2px solid var(--e-ink); }
body.erasmus .e-track .fill { position: absolute; inset: 0 auto 0 0; background: var(--e-yellow); border-radius: 99px; border-right: 2px solid var(--e-ink); }
body.erasmus .e-track .flag { position: absolute; top: -9px; width: 3px; height: 34px; background: var(--e-ink); border-radius: 2px; }
body.erasmus .e-track .pin { position: absolute; top: -34px; transform: translateX(-50%); width: 38px; height: 38px; border-radius: 50%; background: var(--e-pink); border: 2px solid var(--e-ink); display: grid; place-items: center; font-size: 16px; animation: e-hop 2.4s ease-in-out infinite; }
@keyframes e-hop { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } }
body.erasmus .e-ticks { display: flex; justify-content: space-between; font-size: 12.5px; font-weight: 700; padding-inline: 2px; }
body.erasmus .e-road .txt { margin: 0; font-size: 15px; }
body.erasmus .e-road .txt b { font-size: 22px; font-weight: 800; }

/* avvisi dentro l'app */
body.erasmus .e-event { display: flex; gap: 12px; align-items: flex-start; background: var(--e-yellow); border: 2px solid var(--e-ink); border-radius: 16px; color: var(--e-ink); font-size: 15px; font-weight: 700; padding: 12px 14px; }
body.erasmus .e-event i { margin-top: 3px; font-size: 18px; }
body.erasmus .e-note { background: var(--e-card); border: 2px solid var(--e-ink); border-radius: 16px; padding: 16px; color: var(--e-ink); font-size: 15px; line-height: 1.55; }
body.erasmus .e-note i { margin-right: 6px; }

/* podio e classifica */
body.erasmus .e-pod { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 8px; align-items: end; list-style: none; margin: 0 auto; padding: 0; width: calc(var(--n, 3) * 33.33%); max-width: 100%; }
body.erasmus .e-pod li { display: grid; gap: 6px; justify-items: center; text-align: center; font-size: 13.5px; font-weight: 600; min-width: 0; }
body.erasmus .e-pod .nm { overflow-wrap: anywhere; }
body.erasmus .e-pod .col { width: 100%; border: 2px solid var(--e-ink); border-radius: 14px 14px 0 0; display: grid; place-items: center; font-weight: 800; font-size: 24px; color: var(--e-ink); }
body.erasmus .e-pod .p1 .col { height: 92px; background: var(--e-yellow); }
body.erasmus .e-pod .p2 .col { height: 68px; background: var(--e-azure); }
body.erasmus .e-pod .p3 .col { height: 52px; background: var(--e-pink); }
body.erasmus .e-pod .pts { font-weight: 500; color: var(--e-muted); font-size: 13px; display: block; }
body.erasmus .e-rank { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
body.erasmus .e-rank li { display: grid; grid-template-columns: 28px 40px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 52px; padding: 0 10px; border-radius: 12px; font-size: 16px; background: var(--e-card); border: 1px solid var(--e-line); }
body.erasmus .e-rank li.me { background: var(--e-yellow); border-color: var(--e-ink); border-width: 2px; font-weight: 700; }
body.erasmus .e-rank .pos { font-weight: 800; text-align: center; }
body.erasmus .e-rank .nm { overflow-wrap: anywhere; }
body.erasmus .e-rank .pt { font-weight: 700; font-variant-numeric: tabular-nums; }
body.erasmus .e-rank .gap { background: none; border: 0; min-height: 20px; justify-content: center; grid-template-columns: 1fr; color: var(--e-muted); text-align: center; }
body.erasmus .e-you { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--e-ink); color: #fff; border-radius: 14px; padding: 12px 14px; font-weight: 700; flex-wrap: wrap; }
body.erasmus .e-league { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
body.erasmus .e-league li { background: var(--e-card); border: 1px solid var(--e-line); border-radius: 14px; padding: 12px 14px; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 10px; align-items: center; }
body.erasmus .e-league li.mine { border: 2px solid var(--e-ink); background: var(--e-azure-tint); }
body.erasmus .e-rules { font-size: 14px; line-height: 1.6; padding-left: 20px; margin: 0; }

/* composer dell'avatar */
body.erasmus .e-composer { display: grid; gap: 16px; }
body.erasmus .e-pills { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
body.erasmus .e-pill { position: relative; }
body.erasmus .e-pill input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
body.erasmus .e-pill span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 99px; border: 2px solid var(--e-ink); background: var(--e-card); font-weight: 700; font-size: 15px; }
body.erasmus .e-pill input:checked + span { background: var(--e-ink); color: #fff; }
body.erasmus .e-pill input:focus-visible + span { outline: 3px solid var(--e-ink); outline-offset: 3px; }
body.erasmus .e-panel fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
body.erasmus .e-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 12px; }
body.erasmus .e-opt { position: relative; display: block; }
body.erasmus .e-opt input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
body.erasmus .e-thumb { display: block; aspect-ratio: 1; border-radius: 50%; overflow: hidden; border: 2px solid var(--e-line); background: #fff; position: relative; }
body.erasmus .e-thumb img { width: 100%; height: 100%; display: block; }
body.erasmus .e-opt input:checked + .e-thumb { border-color: var(--e-ink); box-shadow: 0 0 0 3px var(--e-yellow), 0 0 0 5px var(--e-ink); }
body.erasmus .e-opt input:focus-visible + .e-thumb { outline: 3px solid var(--e-ink); outline-offset: 6px; }
body.erasmus .e-sws { display: flex; flex-wrap: wrap; gap: 14px; }
body.erasmus .e-sw { position: relative; display: block; width: 52px; height: 52px; }
body.erasmus .e-sw input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
body.erasmus .e-sw .c { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; border: 2px solid var(--e-ink); }
body.erasmus .e-sw .c i { font-size: 20px; color: var(--e-ink); opacity: 0; }
body.erasmus .e-sw .c.dark i { color: #fff; }
body.erasmus .e-sw input:checked + .c { box-shadow: 0 0 0 3px var(--e-card), 0 0 0 5px var(--e-ink); }
body.erasmus .e-sw input:checked + .c i { opacity: 1; }
body.erasmus .e-sw input:focus-visible + .c { outline: 3px solid var(--e-ink); outline-offset: 7px; }
body.erasmus .e-preview { position: sticky; top: 0; z-index: 2; background: var(--e-bg); padding: 8px 0; display: flex; justify-content: center; }

/* ───────────── pagine di rilevazione condivise con gli auditor ───────────── */
body.erasmus .audit-area-card, body.erasmus .audit-area-repeatable, body.erasmus .ma-item, body.erasmus .q-block, body.erasmus .conformity-summary {
    background: var(--e-card); color: var(--e-ink); border: 1px solid var(--e-line); border-radius: 16px;
}
body.erasmus .audit-area-card { color: var(--e-ink); }
body.erasmus .audit-area-card.completed, body.erasmus .audit-area-repeatable.completed { background: #e8f7ec; border: 2px solid #1e7a35; }
body.erasmus .ar-instance-row { background: var(--e-azure-tint); }
body.erasmus .ar-instance-link, body.erasmus .ma-name { color: var(--e-ink); }
body.erasmus .ar-delete-btn { color: var(--e-danger); }
body.erasmus .ar-add-btn { border: 2px dashed var(--e-ink); color: var(--e-ink); background: transparent; }
body.erasmus .ar-add-btn:hover, body.erasmus .ar-add-btn:focus-visible { background: var(--e-azure-tint); }
body.erasmus .aa-quick-btn { border: 2px solid var(--e-ink); color: var(--e-ink); background: var(--e-card); border-radius: 99px; font-weight: 700; }
body.erasmus .aa-quick-btn:hover, body.erasmus .aa-quick-btn:focus-visible { background: var(--e-azure-tint); border-color: var(--e-ink); }
body.erasmus .audit-badge { background: var(--e-azure-tint); border: 1.5px solid var(--e-ink); color: var(--e-ink); }
body.erasmus .status-badge { color: var(--e-ink); background: var(--e-card); border: 1.5px solid var(--e-ink); }
body.erasmus .status-badge.st-completed { background: #e8f7ec; border-color: #1e7a35; color: #14401c; }
body.erasmus .status-badge.st-in_progress { background: #fff6cc; border-color: var(--e-ink); color: var(--e-ink); }
body.erasmus .status-badge.st-not_present, body.erasmus .status-badge.st-not_assessable, body.erasmus .status-badge.st-todo { background: var(--e-card); color: var(--e-muted); border-color: var(--e-muted); }
body.erasmus .ma-icon { background: var(--e-yellow); color: var(--e-ink); border: 2px solid var(--e-ink); }
body.erasmus .ma-meta, body.erasmus .ma-progress { color: var(--e-muted); }
body.erasmus .ma-progress strong { color: var(--e-ink); }
body.erasmus .ma-action { border-radius: 99px; min-height: 44px; display: flex; align-items: center; justify-content: center; }
body.erasmus .ma-action.primary { background: var(--e-yellow); color: var(--e-ink); border: 2px solid var(--e-ink); }
body.erasmus .ma-action.secondary { background: var(--e-card); color: var(--e-ink); border: 2px solid var(--e-ink); }

body.erasmus .q-text { color: var(--e-ink); font-size: 16px; font-weight: 700; }
body.erasmus .q-required { color: var(--e-danger); }
body.erasmus .q-ref { color: var(--e-muted); }
body.erasmus .q-answers label { color: var(--e-ink); font-size: 15px; border-bottom: 1px solid var(--e-line); }
body.erasmus .q-answers input[type=radio], body.erasmus .q-answers input[type=checkbox] { accent-color: var(--e-ink); width: 22px; height: 22px; }
body.erasmus .q-textfield { border: 2px solid var(--e-ink); border-radius: 12px; font-size: 16px; color: var(--e-ink); }
body.erasmus .q-unit { color: var(--e-ink); font-weight: 700; }
body.erasmus .q-note { color: var(--e-muted); }
body.erasmus .btn-save-audit { background: var(--e-yellow); color: var(--e-ink); border: 2px solid var(--e-ink); border-radius: 99px; min-height: 56px; font-size: 17px; text-transform: none; font-weight: 800; }
body.erasmus .btn-save-audit:hover, body.erasmus .btn-save-audit:focus-visible { background: var(--e-azure); }
body.erasmus .upload-zone { color: var(--e-ink); font-weight: 800; text-transform: none; }
body.erasmus .visually-hidden-input:focus-visible + .upload-zone { outline: 3px solid var(--e-ink); }
body.erasmus .photo-remove { background: var(--e-ink); }
body.erasmus .submit-overlay { background: rgba(19,19,19,.82); }
body.erasmus .submit-box { background: var(--e-card); color: var(--e-ink); border: 2px solid var(--e-ink); border-radius: 20px; }
body.erasmus .submit-box .s-icon { color: var(--e-ink); }
body.erasmus .submit-box .s-status { color: var(--e-ink); }
body.erasmus .submit-box .s-sub { color: var(--e-muted); }
body.erasmus .submit-bar { background: var(--e-line); }
body.erasmus .submit-bar > div { background: var(--e-ink); }


/* Le pagine di rilevazione (audit.blade, audit_area.blade) servono anche gli auditor in scuro e hanno colori scritti
   a mano negli attributi style. Per non duplicare le viste, qui si riconducono ai colori della skin con regole
   mirate sull'attributo (volutamente con !important: l'attributo inline vincerebbe sempre). */
body.erasmus [style*="color:#bbb"], body.erasmus [style*="color:#aaa"], body.erasmus [style*="color:#ccc"],
body.erasmus [style*="color:#ddd"], body.erasmus [style*="color:#888"], body.erasmus [style*="color: #bbb"] { color: var(--e-muted) !important; }
body.erasmus [style*="color:#FFE810"], body.erasmus a[style*="color:#fff"] { color: var(--e-ink) !important; }
body.erasmus [style*="rgba(255,255,255,.1)"] { border-color: var(--e-line) !important; }
body.erasmus .alert[style*="rgba(76,175,80"] { background: #e6f6ea !important; border: 2px solid #1e7a35 !important; color: #14401c !important; }
body.erasmus .alert[style*="rgba(255,144,144"] { background: #fdecea !important; border: 2px solid var(--e-danger) !important; color: #5f1410 !important; }
body.erasmus .alert[style*="rgba(255,232,16"] { background: #fff6cc !important; border: 2px solid var(--e-ink) !important; color: var(--e-ink) !important; }
body.erasmus .modal-content[style*="background:#333"] { background: var(--e-card) !important; color: var(--e-ink) !important; border: 2px solid var(--e-ink) !important; border-radius: 20px !important; }
body.erasmus .modal-body[style*="color:#ddd"] { color: var(--e-ink) !important; }

/* accesso, reset password e account (viste condivise con il resto dell'app, classi auth-*) */
body.erasmus .auth-sub { color: var(--e-muted); font-size: 15px; }
body.erasmus .auth-card { background: var(--e-card); border: 1px solid var(--e-line); border-radius: 20px; }
body.erasmus .auth-label { color: var(--e-ink); font-size: 13px; letter-spacing: .08em; }
body.erasmus .auth-divider { color: var(--e-muted); }
body.erasmus .auth-divider::before, body.erasmus .auth-divider::after { background: var(--e-line); }
body.erasmus .error-box { background: #fdecea; border: 2px solid var(--e-danger); color: #5f1410; font-size: 14px; font-weight: 600; border-radius: 12px; }
body.erasmus div[style*="rgba(76,175,80"] { background: #e6f6ea !important; border: 2px solid #1e7a35 !important; color: #14401c !important; }
body.erasmus [style*="color:#80e080"], body.erasmus [style*="color:#ff8080"] { color: var(--e-ink) !important; }
body.erasmus .auth-card a { text-decoration: underline; }

/* impostazioni di accessibilità (viste condivise con il resto dell'app) */
body.erasmus .setting-row, body.erasmus .dalt-option, body.erasmus .lang-opt, body.erasmus .sr-tip, body.erasmus .preview-card, body.erasmus .textonly-panel, body.erasmus .notif-group {
    background: var(--e-card); color: var(--e-ink); border: 1px solid var(--e-line); border-radius: 16px;
}
body.erasmus .setting-row { min-height: 64px; }
body.erasmus .setting-row:hover, body.erasmus .setting-row:focus { background: var(--e-azure-tint); text-decoration: none; }
body.erasmus .setting-icon, body.erasmus .sr-tip-icon { background: var(--e-yellow); color: var(--e-ink); border: 2px solid var(--e-ink); }
body.erasmus .setting-label, body.erasmus .dalt-name, body.erasmus .lang-name, body.erasmus .sr-tip-title, body.erasmus .notif-row-label, body.erasmus .section-title { color: var(--e-ink); }
body.erasmus .section-title { font-size: 14px; }
body.erasmus .setting-sub, body.erasmus .dalt-sub, body.erasmus .lang-native, body.erasmus .notif-row-sub { color: var(--e-muted); font-size: 13px; }
body.erasmus .setting-caret { color: var(--e-ink); }
body.erasmus .setting-val { color: var(--e-ink); font-size: 13px; }
body.erasmus .info-box { background: var(--e-azure-tint); border: 2px solid var(--e-ink); color: var(--e-ink); font-size: 14px; border-radius: 16px; }
body.erasmus .acc-toggle { background: #5b6670; border: 2px solid var(--e-ink); width: 52px; height: 30px; }
body.erasmus .acc-toggle::after { top: 3px; left: 3px; width: 20px; height: 20px; background: #fff; }
body.erasmus .acc-toggle.on { background: var(--e-yellow); }
body.erasmus .acc-toggle.on::after { left: 25px; background: var(--e-ink); }
body.erasmus .dalt-option.sel, body.erasmus .lang-opt.sel, body.erasmus .textonly-panel.active { border: 2px solid var(--e-ink); background: var(--e-azure-tint); }
body.erasmus .dalt-radio, body.erasmus .lang-radio { border-color: var(--e-ink); }
body.erasmus .dalt-option.sel .dalt-radio::after, body.erasmus .lang-opt.sel .lang-radio::after { background: var(--e-ink); }
body.erasmus .acc-slider { background: var(--e-line); height: 8px; }
body.erasmus .acc-slider::-webkit-slider-thumb { background: var(--e-yellow); border: 2px solid var(--e-ink); box-shadow: none; width: 28px; height: 28px; }
body.erasmus .size-step-dot { background: #8a949c; }
body.erasmus .size-step.active .size-step-dot { background: var(--e-ink); }
body.erasmus .size-step-label { color: var(--e-muted); font-size: 11px; }
body.erasmus .size-step.active .size-step-label, body.erasmus .preview-label { color: var(--e-ink); }
body.erasmus .to-text, body.erasmus .sr-tip-body { color: var(--e-ink); font-size: 13px; }
body.erasmus .to-icon, body.erasmus .sr-gesture-key { color: var(--e-ink); }
body.erasmus .sr-gesture-key { background: var(--e-yellow); border: 1.5px solid var(--e-ink); }
body.erasmus .sr-gesture-desc { color: var(--e-muted); font-size: 12px; }
body.erasmus .sr-gesture, body.erasmus .to-item { border-color: var(--e-line); }
body.erasmus .t-chip { color: var(--e-ink); background: var(--e-card); border: 1.5px solid var(--e-ink); }
body.erasmus .t-chip.sel { background: var(--e-yellow); }

/* pagine da leggere (progetto, manuale, glossario) */
body.erasmus .e-prose { font-size: 16px; line-height: 1.65; }
body.erasmus .e-prose p, body.erasmus .e-prose li, body.erasmus .e-prose dd { max-width: 65ch; }
body.erasmus .e-prose h2 { font-size: 22px; font-weight: 800; letter-spacing: -0.01em; margin: 0 0 8px; }
body.erasmus .e-prose section { scroll-margin-top: 12px; }
body.erasmus .e-prose ul, body.erasmus .e-prose ol { padding-left: 22px; display: grid; gap: 6px; margin: 8px 0; }
body.erasmus .e-lead { font-size: 18px; font-weight: 600; margin: 0; }
body.erasmus .e-toc { background: var(--e-azure-tint); border: 2px solid var(--e-ink); border-radius: 16px; padding: 14px 16px; }
body.erasmus .e-toc ul { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 2px; }
body.erasmus .e-toc a { display: block; padding: 8px 0; min-height: 44px; font-weight: 700; }
body.erasmus .e-faq dt { font-weight: 800; margin-top: 12px; }
body.erasmus .e-faq dd { margin: 4px 0 0; }
body.erasmus .e-gloss { display: grid; gap: 10px; margin: 0; }
body.erasmus .e-gloss-item { background: var(--e-card); border: 1px solid var(--e-line); border-radius: 16px; padding: 14px 16px; }
body.erasmus .e-gloss dt { font-weight: 800; font-size: 17px; }
body.erasmus .e-gloss dd { margin: 4px 0 0; }

/* messaggi */
body.erasmus .e-badge { display: inline-block; min-width: 22px; padding: 1px 7px; border-radius: 99px; background: var(--e-pink); color: var(--e-ink); border: 1.5px solid var(--e-ink); font-size: 13px; font-weight: 800; text-align: center; line-height: 1.4; }
body.erasmus .e-threads { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
body.erasmus .e-thread { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 14px; background: var(--e-card); border: 1px solid var(--e-line); border-radius: 16px; color: var(--e-ink); text-decoration: none; }
body.erasmus .e-thread:hover, body.erasmus .e-thread:focus { background: var(--e-azure-tint); text-decoration: none; }
body.erasmus .e-thread.is-unread { border: 2px solid var(--e-ink); }
body.erasmus .e-thread-ico { width: 40px; height: 40px; border-radius: 50%; background: var(--e-yellow); border: 2px solid var(--e-ink); display: grid; place-items: center; flex: none; }
body.erasmus .e-thread-main { display: grid; min-width: 0; flex: 1; }
body.erasmus .e-thread-main strong { overflow-wrap: anywhere; }
body.erasmus .e-dot { width: 14px; height: 14px; border-radius: 50%; background: var(--e-pink); border: 2px solid var(--e-ink); flex: none; }
body.erasmus .e-msgs { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
body.erasmus .e-msg { max-width: 92%; padding: 12px 14px; border-radius: 16px; border: 1.5px solid var(--e-ink); background: var(--e-card); }
body.erasmus .e-msg.staff { justify-self: start; border-radius: 16px 16px 16px 4px; }
body.erasmus .e-msg.mine { justify-self: end; background: var(--e-azure-tint); border-radius: 16px 16px 4px 16px; }
body.erasmus .e-msg p { margin: 6px 0 0; overflow-wrap: anywhere; }
body.erasmus .e-msg-head { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
body.erasmus .e-form textarea.form-control { min-height: 120px; }
body.erasmus .e-radios { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
body.erasmus .e-radios legend { font-weight: 800; font-size: 15px; margin-bottom: 6px; }
body.erasmus .e-radio { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 8px 14px; border: 2px solid var(--e-ink); border-radius: 14px; background: var(--e-card); cursor: pointer; font-weight: 600; }
body.erasmus .e-radio input { width: 22px; height: 22px; accent-color: var(--e-ink); flex: none; }
body.erasmus .e-radio:has(input:checked) { background: var(--e-yellow); }

/* aiuto «Come rispondere» (partial condiviso con gli auditor) */
body.erasmus .q-help-btn { color: var(--e-azure-deep); font-size: 15px; font-weight: 700; }
body.erasmus .q-help-dialog { border: 2px solid var(--e-ink); border-radius: 20px; color: var(--e-ink); }
body.erasmus .q-help-dialog::backdrop { background: rgba(19,19,19,.6); }
body.erasmus .q-help-close { background: var(--e-yellow); color: var(--e-ink); border: 2px solid var(--e-ink); border-radius: 99px; text-transform: none; font-weight: 800; }
body.erasmus .q-help-close:hover, body.erasmus .q-help-close:focus-visible { background: var(--e-azure); }

/* movimento ridotto: tutto fermo */
@media (prefers-reduced-motion: reduce) {
    body.erasmus .e-ring .bar, body.erasmus .e-track .pin { animation: none; }
}
@media (max-width: 360px) {
    body.erasmus .e-level { grid-template-columns: 1fr; justify-items: center; text-align: center; }
    body.erasmus .e-level .e-foot { justify-content: center; }
}

/* Numero dei messaggi da leggere sul pulsante del menu: si vede senza aprire l'hamburger. */
body.erasmus #toggle-menu { position: relative; }
body.erasmus .e-badge-menu { position: absolute; top: -2px; right: -4px; min-width: 22px; padding: 0 6px; font-size: 12px; line-height: 20px; text-align: center; }
