/* =============================================================================
   Mega Engine Document Intelligence — ai.css
   Chat, riassunti, studio, esplora, confronto (SPEC §10.3, area ui-ai).
   Caricato dopo app.css e reader.css: usa i token --medoc-* e le classi comuni.
   Modalità scura con prefers-color-scheme (come app.css), 360 px, motion ridotto.
   ============================================================================= */

:root {
    --medoc-a: #e8590c;
    --medoc-a-soft: rgba(242, 97, 12, .12);
    --medoc-b: #5f4ff0;
    --medoc-b-soft: rgba(109, 94, 252, .12);
    --medoc-chat-side-w: 264px;
    --medoc-ai-head: calc(var(--medoc-top) + var(--medoc-appbar-h));
}
html.medoc-has-docnav { --medoc-ai-head: calc(var(--medoc-top) + var(--medoc-appbar-h) + var(--medoc-docnav-h)); }

@media (prefers-color-scheme: dark) {
    :root {
        --medoc-a: #ff9a57;
        --medoc-a-soft: rgba(242, 97, 12, .18);
        --medoc-b: #aea5ff;
        --medoc-b-soft: rgba(139, 125, 255, .18);
    }
}

/* =============================================================================
   Elementi condivisi dalle viste AI
   ============================================================================= */

.medoc-aihead__sub { max-width: 68ch; }

.medoc-aiload { display: grid; gap: 22px; }
.medoc-aiload__head { max-width: 520px; }

/* --- Chip di pagina --- */
.medoc-pchips { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.medoc-pchip {
    --medoc-pchip-fg: var(--medoc-violet-ink);
    --medoc-pchip-bg: var(--medoc-b-soft);
    --medoc-pchip-line: rgba(109, 94, 252, .28);
    --medoc-pchip-solid: var(--medoc-violet);
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    height: 28px;
    padding: 0 10px 0 8px;
    border: 1px solid var(--medoc-pchip-line);
    border-radius: 999px;
    background: var(--medoc-pchip-bg);
    color: var(--medoc-pchip-fg);
    font: inherit;
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    font-variant-numeric: tabular-nums;
    transition: background .16s var(--medoc-ease), color .16s var(--medoc-ease), border-color .16s var(--medoc-ease), transform .16s var(--medoc-ease);
}
.medoc-pchip__text { overflow: hidden; text-overflow: ellipsis; }
.medoc-pchip .medoc-icon { opacity: .75; }
.medoc-pchip:hover { background: var(--medoc-pchip-solid); border-color: var(--medoc-pchip-solid); color: #fff; transform: translateY(-1px); }
.medoc-pchip:hover .medoc-icon { opacity: 1; }
.medoc-pchip:hover .medoc-pchip__badge { background: #fff; color: var(--medoc-pchip-solid); }
.medoc-pchip--more {
    --medoc-pchip-fg: var(--medoc-muted);
    --medoc-pchip-bg: var(--medoc-surface-3);
    --medoc-pchip-line: var(--medoc-line-strong);
    --medoc-pchip-solid: var(--medoc-ink);
    padding: 0 10px;
}
.medoc-pchip--more:hover { color: var(--medoc-bg); }
.medoc-pchip__badge {
    display: inline-grid;
    place-items: center;
    width: 17px;
    height: 17px;
    flex: none;
    border-radius: 6px;
    background: var(--medoc-pchip-fg);
    color: var(--medoc-surface);
    font-size: 10.5px;
    font-weight: 800;
}
.medoc-pchip--doc0 { --medoc-pchip-fg: var(--medoc-a); --medoc-pchip-bg: var(--medoc-a-soft); --medoc-pchip-line: rgba(242, 97, 12, .3); --medoc-pchip-solid: #e8590c; }
.medoc-pchip--doc2 { --medoc-pchip-fg: #0b8a9a; --medoc-pchip-bg: rgba(18, 181, 201, .12); --medoc-pchip-line: rgba(18, 181, 201, .32); --medoc-pchip-solid: #0b8a9a; }
.medoc-pchip--doc3 { --medoc-pchip-fg: #237a35; --medoc-pchip-bg: rgba(47, 158, 68, .12); --medoc-pchip-line: rgba(47, 158, 68, .32); --medoc-pchip-solid: #237a35; }
.medoc-pchip--doc4 { --medoc-pchip-fg: #c2255c; --medoc-pchip-bg: rgba(230, 73, 128, .12); --medoc-pchip-line: rgba(230, 73, 128, .32); --medoc-pchip-solid: #c2255c; }
.medoc-pchip--doc5 { --medoc-pchip-fg: #475569; --medoc-pchip-bg: rgba(100, 116, 139, .14); --medoc-pchip-line: rgba(100, 116, 139, .32); --medoc-pchip-solid: #475569; }
@media (prefers-color-scheme: dark) {
    .medoc-pchip__badge { color: #0b0e14; }
    .medoc-pchip--doc2 { --medoc-pchip-fg: #4fd3e3; }
    .medoc-pchip--doc3 { --medoc-pchip-fg: #62d67f; }
    .medoc-pchip--doc4 { --medoc-pchip-fg: #f783ac; }
    .medoc-pchip--doc5 { --medoc-pchip-fg: #aab6c8; }
}

/* --- Markdown delle risposte --- */
.medoc-aimd { font-size: 15.5px; }
.medoc-aimd > :first-child { margin-top: 0; }
.medoc-aimd h2 { font-size: 19px; }
.medoc-aimd h3 { font-size: 17px; margin-top: 1.25em; }
.medoc-aimd h4 { font-size: 15.5px; }

.medoc-outside {
    position: relative;
    margin: 1.1em 0;
    padding: 12px 14px 12px 15px;
    border: 1px dashed rgba(109, 94, 252, .4);
    border-radius: 14px;
    background: var(--medoc-b-soft);
    font-size: 14.8px;
}
.medoc-outside__label { display: block; margin-bottom: 2px; color: var(--medoc-violet-ink); font-size: 12.5px; letter-spacing: .01em; text-transform: uppercase; }

/* --- Avvisi --- */
.medoc-ainote {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--medoc-line);
    border-radius: 16px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
}
.medoc-ainote__icon { display: grid; place-items: center; width: 32px; height: 32px; flex: none; border-radius: 10px; background: var(--medoc-surface-3); color: var(--medoc-muted); }
.medoc-ainote__body { min-width: 0; font-size: 14.5px; }
.medoc-ainote__body strong { display: block; color: var(--medoc-ink); }
.medoc-ainote__body p { margin: 3px 0 0; color: var(--medoc-muted); }
.medoc-ainote__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.medoc-ainote--error { border-color: rgba(214, 57, 57, .3); background: var(--medoc-problem-bg); }
.medoc-ainote--error .medoc-ainote__icon { background: rgba(214, 57, 57, .14); color: var(--medoc-problem); }
.medoc-ainote--quota { border-color: rgba(109, 94, 252, .3); background: linear-gradient(100deg, rgba(242, 97, 12, .07), rgba(109, 94, 252, .1)); }
.medoc-ainote--quota .medoc-ainote__icon { background: var(--medoc-b-soft); color: var(--medoc-violet-ink); }
.medoc-ainote--compact { padding: 10px 12px; border-radius: 12px; box-shadow: none; }
.medoc-ainote--compact .medoc-ainote__icon { width: 26px; height: 26px; border-radius: 8px; }

/* --- Attesa di una generazione --- */
.medoc-aiwait {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 26px;
    border: 1px solid var(--medoc-line);
    border-radius: var(--medoc-radius-lg);
    background:
        radial-gradient(120% 130% at 0% 0%, rgba(242, 97, 12, .08), transparent 55%),
        radial-gradient(120% 130% at 100% 100%, rgba(109, 94, 252, .1), transparent 55%),
        var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
}
.medoc-aiwait__orb {
    position: relative;
    display: grid;
    place-items: center;
    width: 66px;
    height: 66px;
    flex: none;
    border-radius: 22px;
    background: var(--medoc-grad-ai);
    color: #fff;
    box-shadow: 0 14px 30px -14px rgba(109, 94, 252, .8);
}
.medoc-aiwait__ring {
    position: absolute;
    inset: -6px;
    border-radius: 26px;
    border: 2px solid rgba(109, 94, 252, .35);
    animation: medoc-ai-breathe 2.4s var(--medoc-ease) infinite;
}
.medoc-aiwait__text { flex: 1; min-width: 0; }
.medoc-aiwait__title { margin: 0 0 6px; font-size: 19px; font-weight: 750; letter-spacing: -.018em; }
.medoc-aiwait__line { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.medoc-aiwait__status { margin: 0; color: var(--medoc-muted); font-size: 14.5px; }
.medoc-aiwait__pct { color: var(--medoc-ink); font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
.medoc-aiwait__note { margin: 10px 0 0; color: var(--medoc-faint); font-size: 13px; }
.medoc-aiwait--compact { gap: 12px; padding: 14px 16px; border-radius: var(--medoc-radius); }
.medoc-aiwait--compact .medoc-aiwait__orb { width: 42px; height: 42px; border-radius: 14px; }
.medoc-aiwait--compact .medoc-aiwait__ring { display: none; }
@keyframes medoc-ai-breathe {
    0%, 100% { opacity: .9; transform: scale(1); }
    50% { opacity: .25; transform: scale(1.08); }
}
@media (max-width: 560px) {
    .medoc-aiwait { flex-direction: column; align-items: flex-start; gap: 14px; padding: 20px; }
}

/* --- Documento generato (riassunti, appunti, spiegazioni) --- */
.medoc-artsecs { display: block; }
.medoc-artsec { margin: 0 0 30px; scroll-margin-top: calc(var(--medoc-ai-head) + 20px); }
.medoc-artsec__title {
    margin: 0 0 10px;
    font-size: clamp(19px, 2.4vw, 23px);
    font-weight: 760;
    letter-spacing: -.02em;
    line-height: 1.25;
}
.medoc-artsec__pages { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.medoc-artsec__pageslabel { color: var(--medoc-faint); font-size: 12.5px; font-weight: 650; }

/* --- Interruttore --- */
.medoc-switch { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; user-select: none; }
.medoc-switch__input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.medoc-switch__track {
    position: relative;
    display: block;
    width: 44px;
    height: 26px;
    flex: none;
    border-radius: 999px;
    background: var(--medoc-surface-3);
    box-shadow: inset 0 0 0 1px var(--medoc-line-strong);
    transition: background .2s var(--medoc-ease), box-shadow .2s var(--medoc-ease);
}
.medoc-switch__thumb {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-xs), 0 1px 3px rgba(11, 14, 20, .25);
    transition: transform .2s var(--medoc-ease);
}
.medoc-switch__label { font-size: 13.5px; font-weight: 620; color: var(--medoc-ink-2); line-height: 1.25; }
.medoc-switch__input:checked + .medoc-switch__track { background: var(--medoc-grad-ai); box-shadow: inset 0 0 0 1px transparent; }
.medoc-switch__input:checked + .medoc-switch__track .medoc-switch__thumb { transform: translateX(18px); }
.medoc-switch__input:focus-visible + .medoc-switch__track { outline: 2px solid var(--medoc-accent); outline-offset: 2px; }
.medoc-switch__input:disabled + .medoc-switch__track { opacity: .55; }
.medoc-switch:has(.medoc-switch__input:disabled) { cursor: default; }

.medoc-linkbtn {
    padding: 0;
    border: 0;
    background: none;
    color: var(--medoc-link);
    font: inherit;
    font-size: inherit;
    font-weight: 680;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}
.medoc-linkbtn:hover { color: var(--medoc-ink); }

/* Lettera del documento nelle viste multiple */
.medoc-docletter {
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    flex: none;
    border-radius: 7px;
    background: var(--medoc-a);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}
.medoc-docletter--1 { background: var(--medoc-b); }
.medoc-docletter--2 { background: #0b8a9a; }
.medoc-docletter--3 { background: #237a35; }
.medoc-docletter--4 { background: #c2255c; }
.medoc-docletter--5 { background: #475569; }
@media (prefers-color-scheme: dark) {
    .medoc-docletter { color: #0b0e14; }
}

/* =============================================================================
   Chat
   ============================================================================= */

.medoc-chatpage { padding-bottom: 0; }

.medoc-chat {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}
@media (min-width: 1060px) {
    .medoc-chat.has-side { grid-template-columns: var(--medoc-chat-side-w) minmax(0, 1fr); }
}

.medoc-chat__side {
    position: sticky;
    top: calc(var(--medoc-ai-head) + 18px);
    display: none;
    max-height: calc(100dvh - var(--medoc-ai-head) - 36px);
    padding-right: 4px;
    overflow: auto;
    scrollbar-width: thin;
}
@media (min-width: 1060px) { .medoc-chat__side { display: block; } }
.medoc-chat__sidehead { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.medoc-chat__sidetitle { margin: 0; font-size: 13px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; color: var(--medoc-faint); }

.medoc-chatlist__items { margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.medoc-chatlist__row { position: relative; display: flex; align-items: center; }
.medoc-chatlist__item {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid transparent;
    border-radius: 12px;
    color: inherit;
    text-decoration: none;
    transition: background .16s var(--medoc-ease), border-color .16s var(--medoc-ease);
}
.medoc-chatlist__item:hover { background: var(--medoc-surface-2); }
.medoc-chatlist__item.is-active { background: var(--medoc-surface); border-color: var(--medoc-line-strong); box-shadow: var(--medoc-shadow-xs); }
.medoc-chatlist__icon { display: grid; place-items: center; width: 28px; height: 28px; flex: none; border-radius: 9px; background: var(--medoc-b-soft); color: var(--medoc-violet-ink); }
.medoc-chatlist__text { display: grid; gap: 1px; min-width: 0; }
.medoc-chatlist__title { font-size: 14px; font-weight: 640; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-chatlist__meta { color: var(--medoc-faint); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-chatlist__del { position: absolute; right: 4px; opacity: 0; transition: opacity .15s var(--medoc-ease); }
.medoc-chatlist__row:hover .medoc-chatlist__del,
.medoc-chatlist__row:focus-within .medoc-chatlist__del { opacity: 1; }
@media (hover: none) { .medoc-chatlist__del { opacity: 1; } }
.medoc-chatlist__empty { margin: 0; padding: 12px 10px; color: var(--medoc-faint); font-size: 13.5px; }
.medoc-chatlist__new { margin-bottom: 14px; }

.medoc-chat__main { display: flex; flex-direction: column; min-height: calc(100dvh - var(--medoc-ai-head) - 90px); }

.medoc-chat__bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin-bottom: 14px;
    padding: 10px 12px;
    border: 1px solid var(--medoc-line);
    border-radius: 999px;
    background: var(--medoc-glass-strong);
    -webkit-backdrop-filter: blur(14px) saturate(160%);
    backdrop-filter: blur(14px) saturate(160%);
    box-shadow: var(--medoc-shadow-xs);
}
@media (min-width: 900px) {
    .medoc-chat__bar { position: sticky; top: calc(var(--medoc-ai-head) + 10px); z-index: 20; }
}
@media (max-width: 899px) { .medoc-chat__bar { border-radius: 18px; } }

.medoc-scopechip {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    max-width: 100%;
    min-width: 0;
    padding: 4px 10px 4px 4px;
    border: 0;
    border-radius: 999px;
    background: none;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .16s var(--medoc-ease);
}
.medoc-scopechip:hover { background: var(--medoc-surface-3); }
.medoc-scopechip.is-static { cursor: default; }
.medoc-scopechip__icon { display: grid; place-items: center; width: 30px; height: 30px; flex: none; border-radius: 10px; background: var(--medoc-grad-ai); color: #fff; }
.medoc-scopechip__text { display: grid; min-width: 0; }
.medoc-scopechip__kicker { color: var(--medoc-faint); font-size: 10.5px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.medoc-scopechip__label { font-size: 14px; font-weight: 700; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-scopechip__chev { color: var(--medoc-faint); }

.medoc-chat__strict { margin-left: auto; }
.medoc-chat__tools { display: flex; align-items: center; gap: 2px; }
@media (min-width: 1060px) { .medoc-chat__histbtn { display: none; } }
@media (max-width: 1059px) { .medoc-chat__strict { margin-left: 0; order: 3; flex-basis: 100%; } }

.medoc-chat__docletters { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.medoc-docletter-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 190px;
    padding: 3px 10px 3px 4px;
    border-radius: 999px;
    background: var(--medoc-surface-2);
    color: var(--medoc-ink-2);
    font-size: 12.5px;
    font-weight: 620;
    text-decoration: none;
}
.medoc-docletter-link:hover { background: var(--medoc-surface-3); color: var(--medoc-ink); }
.medoc-docletter-link__title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* L'altezza del piede la misura chat.js (ResizeObserver) in --medoc-chatfoot-h: il piede è alto
   110px su desktop ma fino a 220px sul telefono, dove la nota va a capo. Con un valore fisso la
   riga «Fonti:» finiva sotto il composer (revisione UX 17/09/2026, difetto P1-2). */
.medoc-chat__log { flex: 1; display: flex; flex-direction: column; gap: 22px; padding: 6px 0 calc(var(--medoc-chatfoot-h, 112px) + 14px); }
.medoc-chat__foot { position: sticky; bottom: 0; z-index: 25; margin-top: calc(-1 * var(--medoc-chatfoot-h, 112px)); }
html.medoc-has-docnav .medoc-chat__foot { bottom: calc(var(--medoc-bottomnav-h) + env(safe-area-inset-bottom)); }
@media (min-width: 900px) { html.medoc-has-docnav .medoc-chat__foot { bottom: 0; } }
.medoc-chat__noteslot:not(:empty) { margin-bottom: 10px; padding-bottom: 2px; }

/* --- Stato vuoto --- */
.medoc-chatempty { max-width: 760px; margin: clamp(10px, 4vw, 44px) auto 0; text-align: center; }
.medoc-chatempty__orb {
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    margin: 0 auto 18px;
    border-radius: 26px;
    background: var(--medoc-grad-ai);
    color: #fff;
    box-shadow: 0 20px 44px -18px rgba(109, 94, 252, .8);
}
.medoc-chatempty__title { margin: 0 0 10px; font-size: clamp(28px, 4.4vw, 40px); font-weight: 800; letter-spacing: -.035em; line-height: 1.08; text-wrap: balance; }
.medoc-chatempty__lead { max-width: 56ch; margin: 0 auto 22px; color: var(--medoc-muted); font-size: 16px; text-wrap: pretty; }
.medoc-chatempty__card {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    max-width: 100%;
    margin: 0 auto 26px;
    padding: 12px 20px 12px 12px;
    border: 1px solid var(--medoc-line);
    border-radius: 18px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
    text-align: left;
}
.medoc-chatempty__cardtext { display: grid; gap: 3px; min-width: 0; }
.medoc-chatempty__doctitle { font-size: 16px; font-weight: 720; line-height: 1.25; }
.medoc-chatempty__docmeta { color: var(--medoc-muted); font-size: 13.5px; }
.medoc-chatempty__scope { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; color: var(--medoc-violet-ink); font-size: 13px; font-weight: 640; }
.medoc-chatempty__docs { display: grid; gap: 8px; max-width: 520px; margin: 0 auto 26px; padding: 0; list-style: none; text-align: left; }
.medoc-chatempty__doc {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px 8px 10px;
    border: 1px solid var(--medoc-line);
    border-radius: 14px;
    background: var(--medoc-surface);
}
.medoc-chatempty__doctext { display: grid; gap: 1px; min-width: 0; font-size: 14px; }
.medoc-chatempty__doctext strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-chatempty__doctext span { color: var(--medoc-muted); font-size: 12.5px; }
.medoc-chatempty__try { margin: 0 0 12px; color: var(--medoc-faint); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.medoc-chatempty__guest { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin: 24px 0 0; color: var(--medoc-muted); font-size: 13.5px; }

/* Telefono: la presentazione si stringe, così sopra al composer resta posto per le prime
   domande suggerite invece che per il solo titolo (revisione UX 17/09/2026). */
@media (max-width: 560px) {
    .medoc-chatempty { margin-top: 6px; }
    .medoc-chatempty__orb { width: 52px; height: 52px; margin-bottom: 12px; border-radius: 18px; }
    .medoc-chatempty__orb .medoc-icon { width: 24px; height: 24px; }
    .medoc-chatempty__title { font-size: 24px; margin-bottom: 8px; }
    .medoc-chatempty__lead { margin-bottom: 14px; font-size: 14.5px; }
    .medoc-chatempty__card { margin-bottom: 16px; padding: 10px 14px 10px 10px; }
    .medoc-chatempty__docs { margin-bottom: 16px; }
    .medoc-chatempty__try { margin-bottom: 8px; }
}

.medoc-suggest { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; text-align: left; }
@media (max-width: 720px) { .medoc-suggest { grid-template-columns: minmax(0, 1fr); } }
.medoc-suggest__item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    height: 100%;
    padding: 12px 14px;
    border: 1px solid var(--medoc-line);
    border-radius: 16px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-xs);
    color: var(--medoc-ink);
    font: inherit;
    font-size: 14.5px;
    line-height: 1.35;
    text-align: left;
    cursor: pointer;
    transition: transform .2s var(--medoc-ease), box-shadow .2s var(--medoc-ease), border-color .2s var(--medoc-ease);
}
.medoc-suggest__item:hover { transform: translateY(-2px); border-color: rgba(109, 94, 252, .4); box-shadow: 0 14px 30px -18px rgba(109, 94, 252, .6); }
.medoc-suggest__icon { flex: none; color: var(--medoc-violet-ink); }

/* --- Messaggi --- */
.medoc-msg { display: flex; gap: 12px; }
.medoc-msg--user { justify-content: flex-end; }
.medoc-msg__bubble {
    max-width: min(640px, 86%);
    padding: 12px 16px;
    border-radius: 20px 20px 6px 20px;
    background: var(--medoc-grad-ink);
    color: #fff;
    box-shadow: var(--medoc-shadow-sm);
}
@media (prefers-color-scheme: dark) {
    .medoc-msg__bubble { background: linear-gradient(96deg, #262d3d, #1b2130); }
}
.medoc-msg__text { margin: 0; font-size: 15.5px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: break-word; }
.medoc-msg--user.is-stopped .medoc-msg__bubble { opacity: .6; }

.medoc-msg--ai { align-items: flex-start; }
.medoc-msg__avatar {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    flex: none;
    margin-top: 2px;
    border-radius: 12px;
    background: var(--medoc-grad-ai);
    color: #fff;
    box-shadow: 0 8px 20px -12px rgba(109, 94, 252, .9);
}
.medoc-msg--ai.is-pending .medoc-msg__avatar { animation: medoc-ai-pulse 1.6s var(--medoc-ease) infinite; }
@keyframes medoc-ai-pulse { 50% { transform: scale(.94); opacity: .8; } }
.medoc-msg__body { flex: 1; min-width: 0; }
.medoc-msg__md.is-streaming > :last-child::after {
    content: "";
    display: inline-block;
    width: 8px;
    height: 1.05em;
    margin-left: 2px;
    border-radius: 2px;
    background: var(--medoc-violet);
    vertical-align: -2px;
    animation: medoc-caret 1s steps(2, start) infinite;
}
@keyframes medoc-caret { 50% { opacity: 0; } }

.medoc-msg__sources { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.medoc-msg__srclabel { color: var(--medoc-faint); font-size: 12.5px; font-weight: 700; }
.medoc-msg__srcchips { display: flex; flex-wrap: wrap; gap: 6px; }
.medoc-msg__actions { display: flex; flex-wrap: wrap; gap: 2px; margin: 8px 0 0 -8px; }
.medoc-msg__action { color: var(--medoc-faint); }
.medoc-msg__action:hover { color: var(--medoc-ink); }
.medoc-msg__interrupted { display: flex; align-items: center; gap: 6px; margin: 10px 0 0; color: var(--medoc-check); font-size: 13px; font-weight: 640; }

.medoc-thinking { display: flex; align-items: center; gap: 10px; min-height: 34px; color: var(--medoc-muted); font-size: 14.5px; }
.medoc-thinking__dots { display: inline-flex; gap: 4px; }
.medoc-thinking__dots span { width: 7px; height: 7px; border-radius: 50%; background: var(--medoc-violet); animation: medoc-dot 1.1s var(--medoc-ease) infinite; }
.medoc-thinking__dots span:nth-child(2) { animation-delay: .16s; }
.medoc-thinking__dots span:nth-child(3) { animation-delay: .32s; }
@keyframes medoc-dot { 0%, 60%, 100% { opacity: .3; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-3px); } }

.medoc-notfound {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 18px;
    border: 1px solid rgba(109, 94, 252, .22);
    border-radius: 18px;
    background: var(--medoc-b-soft);
}
.medoc-notfound__icon { display: grid; place-items: center; width: 32px; height: 32px; flex: none; border-radius: 10px; background: var(--medoc-surface); color: var(--medoc-violet-ink); box-shadow: var(--medoc-shadow-xs); }
.medoc-notfound__body { min-width: 0; }
.medoc-notfound__body strong { display: block; font-size: 15.5px; color: var(--medoc-ink); }
.medoc-notfound__body p { margin: 4px 0 0; color: var(--medoc-muted); font-size: 14.5px; }
.medoc-notfound__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

/* --- Composer --- */
.medoc-composer {
    display: grid;
    gap: 6px;
    padding: 10px 0 14px;
    background: linear-gradient(to bottom, transparent, var(--medoc-bg) 26%);
}
.medoc-composer__box {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 8px 8px 8px 16px;
    border: 1px solid var(--medoc-line-strong);
    border-radius: 26px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-md);
    transition: border-color .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease);
}
.medoc-composer__box:focus-within { border-color: var(--medoc-accent); box-shadow: var(--medoc-shadow-md), var(--medoc-focus); }
.medoc-composer__input {
    flex: 1;
    min-width: 0;
    height: 44px;
    max-height: 220px;
    padding: 11px 0;
    border: 0;
    background: none;
    color: var(--medoc-ink);
    font: inherit;
    font-size: 16px;
    line-height: 1.4;
    resize: none;
    overflow-y: auto;
}
.medoc-composer__input:focus { outline: none; }
.medoc-composer__input::placeholder { color: var(--medoc-faint); }
.medoc-composer__send {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    flex: none;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--medoc-surface-3);
    color: var(--medoc-faint);
    cursor: pointer;
    transition: background .18s var(--medoc-ease), color .18s var(--medoc-ease), transform .18s var(--medoc-ease);
}
.medoc-composer.has-text .medoc-composer__send,
.medoc-composer.is-busy .medoc-composer__send { background: var(--medoc-grad-ai); color: #fff; box-shadow: 0 10px 22px -12px rgba(109, 94, 252, .9); }
.medoc-composer.has-text .medoc-composer__send:hover { transform: translateY(-1px) scale(1.03); }
.medoc-composer.is-busy .medoc-composer__send { background: var(--medoc-ink); color: var(--medoc-bg); }
.medoc-composer__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 8px; color: var(--medoc-faint); font-size: 12.5px; }
.medoc-composer__hint { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.medoc-composer__hint > span { display: inline-flex; align-items: flex-start; gap: 6px; }
.medoc-composer__hint .medoc-icon { margin-top: 1px; }
.medoc-composer__guest { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.medoc-composer__count { font-variant-numeric: tabular-nums; }
.medoc-composer__count.is-warn { color: var(--medoc-check); font-weight: 700; }

/* --- Scelta del capitolo --- */
.medoc-secpick { max-height: min(46vh, 380px); margin-top: 14px; overflow: auto; scrollbar-width: thin; }
.medoc-secpick__search { flex: none; }
.medoc-secpick__item {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 10px 12px;
    border: 0;
    border-radius: 10px;
    background: none;
    color: var(--medoc-ink-2);
    font: inherit;
    font-size: 14px;
    text-align: left;
    cursor: pointer;
}
.medoc-secpick__item:hover { background: var(--medoc-surface-2); color: var(--medoc-ink); }
.medoc-secpick__item.is-part { font-weight: 720; text-transform: uppercase; font-size: 12.5px; letter-spacing: .03em; }
.medoc-secpick__item.is-depth-1 { padding-left: 26px; }
.medoc-secpick__item.is-depth-2 { padding-left: 40px; font-size: 13.5px; }
.medoc-secpick__pages { flex: none; color: var(--medoc-faint); font-size: 12px; font-variant-numeric: tabular-nums; }
.medoc-secpick__none { padding: 18px 12px; }

/* --- Scelta di più documenti --- */
.medoc-multipick__items { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.medoc-multipick__item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border: 1px solid var(--medoc-line);
    border-radius: 14px;
    background: var(--medoc-surface);
    cursor: pointer;
    transition: border-color .16s var(--medoc-ease), background .16s var(--medoc-ease);
}
.medoc-multipick__item:hover { border-color: var(--medoc-line-strong); }
.medoc-multipick__item.is-checked { border-color: var(--medoc-violet); background: var(--medoc-b-soft); }
.medoc-multipick__text { display: grid; gap: 2px; min-width: 0; font-size: 14.5px; }
.medoc-multipick__text strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-multipick__text span { color: var(--medoc-muted); font-size: 12.5px; }
.medoc-multipick__bar {
    position: sticky;
    bottom: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 18px;
    padding: 14px 0;
    background: linear-gradient(to bottom, transparent, var(--medoc-bg) 30%);
}
.medoc-multipick__count { color: var(--medoc-muted); font-size: 14px; font-weight: 640; }

@media (prefers-reduced-motion: reduce) {
    .medoc-aiwait__ring,
    .medoc-msg--ai.is-pending .medoc-msg__avatar,
    .medoc-thinking__dots span,
    .medoc-msg__md.is-streaming > :last-child::after { animation: none; }
    .medoc-suggest__item:hover,
    .medoc-pchip:hover,
    .medoc-composer.has-text .medoc-composer__send:hover { transform: none; }
}

/* =============================================================================
   Riassumi (hub e risultato)
   ============================================================================= */

.medoc-sumtabs { margin-bottom: 18px; }

.medoc-sumopts { display: grid; gap: 14px; margin-bottom: 26px; padding: 18px 20px; }
.medoc-optrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.medoc-optrow__label { min-width: 148px; color: var(--medoc-ink); font-size: 14px; font-weight: 700; }
.medoc-optrow__select { width: auto; max-width: min(100%, 420px); height: 38px; font-size: 14px; }
.medoc-optrow__num { width: 92px; height: 38px; font-size: 14px; text-align: center; }
.medoc-optrow__pages { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.medoc-optrow__small { color: var(--medoc-muted); font-size: 13.5px; }
.medoc-optrow__hint { color: var(--medoc-faint); font-size: 13px; }
@media (max-width: 640px) {
    .medoc-optrow__label { min-width: 0; flex-basis: 100%; }
    /* I segmentati vanno a capo invece di essere tagliati. */
    .medoc-optrow .medoc-segmented,
    .medoc-entbar .medoc-segmented {
        width: 100%;
        flex-wrap: wrap;
        border-radius: 18px;
    }
    .medoc-optrow .medoc-segmented > button,
    .medoc-entbar .medoc-segmented > button { flex: 1 1 auto; }
    .medoc-entbar__sort { margin-left: 0; }
}

.medoc-modes { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.medoc-modecard {
    --medoc-tone: #d9480f;
    --medoc-tone-bg: rgba(242, 97, 12, .1);
    position: relative;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 15px 16px;
    border: 1px solid var(--medoc-line);
    border-radius: 18px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-xs);
    color: var(--medoc-ink);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform .2s var(--medoc-ease), box-shadow .2s var(--medoc-ease), border-color .2s var(--medoc-ease);
}
.medoc-modecard:hover { transform: translateY(-2px); border-color: var(--medoc-line-strong); box-shadow: var(--medoc-shadow-md); }
.medoc-modecard__icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: none;
    border-radius: 14px;
    background: var(--medoc-tone-bg);
    color: var(--medoc-tone);
    transition: transform .2s var(--medoc-ease);
}
.medoc-modecard:hover .medoc-modecard__icon { transform: scale(1.06) rotate(-3deg); }
.medoc-modecard__text { display: grid; gap: 2px; min-width: 0; }
.medoc-modecard__text strong { font-size: 15px; font-weight: 700; }
.medoc-modecard__text span { color: var(--medoc-muted); font-size: 12.8px; line-height: 1.35; }
.medoc-modecard__go { margin-left: auto; color: var(--medoc-faint); transition: transform .2s var(--medoc-ease), color .2s var(--medoc-ease); }
.medoc-modecard:hover .medoc-modecard__go { color: var(--medoc-tone); transform: translateX(3px); }
.medoc-modecard.is-busy { pointer-events: none; }
.medoc-modecard.is-busy::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: var(--medoc-glass-strong);
}
.medoc-modecard.is-busy .medoc-modecard__icon { animation: medoc-ai-pulse 1.2s var(--medoc-ease) infinite; }

.medoc-explain__lead { max-width: 60ch; margin: 0 0 18px; color: var(--medoc-muted); }
.medoc-levels { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.medoc-levelcard {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 14px;
    border: 1px solid var(--medoc-line);
    border-radius: 16px;
    background: var(--medoc-surface);
    color: var(--medoc-ink);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .18s var(--medoc-ease), background .18s var(--medoc-ease), transform .18s var(--medoc-ease);
}
.medoc-levelcard:hover { transform: translateY(-2px); border-color: var(--medoc-line-strong); }
.medoc-levelcard.is-active { border-color: var(--medoc-violet); background: var(--medoc-b-soft); box-shadow: 0 10px 26px -18px rgba(109, 94, 252, .8); }
.medoc-levelcard__icon { display: grid; place-items: center; width: 36px; height: 36px; flex: none; border-radius: 12px; background: var(--medoc-surface-3); color: var(--medoc-violet-ink); }
.medoc-levelcard.is-active .medoc-levelcard__icon { background: var(--medoc-grad-ai); color: #fff; }
.medoc-levelcard__text { display: grid; gap: 1px; min-width: 0; }
.medoc-levelcard__text strong { font-size: 14.5px; font-weight: 700; }
.medoc-levelcard__text span { color: var(--medoc-muted); font-size: 12.5px; line-height: 1.3; }
.medoc-explain__cta { margin-top: 20px; }

.medoc-artlist { display: grid; gap: 8px; }
.medoc-artitem__wrap { position: relative; display: flex; align-items: center; }
.medoc-artitem {
    --medoc-tone: #5f4ff0;
    --medoc-tone-bg: rgba(109, 94, 252, .11);
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
    padding: 11px 14px;
    border: 1px solid var(--medoc-line);
    border-radius: 14px;
    background: var(--medoc-surface);
    color: var(--medoc-ink);
    text-decoration: none;
    transition: border-color .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease), transform .18s var(--medoc-ease);
}
.medoc-artitem:hover { transform: translateY(-1px); border-color: var(--medoc-line-strong); box-shadow: var(--medoc-shadow-sm); }
.medoc-artitem__icon { display: grid; place-items: center; width: 36px; height: 36px; flex: none; border-radius: 12px; background: var(--medoc-tone-bg); color: var(--medoc-tone); }
.medoc-artitem__text { display: grid; gap: 1px; min-width: 0; }
.medoc-artitem__text strong { font-size: 14.5px; font-weight: 680; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-artitem__text span { color: var(--medoc-muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-artitem__state { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; color: var(--medoc-link); font-size: 12.5px; font-weight: 680; font-variant-numeric: tabular-nums; }
.medoc-artitem__state.is-failed { color: var(--medoc-problem); }
.medoc-artitem__chev { margin-left: auto; color: var(--medoc-faint); }
.medoc-artitem__del { position: absolute; right: 8px; opacity: 0; background: var(--medoc-surface); transition: opacity .15s var(--medoc-ease); }
.medoc-artitem__wrap:hover .medoc-artitem__del,
.medoc-artitem__wrap:focus-within .medoc-artitem__del { opacity: 1; }
@media (hover: none) { .medoc-artitem__del { opacity: 1; } }

/* --- Risultato --- */
.medoc-backlink { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 16px; color: var(--medoc-muted); font-size: 14px; font-weight: 640; text-decoration: none; }
.medoc-backlink:hover { color: var(--medoc-ink); }
.medoc-backlink .medoc-icon { transition: transform .2s var(--medoc-ease); }
.medoc-backlink:hover .medoc-icon { transform: translateX(-2px); }

.medoc-artdoc__head { margin-bottom: 26px; padding-bottom: 20px; border-bottom: 1px solid var(--medoc-line); }
.medoc-artdoc__title { margin: 8px 0 6px; font-size: clamp(28px, 4.2vw, 42px); font-weight: 800; letter-spacing: -.035em; line-height: 1.06; text-wrap: balance; }
.medoc-artdoc__meta { margin: 0; color: var(--medoc-muted); font-size: 14px; }
.medoc-artdoc__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; }
.medoc-artdoc__trbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 22px;
    padding: 12px 16px;
    border: 1px solid rgba(109, 94, 252, .22);
    border-radius: 16px;
    background: var(--medoc-b-soft);
}
.medoc-artdoc__trlabel { display: inline-flex; align-items: center; gap: 8px; color: var(--medoc-violet-ink); font-size: 14px; font-weight: 680; }
.medoc-artdoc__layout { display: block; }
.medoc-artdoc__body { max-width: 74ch; font-size: 16.5px; }
.medoc-artdoc__toc { display: none; }
@media (min-width: 1100px) {
    .medoc-artdoc__layout.has-toc { display: grid; grid-template-columns: minmax(0, 1fr) 232px; gap: 48px; align-items: start; }
    .medoc-artdoc__layout.has-toc .medoc-artdoc__toc {
        display: block;
        position: sticky;
        top: calc(var(--medoc-ai-head) + 24px);
        max-height: calc(100dvh - var(--medoc-ai-head) - 48px);
        overflow: auto;
        scrollbar-width: thin;
    }
}
.medoc-artdoc__tocTitle { margin: 0 0 8px; color: var(--medoc-faint); font-size: 11.5px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.medoc-artdoc__toclist { margin: 0; padding: 0 0 0 12px; border-left: 2px solid var(--medoc-line); list-style: none; display: grid; gap: 2px; }
.medoc-artdoc__toclink { display: block; padding: 5px 0; color: var(--medoc-muted); font-size: 13.5px; line-height: 1.3; text-decoration: none; }
.medoc-artdoc__toclink:hover { color: var(--medoc-link); }

.medoc-side { display: grid; gap: 26px; }
.medoc-side__row { display: grid; gap: 18px; padding-bottom: 22px; border-bottom: 1px solid var(--medoc-line); }
.medoc-side__row:last-child { border-bottom: 0; }
@media (min-width: 900px) { .medoc-side__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; } }
.medoc-side__lang { margin: 0 0 6px; color: var(--medoc-faint); font-size: 11.5px; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.medoc-side__col--tr .medoc-side__lang { color: var(--medoc-violet-ink); }
.medoc-side__col .medoc-artsec__title { margin-top: 0; font-size: 19px; }

/* =============================================================================
   Studia
   ============================================================================= */

.medoc-studytabs { margin-bottom: 22px; }
.medoc-studypanel { min-height: 320px; }

.medoc-studybar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 22px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--medoc-line);
}
.medoc-studybar__meta { margin: 0; color: var(--medoc-muted); font-size: 13.5px; }
.medoc-studybar__actions { display: flex; flex-wrap: wrap; gap: 6px; }

/* --- Scheda per creare un materiale --- */
.medoc-gencard {
    --medoc-tone: #5f4ff0;
    --medoc-tone-bg: rgba(109, 94, 252, .11);
    max-width: 640px;
    margin: 12px auto;
    padding: clamp(24px, 4vw, 40px);
    border: 1px solid var(--medoc-line);
    border-radius: var(--medoc-radius-lg);
    background:
        radial-gradient(120% 120% at 0% 0%, var(--medoc-tone-bg), transparent 58%),
        var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
    text-align: center;
}
.medoc-gencard__icon {
    display: grid;
    place-items: center;
    width: 68px;
    height: 68px;
    margin: 0 auto 16px;
    border-radius: 22px;
    background: var(--medoc-tone-bg);
    color: var(--medoc-tone);
}
.medoc-gencard__title { margin: 0 0 8px; font-size: clamp(22px, 3vw, 28px); font-weight: 780; letter-spacing: -.025em; text-wrap: balance; }
.medoc-gencard__desc { max-width: 46ch; margin: 0 auto; color: var(--medoc-muted); text-wrap: pretty; }
.medoc-gencard__scope { display: inline-flex; align-items: center; gap: 6px; margin: 12px 0 0; color: var(--medoc-violet-ink); font-size: 13.5px; font-weight: 640; }
.medoc-gencard__options { display: grid; gap: 12px; margin: 22px 0 4px; text-align: left; }
.medoc-gencard__cta { margin-top: 22px; }
.medoc-gencard__note { margin: 14px 0 0; color: var(--medoc-faint); font-size: 12.5px; }
.medoc-optrow--center { justify-content: center; }
.medoc-genopts { display: grid; gap: 14px; }
.medoc-checkgroup { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.medoc-checkitem { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }

/* --- Concetti --- */
.medoc-concepts { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.medoc-conceptcard {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 18px;
    border: 1px solid var(--medoc-line);
    border-radius: 18px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-xs);
}
.medoc-conceptcard__name { display: flex; align-items: center; gap: 9px; margin: 0; font-size: 17px; font-weight: 740; letter-spacing: -.015em; }
.medoc-conceptcard__text { margin: 0; color: var(--medoc-ink-2); font-size: 14.5px; line-height: 1.55; }
.medoc-conceptcard__related { margin-top: 2px; }
.medoc-conceptcard__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 10px; }
.medoc-conceptcard__ask { display: inline-flex; align-items: center; gap: 5px; color: var(--medoc-link); font-size: 12.5px; font-weight: 680; text-decoration: none; }
.medoc-conceptcard__ask:hover { text-decoration: underline; text-underline-offset: 3px; }

/* --- Domande e risposte --- */
.medoc-qa__head { display: flex; justify-content: flex-end; margin-bottom: 10px; }
.medoc-qa__list { display: grid; gap: 8px; }
.medoc-qa__item { border: 1px solid var(--medoc-line); border-radius: 16px; background: var(--medoc-surface); overflow: hidden; }
.medoc-qa__q {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    list-style: none;
    cursor: pointer;
    font-weight: 660;
    font-size: 15px;
}
.medoc-qa__q::-webkit-details-marker { display: none; }
.medoc-qa__q:hover { background: var(--medoc-surface-2); }
.medoc-qa__num { display: grid; place-items: center; width: 26px; height: 26px; flex: none; border-radius: 9px; background: var(--medoc-b-soft); color: var(--medoc-violet-ink); font-size: 12.5px; font-weight: 750; }
.medoc-qa__qtext { flex: 1; min-width: 0; }
.medoc-qa__chev { flex: none; color: var(--medoc-faint); transition: transform .2s var(--medoc-ease); }
.medoc-qa__item[open] .medoc-qa__chev { transform: rotate(180deg); }
.medoc-qa__a { padding: 0 16px 16px 54px; }
.medoc-qa__a .medoc-pchips { margin-top: 10px; }
@media (max-width: 560px) { .medoc-qa__a { padding-left: 16px; } }

/* --- Flashcard --- */
.medoc-deck { max-width: 760px; margin: 0 auto; }
.medoc-deck__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 18px; margin-bottom: 18px; }
.medoc-deck__meter { flex: 1 1 220px; min-width: 180px; display: flex; align-items: center; gap: 12px; }
.medoc-deck__count { flex: none; font-size: 15px; font-weight: 750; font-variant-numeric: tabular-nums; }
.medoc-deck__meter .medoc-progress { flex: 1; }
.medoc-deck__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.medoc-deck__stats { color: var(--medoc-muted); font-size: 13px; }
.medoc-deck__filter { height: 32px; font-size: 12.5px; }

.medoc-flashwrap { perspective: 1400px; }
.medoc-flash__btn { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: pointer; }
.medoc-flash {
    position: relative;
    display: grid;
    min-height: 280px;
    transform-style: preserve-3d;
    transition: transform .55s var(--medoc-ease);
}
.medoc-flash.is-flipped { transform: rotateY(180deg); }
.medoc-flash__face {
    grid-area: 1 / 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: clamp(24px, 4vw, 40px);
    border: 1px solid var(--medoc-line);
    border-radius: 24px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-md);
    text-align: center;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}
.medoc-flash__face--back {
    transform: rotateY(180deg);
    background:
        radial-gradient(120% 120% at 100% 0%, rgba(109, 94, 252, .12), transparent 60%),
        var(--medoc-surface);
    border-color: rgba(109, 94, 252, .25);
}
.medoc-flash__label { color: var(--medoc-faint); font-size: 11.5px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.medoc-flash__text { margin: 0; font-size: clamp(18px, 2.6vw, 24px); font-weight: 640; line-height: 1.35; letter-spacing: -.015em; text-wrap: balance; }
.medoc-flash__hint { color: var(--medoc-faint); font-size: 12.5px; }
.medoc-flash__src { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; }
.medoc-flash__section { color: var(--medoc-muted); font-size: 12.5px; }
.medoc-deck__nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; }
.medoc-deck__judge { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.medoc-deck__review { border-color: var(--medoc-check); color: var(--medoc-check); }
.medoc-deck__keys { margin: 14px 0 0; color: var(--medoc-faint); font-size: 12.5px; text-align: center; }
@media (hover: none) { .medoc-deck__keys { display: none; } }
.medoc-deck__end {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-height: 280px;
    justify-content: center;
    padding: 32px;
    border: 1px solid var(--medoc-line);
    border-radius: 24px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
    text-align: center;
}
.medoc-deck__endicon { color: var(--medoc-good); }
.medoc-deck__end h3 { margin: 0; font-size: 22px; font-weight: 760; }
.medoc-deck__end p { margin: 0; color: var(--medoc-muted); }
.medoc-deck__endactions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 12px; }

/* --- Quiz --- */
.medoc-quiz { max-width: 760px; margin: 0 auto; }
.medoc-quiz__intro, .medoc-quiz__card, .medoc-quiz__end {
    padding: clamp(22px, 4vw, 36px);
    border: 1px solid var(--medoc-line);
    border-radius: 24px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
}
.medoc-quiz__intro { text-align: center; }
.medoc-quiz__introicon { display: grid; place-items: center; width: 66px; height: 66px; margin: 0 auto 14px; border-radius: 22px; background: var(--medoc-a-soft); color: var(--medoc-a); }
.medoc-quiz__intro h2 { margin: 0 0 8px; font-size: clamp(22px, 3vw, 28px); font-weight: 780; letter-spacing: -.025em; }
.medoc-quiz__intro p { max-width: 48ch; margin: 0 auto; color: var(--medoc-muted); }
.medoc-quiz__introactions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin-top: 22px; }
.medoc-quiz__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 10px; }
.medoc-quiz__step { font-size: 13.5px; font-weight: 750; font-variant-numeric: tabular-nums; }
.medoc-quiz__type { padding: 2px 9px; border-radius: 999px; background: var(--medoc-surface-3); color: var(--medoc-muted); font-size: 11.5px; font-weight: 700; }
.medoc-quiz__score { margin-left: auto; color: var(--medoc-muted); font-size: 13px; font-variant-numeric: tabular-nums; }
.medoc-quiz__question { margin: 18px 0 20px; font-size: clamp(19px, 2.6vw, 24px); font-weight: 720; line-height: 1.3; letter-spacing: -.02em; text-wrap: balance; }
.medoc-quiz__options { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.medoc-quiz__tf { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.medoc-quiz__opt {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 14px 16px;
    border: 1px solid var(--medoc-line-strong);
    border-radius: 16px;
    background: var(--medoc-surface);
    color: var(--medoc-ink);
    font: inherit;
    font-size: 15px;
    text-align: left;
    cursor: pointer;
    transition: border-color .16s var(--medoc-ease), background .16s var(--medoc-ease), transform .16s var(--medoc-ease);
}
.medoc-quiz__opt:hover:not([disabled]) { border-color: var(--medoc-violet); background: var(--medoc-b-soft); transform: translateY(-1px); }
.medoc-quiz__opt--tf { justify-content: center; font-size: 17px; font-weight: 700; }
.medoc-quiz__letter { display: grid; place-items: center; width: 28px; height: 28px; flex: none; border-radius: 9px; background: var(--medoc-surface-3); color: var(--medoc-muted); font-size: 13px; font-weight: 750; }
.medoc-quiz__opttext { flex: 1; min-width: 0; }
.medoc-quiz__opt[disabled] { cursor: default; }
.medoc-quiz__opt.is-correct { border-color: var(--medoc-good); background: var(--medoc-good-bg); color: var(--medoc-ink); }
.medoc-quiz__opt.is-correct .medoc-quiz__letter { background: var(--medoc-good); color: #fff; }
.medoc-quiz__opt.is-wrong { border-color: var(--medoc-problem); background: var(--medoc-problem-bg); }
.medoc-quiz__opt.is-wrong .medoc-quiz__letter { background: var(--medoc-problem); color: #fff; }
.medoc-quiz__opt.is-dim { opacity: .55; }
.medoc-quiz__open { width: 100%; min-height: 110px; }
.medoc-quiz__feedback { margin-top: 18px; padding: 16px; border-radius: 16px; background: var(--medoc-surface-2); border: 1px solid var(--medoc-line); }
.medoc-quiz__feedback.is-correct { background: var(--medoc-good-bg); border-color: rgba(47, 158, 68, .3); }
.medoc-quiz__feedback.is-wrong { background: var(--medoc-problem-bg); border-color: rgba(214, 57, 57, .28); }
.medoc-quiz__verdict { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 15.5px; font-weight: 750; }
.medoc-quiz__feedback.is-correct .medoc-quiz__verdict { color: var(--medoc-good); }
.medoc-quiz__feedback.is-wrong .medoc-quiz__verdict { color: var(--medoc-problem); }
.medoc-quiz__right { margin: 0 0 6px; font-size: 15px; font-weight: 640; }
.medoc-quiz__expl { margin: 0; color: var(--medoc-muted); font-size: 14.5px; }
.medoc-quiz__page { margin-top: 12px; }
.medoc-quiz__self { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; font-size: 14px; font-weight: 640; }
.medoc-quiz__footer { display: flex; justify-content: flex-end; margin-top: 20px; }
.medoc-quiz__end { text-align: center; }
.medoc-quiz__ring {
    --medoc-ring: 0%;
    position: relative;
    display: grid;
    place-items: center;
    width: 132px;
    height: 132px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: conic-gradient(var(--medoc-accent) var(--medoc-ring), var(--medoc-surface-3) 0);
}
.medoc-quiz__ring::after { content: ""; position: absolute; inset: 11px; border-radius: 50%; background: var(--medoc-surface); }
.medoc-quiz__ringnum { position: relative; z-index: 1; font-size: 26px; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.medoc-quiz__endtitle { margin: 0 0 4px; font-size: clamp(22px, 3vw, 28px); font-weight: 780; letter-spacing: -.025em; }
.medoc-quiz__endsub { margin: 0; color: var(--medoc-muted); }
.medoc-quiz__endactions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 20px 0 26px; }
.medoc-quiz__reviewtitle { margin: 0 0 12px; font-size: 16px; font-weight: 740; text-align: left; }
.medoc-quiz__review { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; text-align: left; }
.medoc-quiz__reviewitem { display: flex; gap: 10px; padding: 12px 14px; border: 1px solid var(--medoc-line); border-radius: 14px; background: var(--medoc-surface-2); }
.medoc-quiz__reviewitem.is-correct .medoc-quiz__reviewicon { color: var(--medoc-good); }
.medoc-quiz__reviewitem.is-wrong .medoc-quiz__reviewicon { color: var(--medoc-problem); }
.medoc-quiz__reviewbody { display: grid; gap: 4px; min-width: 0; }
.medoc-quiz__reviewq { margin: 0; font-size: 14.5px; font-weight: 660; }
.medoc-quiz__reviewa, .medoc-quiz__reviewr { margin: 0; color: var(--medoc-muted); font-size: 13.5px; }
.medoc-quiz__reviewbody .medoc-pchip { margin-top: 4px; align-self: flex-start; }
@media (max-width: 480px) { .medoc-quiz__tf { grid-template-columns: minmax(0, 1fr); } }

/* --- Glossario --- */
.medoc-gloss__top { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 14px; }
.medoc-gloss__search { flex: 1 1 300px; }
.medoc-gloss__count { margin: 0; color: var(--medoc-muted); font-size: 13.5px; }
.medoc-gloss__letters { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 22px; }
.medoc-gloss__letterlink {
    display: grid;
    place-items: center;
    min-width: 30px;
    height: 30px;
    padding: 0 6px;
    border-radius: 9px;
    background: var(--medoc-surface-2);
    color: var(--medoc-muted);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}
.medoc-gloss__letterlink:hover { background: var(--medoc-ink); color: var(--medoc-bg); }
.medoc-gloss__section { margin-bottom: 22px; scroll-margin-top: calc(var(--medoc-ai-head) + 16px); }
.medoc-gloss__letter {
    margin: 0 0 10px;
    padding-bottom: 6px;
    border-bottom: 2px solid var(--medoc-line);
    color: var(--medoc-link);
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .06em;
}
.medoc-gloss__group { display: grid; grid-template-columns: minmax(140px, 220px) minmax(0, 1fr); gap: 10px 22px; margin: 0; }
.medoc-gloss__term { font-size: 15.5px; font-weight: 720; }
.medoc-gloss__def { margin: 0; }
.medoc-gloss__def p { margin: 0 0 8px; color: var(--medoc-ink-2); font-size: 14.8px; line-height: 1.55; }
@media (max-width: 640px) {
    .medoc-gloss__group { grid-template-columns: minmax(0, 1fr); gap: 4px; }
    .medoc-gloss__def { margin-bottom: 16px; }
}

/* --- Cronologia --- */
.medoc-chronowrap { position: relative; }
.medoc-chrono { position: relative; margin: 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.medoc-chrono__item { position: relative; display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 24px; padding-bottom: 22px; }
.medoc-chrono__date { position: relative; display: flex; align-items: flex-start; justify-content: flex-end; gap: 12px; padding-top: 14px; text-align: right; }
.medoc-chrono__datetext { font-size: 16px; font-weight: 760; letter-spacing: -.015em; }
.medoc-chrono__dot {
    position: absolute;
    right: -18px;
    top: 18px;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--medoc-surface);
    box-shadow: 0 0 0 3px var(--medoc-accent);
    z-index: 1;
}
.medoc-chrono__item::before {
    content: "";
    position: absolute;
    left: 202px;
    top: 24px;
    bottom: -4px;
    width: 2px;
    background: var(--medoc-line);
}
.medoc-chrono__item:last-child::before { display: none; }
.medoc-chrono__card {
    padding: 14px 18px;
    border: 1px solid var(--medoc-line);
    border-radius: 16px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-xs);
}
.medoc-chrono__title { margin: 0 0 4px; font-size: 16.5px; font-weight: 720; letter-spacing: -.015em; }
.medoc-chrono__desc { margin: 0 0 10px; color: var(--medoc-ink-2); font-size: 14.5px; line-height: 1.55; }
@media (max-width: 720px) {
    .medoc-chrono__item { grid-template-columns: minmax(0, 1fr); gap: 8px; padding-left: 22px; padding-bottom: 18px; }
    .medoc-chrono__date { justify-content: flex-start; padding-top: 0; text-align: left; }
    .medoc-chrono__dot { right: auto; left: -22px; top: 6px; }
    .medoc-chrono__item::before { left: -16px; top: 18px; }
}

@media (prefers-reduced-motion: reduce) {
    .medoc-flash { transition: none; }
    .medoc-modecard:hover, .medoc-levelcard:hover, .medoc-quiz__opt:hover:not([disabled]), .medoc-artitem:hover { transform: none; }
}

/* =============================================================================
   Esplora
   ============================================================================= */

.medoc-exploretabs { margin-bottom: 20px; }

.medoc-entbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-bottom: 16px; }
.medoc-entbar__search { flex: 1 1 280px; }
.medoc-entbar__sort { margin-left: auto; }
.medoc-entlist__count { margin: 0 0 12px; color: var(--medoc-faint); font-size: 13px; }
.medoc-entitems { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.medoc-entitem {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 18px;
    border: 1px solid var(--medoc-line);
    border-radius: 18px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-xs);
    transition: border-color .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease);
}
.medoc-entitem:hover { border-color: var(--medoc-line-strong); box-shadow: var(--medoc-shadow-sm); }
.medoc-entavatar {
    --medoc-tone: #5f4ff0;
    --medoc-tone-bg: rgba(109, 94, 252, .12);
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    flex: none;
    border-radius: 14px;
    background: var(--medoc-tone-bg);
    color: var(--medoc-tone);
    font-size: 14.5px;
    font-weight: 800;
    letter-spacing: .02em;
}
.medoc-entavatar--date { background: var(--medoc-a-soft); color: var(--medoc-a); }
.medoc-entitem__body { flex: 1; min-width: 0; }
.medoc-entitem__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.medoc-entitem__name { margin: 0; font-size: 16.5px; font-weight: 740; letter-spacing: -.015em; }
.medoc-entitem__mentions { color: var(--medoc-faint); font-size: 12.5px; font-weight: 640; font-variant-numeric: tabular-nums; }
.medoc-entitem__desc { margin: 5px 0 10px; color: var(--medoc-ink-2); font-size: 14.5px; line-height: 1.55; }
.medoc-entitem__actions { display: flex; flex: none; gap: 2px; }
@media (max-width: 560px) {
    .medoc-entitem { padding: 14px; gap: 10px; }
    .medoc-entitem__actions { position: absolute; top: 10px; right: 8px; }
    .medoc-entitem__head { padding-right: 76px; }
}

/* --- Mappa del documento --- */
.medoc-mapbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 16px; }
.medoc-mapbar__hint { margin: 0; max-width: 60ch; color: var(--medoc-muted); font-size: 13.5px; }
.medoc-mapbar__tools { display: flex; gap: 8px; }

.medoc-mm__scroll { overflow-x: auto; padding: 4px 2px 12px; scrollbar-width: thin; }
.medoc-mm__list { display: block; margin: 0; padding: 0 0 0 22px; list-style: none; position: relative; }
.medoc-mm__item { position: relative; padding: 3px 0; }
.medoc-mm__item::before {
    content: "";
    position: absolute;
    left: -14px;
    top: 24px;
    width: 14px;
    border-top: 2px solid var(--medoc-line-strong);
}
.medoc-mm__item::after {
    content: "";
    position: absolute;
    left: -14px;
    top: 0;
    bottom: 0;
    border-left: 2px solid var(--medoc-line-strong);
}
.medoc-mm__item:first-child::after { top: 12px; }
.medoc-mm__item:last-child::after { bottom: auto; height: 14px; }
.medoc-mm__node {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    padding: 6px 8px 6px 6px;
    border: 1px solid var(--medoc-line);
    border-radius: 14px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-xs);
    transition: border-color .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease);
}
.medoc-mm__node:hover { border-color: var(--medoc-line-strong); box-shadow: var(--medoc-shadow-sm); }
.medoc-mm__node--root {
    gap: 12px;
    padding: 12px 18px;
    border: 0;
    border-radius: 18px;
    background: var(--medoc-grad-ink);
    color: #fff;
    box-shadow: var(--medoc-shadow-md);
}
@media (prefers-color-scheme: dark) { .medoc-mm__node--root { background: linear-gradient(96deg, #262d3d, #1b2130); } }
.medoc-mm__node--root .medoc-mm__meta { color: rgba(255, 255, 255, .7); }
.medoc-mm__icon { display: grid; place-items: center; width: 34px; height: 34px; flex: none; border-radius: 12px; background: rgba(255, 255, 255, .14); }
.medoc-mm__text { display: grid; gap: 1px; min-width: 0; }
.medoc-mm__item.is-part > .medoc-mm__node { background: var(--medoc-surface-2); border-color: var(--medoc-line-strong); }
.medoc-mm__item.is-part > .medoc-mm__node .medoc-mm__title { font-size: 13px; font-weight: 780; letter-spacing: .04em; text-transform: uppercase; }
.medoc-mm__toggle {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    flex: none;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: none;
    color: var(--medoc-faint);
    cursor: pointer;
}
.medoc-mm__toggle:hover { background: var(--medoc-surface-3); color: var(--medoc-ink); }
.medoc-mm__toggle .medoc-icon { transition: transform .2s var(--medoc-ease); }
.medoc-mm__toggle[aria-expanded="true"] .medoc-icon { transform: rotate(90deg); }
.medoc-mm__label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; flex: 1; min-width: 0; padding: 4px 6px; color: inherit; text-decoration: none; }
.medoc-mm__title { font-size: 14.5px; font-weight: 660; line-height: 1.3; }
a.medoc-mm__label:hover .medoc-mm__title { color: var(--medoc-link); }
.medoc-mm__meta { color: var(--medoc-faint); font-size: 12px; font-variant-numeric: tabular-nums; }
.medoc-mm__actions { display: inline-flex; flex: none; gap: 2px; opacity: 0; transition: opacity .16s var(--medoc-ease); }
.medoc-mm__node:hover .medoc-mm__actions,
.medoc-mm__node:focus-within .medoc-mm__actions { opacity: 1; }
@media (hover: none) { .medoc-mm__actions { opacity: 1; } }
.medoc-mm__branch { padding-left: 22px; }
.medoc-mm__concepts { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 4px; padding: 0 0 0 22px; list-style: none; }
.medoc-mm__concept {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    padding: 0 10px;
    border: 1px dashed var(--medoc-line-strong);
    border-radius: 999px;
    background: var(--medoc-surface-2);
    color: var(--medoc-ink-2);
    font: inherit;
    font-size: 12.5px;
    font-weight: 620;
    cursor: pointer;
}
.medoc-mm__concept:hover { border-style: solid; border-color: var(--medoc-violet); color: var(--medoc-violet-ink); background: var(--medoc-b-soft); }

/* Su schermi larghi la mappa resta un albero indentato (leggibile anche con 38 capitoli),
   ma i nodi si allargano e le parti diventano barre colorate. */
@media (min-width: 1000px) {
    .medoc-mm__node { max-width: 680px; }
    .medoc-mm__node--root { max-width: none; }
    .medoc-mm__list { padding-left: 30px; }
    .medoc-mm__branch { padding-left: 30px; }
    .medoc-mm__item::before,
    .medoc-mm__item::after { left: -18px; }
    .medoc-mm__item::before { width: 18px; }
    .medoc-mm__concepts { padding-left: 30px; }
}
.medoc-mm__root > .medoc-mm__list { margin-top: 8px; }

/* =============================================================================
   Confronta
   ============================================================================= */

.medoc-cmpmodes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.medoc-cmpmode {
    --medoc-tone: #d9480f;
    --medoc-tone-bg: rgba(242, 97, 12, .1);
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 16px;
    border: 1px solid var(--medoc-line);
    border-radius: 18px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-xs);
    color: var(--medoc-ink);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease), transform .18s var(--medoc-ease);
}
.medoc-cmpmode:hover { transform: translateY(-2px); border-color: var(--medoc-line-strong); box-shadow: var(--medoc-shadow-sm); }
.medoc-cmpmode.is-active { border-color: var(--medoc-tone); box-shadow: 0 12px 30px -20px var(--medoc-tone); background: linear-gradient(180deg, var(--medoc-tone-bg), transparent 70%), var(--medoc-surface); }
.medoc-cmpmode__icon { display: grid; place-items: center; width: 44px; height: 44px; flex: none; border-radius: 14px; background: var(--medoc-tone-bg); color: var(--medoc-tone); }
.medoc-cmpmode__text { display: grid; gap: 2px; min-width: 0; }
.medoc-cmpmode__text strong { font-size: 15px; font-weight: 720; }
.medoc-cmpmode__text span { color: var(--medoc-muted); font-size: 12.8px; line-height: 1.35; }

.medoc-cmpslots { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 14px; }
@media (max-width: 760px) { .medoc-cmpslots { grid-template-columns: minmax(0, 1fr); } }
.medoc-cmpslot { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--medoc-line); border-radius: 18px; background: var(--medoc-surface); }
.medoc-cmpslot.is-filled { border-color: var(--medoc-line-strong); box-shadow: var(--medoc-shadow-xs); }
.medoc-cmpslot__label { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--medoc-muted); font-size: 13px; font-weight: 700; }
.medoc-cmpslot__pick {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 64px;
    padding: 10px;
    border: 1px dashed var(--medoc-line-strong);
    border-radius: 14px;
    background: var(--medoc-surface-2);
    color: var(--medoc-ink);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: border-color .18s var(--medoc-ease), background .18s var(--medoc-ease);
}
.medoc-cmpslot.is-filled .medoc-cmpslot__pick { border-style: solid; background: var(--medoc-surface); }
.medoc-cmpslot__pick:hover { border-color: var(--medoc-accent); background: var(--medoc-accent-soft); }
.medoc-cmpslot__plus { display: grid; place-items: center; width: 42px; height: 42px; flex: none; border-radius: 12px; background: var(--medoc-surface-3); color: var(--medoc-muted); }
.medoc-cmpslot__text { display: grid; gap: 2px; min-width: 0; flex: 1; }
.medoc-cmpslot__text strong { font-size: 14.5px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-cmpslot__text span { color: var(--medoc-muted); font-size: 12.5px; }
.medoc-cmpslot__change { flex: none; color: var(--medoc-link); font-size: 12.5px; font-weight: 700; }
.medoc-cmpslot__sel { height: 40px; font-size: 14px; }
.medoc-cmpvs { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--medoc-surface-3); color: var(--medoc-muted); font-size: 13px; font-weight: 800; text-transform: uppercase; }
.medoc-cmpcta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 22px; }
.medoc-cmpcta__hint { color: var(--medoc-faint); font-size: 13px; }

.medoc-docpick { max-height: min(48vh, 420px); margin-top: 14px; overflow: auto; scrollbar-width: thin; display: grid; gap: 6px; }
.medoc-docpick__item {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 8px 10px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: none;
    color: var(--medoc-ink);
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.medoc-docpick__item:hover { background: var(--medoc-surface-2); border-color: var(--medoc-line); }
.medoc-docpick__item.is-disabled { opacity: .5; cursor: default; }
.medoc-docpick__text { display: grid; gap: 1px; min-width: 0; }
.medoc-docpick__text strong { font-size: 14.5px; font-weight: 680; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-docpick__text span { color: var(--medoc-muted); font-size: 12.5px; }

/* --- Risultato del confronto --- */
.medoc-cmp__head { margin-bottom: 30px; padding-bottom: 22px; border-bottom: 1px solid var(--medoc-line); }
.medoc-cmp__title { margin: 8px 0 18px; font-size: clamp(26px, 4vw, 38px); font-weight: 800; letter-spacing: -.035em; line-height: 1.08; text-wrap: balance; }
.medoc-cmp__pair { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.medoc-cmp__side { display: inline-flex; align-items: center; gap: 8px; min-width: 0; padding: 8px 14px 8px 10px; border: 1px solid var(--medoc-line); border-radius: 999px; background: var(--medoc-surface); }
.medoc-cmp__side--a { border-color: rgba(242, 97, 12, .35); background: var(--medoc-a-soft); }
.medoc-cmp__side--b { border-color: rgba(109, 94, 252, .3); background: var(--medoc-b-soft); }
.medoc-cmp__sidelabel { color: var(--medoc-ink); font-size: 14.5px; font-weight: 700; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 320px; }
.medoc-cmp__sidelabel:hover { text-decoration: underline; text-underline-offset: 3px; }
.medoc-cmp__vs { color: var(--medoc-faint); font-size: 13px; font-weight: 800; text-transform: uppercase; }
.medoc-cmp__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }

.medoc-cmp__block { margin: 0 0 34px; }
.medoc-cmp__blocktitle { margin: 0 0 14px; font-size: 20px; font-weight: 760; letter-spacing: -.02em; }
.medoc-cmp__blockhint { margin: -8px 0 14px; color: var(--medoc-muted); font-size: 13.5px; }
.medoc-cmp__summary { max-width: 74ch; }
.medoc-cmp__topics .medoc-tag { height: 30px; font-size: 13px; }

.medoc-cmp__list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.medoc-cmp__item { display: flex; gap: 12px; padding: 14px 16px; border: 1px solid var(--medoc-line); border-radius: 16px; background: var(--medoc-surface); }
.medoc-cmp__bullet { display: grid; place-items: center; width: 28px; height: 28px; flex: none; border-radius: 9px; background: var(--medoc-good-bg); color: var(--medoc-good); }
.medoc-cmp__itembody { min-width: 0; flex: 1; }
.medoc-cmp__point { margin: 0 0 8px; font-size: 15px; font-weight: 640; line-height: 1.45; }
.medoc-cmp__pages { display: flex; flex-wrap: wrap; gap: 6px 14px; }

.medoc-cmp__diffs { display: grid; gap: 12px; }
.medoc-cmp__diff { padding: 16px 18px; border: 1px solid var(--medoc-line); border-radius: 18px; background: var(--medoc-surface); }
.medoc-cmp__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 760px) { .medoc-cmp__cols { grid-template-columns: minmax(0, 1fr); } }
.medoc-cmp__col { display: grid; gap: 8px; align-content: start; padding: 12px 14px; border-radius: 14px; background: var(--medoc-surface-2); }
.medoc-cmp__col--a { background: var(--medoc-a-soft); }
.medoc-cmp__col--b { background: var(--medoc-b-soft); }
.medoc-cmp__collabel { display: inline-flex; align-items: center; gap: 8px; color: var(--medoc-ink-2); font-size: 12.5px; font-weight: 720; }
.medoc-cmp__coltext { margin: 0; font-size: 14.5px; line-height: 1.5; }
.medoc-cmp__onlylist { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.medoc-cmp__onlylist .medoc-cmp__point { margin-bottom: 6px; font-size: 14.5px; font-weight: 620; }

.medoc-cmp__changes { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.medoc-cmp__change { padding: 14px 16px; border: 1px solid var(--medoc-line); border-radius: 16px; background: var(--medoc-surface); }
.medoc-cmp__changehead { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; }
.medoc-cmp__changetext { margin: 0 0 6px; padding: 8px 12px; border-radius: 10px; font-size: 14.5px; line-height: 1.5; }
.medoc-cmp__changetext--old { background: var(--medoc-a-soft); color: var(--medoc-ink-2); text-decoration: line-through; text-decoration-color: rgba(242, 97, 12, .6); }
.medoc-cmp__changetext--new { background: var(--medoc-good-bg); color: var(--medoc-ink); }
.medoc-artdoc__layout.is-wide { display: block; }
.medoc-artdoc__layout.is-wide .medoc-artdoc__toc { display: none; }
.medoc-artdoc__layout.is-wide .medoc-artdoc__body { max-width: none; }
/* Stato vuoto: il composer resta appiccicato in fondo alla finestra come nella conversazione.
   Prima era `position: static` e finiva sotto la piega (a 390px cominciava a y=1183 su 844):
   chi apriva «Chatta con questo libro» non vedeva dove scrivere (difetto P1-1). */
.medoc-chat__log.is-empty { padding-bottom: calc(var(--medoc-chatfoot-h, 112px) + 10px); }
.medoc-chat__foot.is-static { position: sticky; }
.medoc-sumrecent { margin-top: 38px; }

/* --- Aree da toccare sui dispositivi a dito (revisione UX 17/09/2026) --- */
@media (pointer: coarse) {
    .medoc-pchip {
        position: relative;
    }
    .medoc-pchip::after {
        content: "";
        position: absolute;
        inset: -8px -4px;
    }
    .medoc-conceptcard__ask {
        position: relative;
    }
    .medoc-conceptcard__ask::after {
        content: "";
        position: absolute;
        inset: -12px -6px;
    }
}

/* La riga che spiega il segno «[p. ?]»: una frase che non ha retto il controllo
   sulla pagina resta nella risposta, ma dichiarata. Tono calmo, non allarme. */
.medoc-msg__unverified {
    display: flex; gap: 8px; align-items: flex-start;
    margin: 10px 0 0; padding: 8px 10px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--me-warn) 8%, transparent);
    color: var(--medoc-muted); font-size: 12.5px; line-height: 1.5;
}
.medoc-msg__unverified svg { flex: none; margin-top: 1px; color: var(--me-warn); }
