/* =============================================================================
   Mega Engine Document Intelligence — app.css
   Base, layout e componenti condivisi. Legge i token del tema (--me-*) e
   definisce i propri (--medoc-*). reader.css e ai.css si appoggiano a questi.
   Utility riusabili: .medoc-page .medoc-stack .medoc-row .medoc-grid .medoc-panel
   .medoc-toolbar .medoc-segmented .medoc-sheet .medoc-badge--good/check/problem
   ============================================================================= */

:root {
    --medoc-bg: #f6f7fb;
    --medoc-surface: #ffffff;
    --medoc-surface-2: #f5f6fa;
    --medoc-surface-3: #eceef4;
    --medoc-glass: rgba(255, 255, 255, .74);
    --medoc-glass-strong: rgba(255, 255, 255, .9);
    --medoc-line: rgba(11, 14, 20, .08);
    --medoc-line-strong: rgba(11, 14, 20, .15);
    --medoc-ink: var(--me-ink, #0b0e14);
    --medoc-ink-2: #2b3240;
    /* Contrasto del testo secondario nel tema chiaro (revisione UX 17/09/2026, difetto P2-9):
       il grigio del tema (#59637a) su bianco fa 3,6:1, sotto il minimo di 4,5:1, e colpisce i
       metadati delle schede, l'autore, la legenda della qualità. Qui dentro si usa un grigio più
       scuro; nel tema scuro si torna al colore del sito, che lì va già benissimo (7,4:1).
       Il foglio di stile del tema non si tocca: è una decisione che riguarda tutto megaengine.it. */
    --medoc-muted: #4b5568;
    --medoc-faint: #5d6878;
    --medoc-accent: var(--me-accent, #f2610c);
    --medoc-accent-2: #ff8a3d;
    --medoc-link: #c2410c;
    --medoc-violet: var(--me-violet, #6d5efc);
    --medoc-violet-ink: #5446e0;
    --medoc-cyan: var(--me-cyan, #12b5c9);
    --medoc-accent-soft: rgba(242, 97, 12, .09);
    --medoc-violet-soft: rgba(109, 94, 252, .09);
    --medoc-good: #1b7a30;
    --medoc-good-bg: rgba(47, 158, 68, .11);
    --medoc-check: #92400e;
    --medoc-check-bg: rgba(217, 119, 6, .13);
    --medoc-problem: #b91c1c;
    --medoc-problem-bg: rgba(214, 57, 57, .1);
    --medoc-star: #f5a800;
    --medoc-grad-ai: linear-gradient(100deg, #f2610c 0%, #e5476f 48%, #6d5efc 100%);
    --medoc-grad-ink: linear-gradient(96deg, #10151f, #2b3242);
    --medoc-shadow-xs: 0 1px 2px rgba(11, 14, 20, .05);
    --medoc-shadow-sm: 0 1px 2px rgba(11, 14, 20, .04), 0 6px 18px -10px rgba(11, 14, 20, .14);
    --medoc-shadow-md: 0 2px 6px rgba(11, 14, 20, .05), 0 16px 36px -18px rgba(11, 14, 20, .22);
    --medoc-shadow-lg: 0 2px 8px rgba(11, 14, 20, .06), 0 30px 70px -28px rgba(11, 14, 20, .32);
    --medoc-radius: 16px;
    --medoc-radius-sm: 11px;
    --medoc-radius-lg: 24px;
    --medoc-ease: var(--me-ease, cubic-bezier(.22, .8, .3, 1));
    --medoc-top: 0px;
    --medoc-appbar-h: 60px;
    --medoc-docnav-h: 54px;
    --medoc-bottomnav-h: 66px;
    --medoc-page-w: 1200px;
    --medoc-gutter: clamp(16px, 4vw, 32px);
    --medoc-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --medoc-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
    --medoc-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
    --medoc-focus: 0 0 0 3px rgba(242, 97, 12, .32);
    color-scheme: light;
}

@media (prefers-color-scheme: dark) {
    :root {
        --medoc-bg: #07090f;
        --medoc-surface: #10141d;
        --medoc-surface-2: #151a25;
        --medoc-surface-3: #1d2331;
        --medoc-glass: rgba(12, 15, 23, .74);
        --medoc-glass-strong: rgba(16, 20, 29, .92);
        --medoc-line: rgba(255, 255, 255, .08);
        --medoc-line-strong: rgba(255, 255, 255, .16);
        --medoc-ink-2: #cfd5e1;
        --medoc-muted: var(--me-muted, #99a3b8);
        --medoc-faint: #7a859b;
        --medoc-link: #ff9a57;
        --medoc-violet-ink: #aea5ff;
        --medoc-accent-soft: rgba(242, 97, 12, .15);
        --medoc-violet-soft: rgba(139, 125, 255, .15);
        --medoc-good: #57d376;
        --medoc-good-bg: rgba(87, 211, 118, .13);
        --medoc-check: #f7b347;
        --medoc-check-bg: rgba(247, 179, 71, .14);
        --medoc-problem: #ff7373;
        --medoc-problem-bg: rgba(255, 115, 115, .13);
        --medoc-shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);
        --medoc-shadow-sm: 0 1px 2px rgba(0, 0, 0, .45), 0 8px 20px -12px rgba(0, 0, 0, .7);
        --medoc-shadow-md: 0 2px 6px rgba(0, 0, 0, .45), 0 18px 40px -18px rgba(0, 0, 0, .8);
        --medoc-shadow-lg: 0 2px 8px rgba(0, 0, 0, .5), 0 34px 80px -28px rgba(0, 0, 0, .9);
        --medoc-focus: 0 0 0 3px rgba(255, 138, 61, .4);
        color-scheme: dark;
    }
}

/* La barra di amministrazione di WordPress occupa l'alto della pagina. */
body.admin-bar { --medoc-top: 32px; }
@media (max-width: 782px) { body.admin-bar { --medoc-top: 46px; } }
@media (max-width: 600px) { body.admin-bar { --medoc-top: 0px; } }

/* =============================================================================
   Base
   ============================================================================= */

html {
    -webkit-text-size-adjust: 100%;
    scroll-padding-top: calc(var(--medoc-top) + var(--medoc-appbar-h) + 16px);
}
html.medoc-has-docnav { scroll-padding-top: calc(var(--medoc-top) + var(--medoc-appbar-h) + var(--medoc-docnav-h) + 16px); }

body {
    margin: 0;
    min-height: 100dvh;
    background: var(--medoc-bg);
    color: var(--medoc-ink);
    font-family: var(--medoc-font);
    font-size: 16px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}
body::before { opacity: .75; }

.medoc-appbar,
.medoc-appbar *,
.medoc-docnav,
.medoc-docnav *,
.medoc-bottomnav,
.medoc-bottomnav *,
.medoc-main,
.medoc-main *,
.medoc-main *::before,
.medoc-main *::after,
.medoc-overlay *,
.medoc-sheet-wrap *,
.medoc-menu-wrap *,
.medoc-toasts *,
.medoc-selbar *,
.medoc-dropoverlay * {
    box-sizing: border-box;
}

html.medoc-lock,
html.medoc-lock body { overflow: hidden; }

[hidden] { display: none !important; }

.medoc-sr {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}


.medoc-main {
    display: block;
    min-height: calc(100dvh - var(--medoc-appbar-h) - var(--medoc-top));
    outline: none;
}

.medoc-main :focus-visible,
.medoc-appbar :focus-visible,
.medoc-docnav :focus-visible,
.medoc-bottomnav :focus-visible,
.medoc-overlay :focus-visible,
.medoc-sheet-wrap :focus-visible,
.medoc-menu-wrap :focus-visible,
.medoc-selbar :focus-visible,
.medoc-toasts :focus-visible {
    outline: 2px solid var(--medoc-accent);
    outline-offset: 2px;
}
/* Contenitori che ricevono il focus via codice: niente anello attorno a tutto il pannello. */
.medoc-main.medoc-main:focus,
.medoc-sheet-wrap .medoc-sheet:focus,
.medoc-overlay .medoc-modal:focus,
.medoc-menu-wrap .medoc-menu:focus,
.medoc-main [tabindex="-1"]:focus { outline: none; }

.medoc-icon { display: block; flex: none; }

.medoc-muted { color: var(--medoc-muted); }
.medoc-faint { color: var(--medoc-faint); }

.medoc-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--medoc-link);
    font-weight: 650;
    font-size: 14px;
    text-decoration: none;
}
.medoc-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.medoc-link .medoc-icon { transition: transform .2s var(--medoc-ease); }
.medoc-link:hover .medoc-icon { transform: translateX(2px); }

.medoc-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: var(--medoc-link);
    font-size: 12.5px;
    font-weight: 750;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.medoc-subtitle {
    margin: 22px 0 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--medoc-ink);
}

/* =============================================================================
   Layout e utility condivise
   ============================================================================= */

.medoc-page {
    width: 100%;
    max-width: calc(var(--medoc-page-w) + 2 * var(--medoc-gutter));
    margin: 0 auto;
    padding: clamp(22px, 4vw, 40px) var(--medoc-gutter) 72px;
}
.medoc-page--narrow { max-width: calc(760px + 2 * var(--medoc-gutter)); }
.medoc-page--wide { max-width: calc(1440px + 2 * var(--medoc-gutter)); }
.medoc-page--full { max-width: none; }

.medoc-stack { display: flex; flex-direction: column; gap: 16px; }
.medoc-stack--xs { gap: 6px; }
.medoc-stack--sm { gap: 10px; }
.medoc-stack--lg { gap: 28px; }

.medoc-row { display: flex; align-items: center; gap: 8px; }
.medoc-row--wrap { flex-wrap: wrap; }
.medoc-row--between { justify-content: space-between; }
.medoc-row--end { justify-content: flex-end; }
.medoc-row--top { align-items: flex-start; }

.medoc-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.medoc-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.medoc-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 720px) {
    .medoc-grid--2,
    .medoc-grid--3 { grid-template-columns: minmax(0, 1fr); }
}

.medoc-panel {
    background: var(--medoc-surface);
    border: 1px solid var(--medoc-line);
    border-radius: var(--medoc-radius);
    box-shadow: var(--medoc-shadow-sm);
    padding: 20px;
}
.medoc-panel--flat { box-shadow: none; }
.medoc-panel--tight { padding: 14px; }

.medoc-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    margin-bottom: 18px;
}
.medoc-toolbar__spacer { flex: 1 1 auto; }

.medoc-divider { height: 1px; border: 0; background: var(--medoc-line); margin: 20px 0; }

.medoc-pagehead {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
}
.medoc-pagehead__text { min-width: 0; }
.medoc-pagehead__title {
    margin: 0;
    font-size: clamp(28px, 4vw, 40px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -.035em;
}
.medoc-pagehead__sub {
    margin: 6px 0 0;
    color: var(--medoc-muted);
    font-size: 15px;
    font-variant-numeric: tabular-nums;
}
.medoc-pagehead__actions { display: flex; flex-wrap: wrap; gap: 8px; }

.medoc-section { margin: 0 0 34px; }
.medoc-section__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px 12px;
    margin-bottom: 14px;
}
.medoc-section__title {
    margin: 0;
    font-size: 18px;
    font-weight: 740;
    line-height: 1.3;
    letter-spacing: -.018em;
}
.medoc-section__hint {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--medoc-faint);
    font-size: 13px;
}
.medoc-panel > .medoc-section__head { margin-bottom: 12px; }

/* =============================================================================
   Barra dell'app
   ============================================================================= */

.medoc-appbar {
    position: sticky;
    top: var(--medoc-top);
    z-index: 60;
    height: var(--medoc-appbar-h);
    isolation: isolate;
}
.medoc-appbar::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--medoc-glass);
    -webkit-backdrop-filter: blur(18px) saturate(180%);
    backdrop-filter: blur(18px) saturate(180%);
    border-bottom: 1px solid var(--medoc-line);
}
html.medoc-has-docnav .medoc-appbar::before { border-bottom-color: transparent; }

.medoc-appbar__inner {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 100%;
    max-width: calc(var(--medoc-page-w) + 2 * var(--medoc-gutter));
    margin: 0 auto;
    padding: 0 var(--medoc-gutter);
}
.medoc-appbar__brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    color: var(--medoc-ink);
    text-decoration: none;
}
.medoc-appbar .me-wordmark { font-size: 16px; color: var(--medoc-ink); }
.medoc-appbar .medoc-appbar__brand { flex: none; }
.medoc-appbar__product {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-left: 12px;
    border-left: 1px solid var(--medoc-line-strong);
    color: var(--medoc-ink);
    font-weight: 700;
    font-size: 15px;
    letter-spacing: -.01em;
    text-decoration: none;
    white-space: nowrap;
}
.medoc-appbar__product:hover { color: var(--medoc-link); }

.medoc-appbar__nav {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-left: 14px;
}
.medoc-appbar__link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 38px;
    padding: 0 13px;
    border-radius: 999px;
    color: var(--medoc-muted);
    font-size: 14.5px;
    font-weight: 620;
    text-decoration: none;
    transition: background .18s var(--medoc-ease), color .18s var(--medoc-ease);
}
.medoc-appbar__link:hover { color: var(--medoc-ink); background: rgba(11, 14, 20, .05); }
.medoc-appbar__link.is-active { color: var(--medoc-ink); background: rgba(11, 14, 20, .07); }
@media (prefers-color-scheme: dark) {
    .medoc-appbar__link:hover { background: rgba(255, 255, 255, .06); }
    .medoc-appbar__link.is-active { background: rgba(255, 255, 255, .09); }
}

.medoc-appbar__account,
.medoc-appbar__user {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.medoc-usermenu {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    height: 42px;
    max-width: 260px;
    padding: 0 12px 0 4px;
    border: 1px solid var(--medoc-line);
    border-radius: 999px;
    background: var(--medoc-surface);
    color: var(--medoc-ink);
    font: inherit;
    font-size: 14px;
    font-weight: 620;
    cursor: pointer;
    box-shadow: var(--medoc-shadow-xs);
    transition: border-color .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease);
}
.medoc-usermenu:hover { border-color: var(--medoc-line-strong); box-shadow: var(--medoc-shadow-sm); }
.medoc-usermenu__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-usermenu__chev { color: var(--medoc-faint); }
.medoc-avatar {
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    flex: none;
    border-radius: 50%;
    background: var(--medoc-grad-ai);
    color: #fff;
    font-size: 12.5px;
    font-weight: 750;
    letter-spacing: .02em;
}

@media (max-width: 720px) {
    .medoc-appbar__nav { margin-left: auto; }
    .medoc-appbar__account,
    .medoc-appbar__user { margin-left: 4px; }
    .medoc-appbar__link { width: 40px; padding: 0; justify-content: center; }
    .medoc-appbar__linklabel { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .medoc-usermenu { padding: 0 4px; }
    .medoc-usermenu__name,
    .medoc-usermenu__chev { display: none; }
    .medoc-appbar .medoc-appbar__login { display: none; }
}
@media (max-width: 380px) {
    .medoc-appbar__product { font-size: 14px; letter-spacing: -.02em; }
    .medoc-appbar__link { width: 36px; }
}
@media (max-width: 460px) {
    .medoc-appbar .me-wordmark > span:not(.me-wordmark__mark) { display: none; }
    .medoc-appbar__inner { gap: 6px; }
    .medoc-appbar__product { padding-left: 0; border-left: 0; font-size: 14.5px; }
    .medoc-appbar__long { display: none; }
    html.medoc-guest .medoc-appbar__nav { display: none; }
    .medoc-appbar__product { display: block; }
    .medoc-appbar__account .medoc-btn--primary { padding: 0 12px; }
}

/* =============================================================================
   Barra del documento (desktop) e barra inferiore (mobile)
   ============================================================================= */

.medoc-docnav {
    position: sticky;
    top: calc(var(--medoc-top) + var(--medoc-appbar-h));
    z-index: 55;
    height: var(--medoc-docnav-h);
    isolation: isolate;
}
.medoc-docnav::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--medoc-glass);
    -webkit-backdrop-filter: blur(18px) saturate(180%);
    backdrop-filter: blur(18px) saturate(180%);
    border-bottom: 1px solid var(--medoc-line);
}
.medoc-docnav__inner {
    display: flex;
    align-items: center;
    gap: 16px;
    height: 100%;
    max-width: calc(var(--medoc-page-w) + 2 * var(--medoc-gutter));
    margin: 0 auto;
    padding: 0 var(--medoc-gutter);
}
.medoc-docnav__doc {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    max-width: 320px;
    padding: 4px 12px 4px 4px;
    border-radius: 12px;
    color: inherit;
    text-decoration: none;
    transition: background .18s var(--medoc-ease);
}
.medoc-docnav__doc:hover { background: rgba(11, 14, 20, .05); }
@media (prefers-color-scheme: dark) { .medoc-docnav__doc:hover { background: rgba(255, 255, 255, .06); } }
.medoc-docnav__titles { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.medoc-docnav__title,
.medoc-docnav__sub { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-docnav__title { font-size: 14px; font-weight: 700; }
.medoc-docnav__sub { font-size: 12px; color: var(--medoc-faint); }

.medoc-docnav__tabs {
    display: flex;
    align-items: center;
    gap: 2px;
    margin: 0 0 0 auto;
    padding: 0;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: none;
}
.medoc-docnav__tabs::-webkit-scrollbar { display: none; }
.medoc-docnav__tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 36px;
    padding: 0 12px;
    border-radius: 999px;
    color: var(--medoc-muted);
    font-size: 14px;
    font-weight: 620;
    white-space: nowrap;
    text-decoration: none;
    transition: background .18s var(--medoc-ease), color .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease);
}
a.medoc-docnav__tab:hover { color: var(--medoc-ink); background: rgba(11, 14, 20, .05); }
.medoc-docnav__tab.is-active {
    color: var(--medoc-ink);
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-xs), inset 0 0 0 1px var(--medoc-line-strong);
}
.medoc-docnav__tab.is-active .medoc-icon { color: var(--medoc-accent); }
.medoc-docnav__tab[aria-disabled="true"] { opacity: .45; cursor: not-allowed; }
@media (prefers-color-scheme: dark) { a.medoc-docnav__tab:hover { background: rgba(255, 255, 255, .06); } }

@media (max-width: 1100px) {
    .medoc-docnav__tab { padding: 0 10px; gap: 6px; }
    .medoc-docnav__doc { max-width: 230px; }
}
@media (max-width: 960px) {
    .medoc-docnav__tab .medoc-icon { display: none; }
}

.medoc-bottomnav { display: none; }

@media (max-width: 899px) {
    :root { --medoc-docnav-h: 48px; }
    .medoc-docnav__tabs { display: none; }
    .medoc-docnav__doc { max-width: none; flex: 1; }
    .medoc-bottomnav {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 58;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 2px;
        padding: 6px 6px calc(6px + env(safe-area-inset-bottom));
        background: var(--medoc-glass-strong);
        -webkit-backdrop-filter: blur(18px) saturate(180%);
        backdrop-filter: blur(18px) saturate(180%);
        border-top: 1px solid var(--medoc-line);
    }
    .medoc-bottomnav[hidden] { display: none !important; }
    html.medoc-has-docnav body { padding-bottom: calc(var(--medoc-bottomnav-h) + env(safe-area-inset-bottom)); }
}
.medoc-bottomnav__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-height: 52px;
    padding: 0;
    border: 0;
    border-radius: 14px;
    background: none;
    color: var(--medoc-muted);
    font: inherit;
    font-size: 11.5px;
    font-weight: 650;
    text-decoration: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.medoc-bottomnav__item .medoc-icon {
    width: 44px;
    height: 28px;
    padding: 3px 11px;
    border-radius: 999px;
    transition: background .2s var(--medoc-ease), color .2s var(--medoc-ease);
}
.medoc-bottomnav__item.is-active { color: var(--medoc-ink); }
.medoc-bottomnav__item.is-active .medoc-icon { background: var(--medoc-accent-soft); color: var(--medoc-link); }
.medoc-bottomnav__item[aria-disabled="true"] { opacity: .45; }

/* =============================================================================
   Pulsanti
   ============================================================================= */

.medoc-btn {
    --medoc-btn-h: 42px;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: var(--medoc-btn-h);
    padding: 0 18px;
    border: 1px solid transparent;
    border-radius: 999px;
    font: inherit;
    font-size: 14.5px;
    font-weight: 650;
    line-height: 1;
    letter-spacing: -.005em;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transition: transform .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease), background .18s var(--medoc-ease), color .18s var(--medoc-ease), border-color .18s var(--medoc-ease);
}
.medoc-btn:active { transform: translateY(1px); }
.medoc-btn--sm { --medoc-btn-h: 36px; padding: 0 14px; gap: 6px; font-size: 13.5px; }
.medoc-btn--lg { --medoc-btn-h: 50px; padding: 0 24px; font-size: 15.5px; gap: 10px; }
.medoc-btn--block { display: flex; width: 100%; }
.medoc-btn__label { overflow: hidden; text-overflow: ellipsis; }

.medoc-btn--primary {
    background: var(--medoc-grad-ink);
    color: #fff;
    border-color: rgba(255, 255, 255, .06);
    box-shadow: 0 6px 18px -8px rgba(11, 14, 20, .65), inset 0 1px 0 rgba(255, 255, 255, .08);
}
.medoc-btn--primary:hover {
    background: linear-gradient(96deg, var(--medoc-accent), var(--medoc-accent-2));
    color: #fff;
    box-shadow: 0 12px 28px -10px rgba(242, 97, 12, .75);
    transform: translateY(-1px);
}

.medoc-btn--secondary {
    background: var(--medoc-surface);
    color: var(--medoc-ink);
    border-color: var(--medoc-line-strong);
    box-shadow: var(--medoc-shadow-xs);
}
.medoc-btn--secondary:hover { border-color: rgba(11, 14, 20, .28); box-shadow: var(--medoc-shadow-sm); transform: translateY(-1px); }

.medoc-btn--ghost { background: transparent; color: var(--medoc-ink); }
.medoc-btn--ghost:hover { background: rgba(11, 14, 20, .06); }

.medoc-btn--danger { background: transparent; color: var(--medoc-problem); border-color: rgba(201, 42, 42, .35); }
.medoc-btn--danger:hover { background: #c92a2a; border-color: #c92a2a; color: #fff; }

.medoc-btn--ai {
    background: var(--medoc-grad-ai);
    background-size: 160% 100%;
    background-position: 0% 50%;
    color: #fff;
    border-color: transparent;
    box-shadow: 0 10px 26px -12px rgba(109, 94, 252, .75), 0 6px 18px -10px rgba(242, 97, 12, .6), inset 0 1px 0 rgba(255, 255, 255, .18);
    transition: transform .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease), background-position .5s var(--medoc-ease);
}
.medoc-btn--ai:hover {
    background-position: 100% 50%;
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 16px 34px -12px rgba(109, 94, 252, .85), 0 8px 22px -10px rgba(242, 97, 12, .7), inset 0 1px 0 rgba(255, 255, 255, .2);
}

.medoc-btn.is-active { background: var(--medoc-ink); color: var(--medoc-bg); border-color: var(--medoc-ink); }

.medoc-btn[disabled],
.medoc-btn[aria-disabled="true"] {
    opacity: .45;
    pointer-events: none;
    transform: none;
    box-shadow: none;
}

@media (prefers-color-scheme: dark) {
    .medoc-btn--primary {
        background: linear-gradient(96deg, #f4f6fb, #d9deea);
        color: #0b0e14;
        border-color: transparent;
        box-shadow: 0 8px 22px -12px rgba(255, 255, 255, .35), inset 0 1px 0 rgba(255, 255, 255, .6);
    }
    .medoc-btn--secondary:hover { border-color: rgba(255, 255, 255, .3); }
    .medoc-btn--ghost:hover { background: rgba(255, 255, 255, .07); }
}

.medoc-iconbtn {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    flex: none;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: var(--medoc-muted);
    text-decoration: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background .18s var(--medoc-ease), color .18s var(--medoc-ease), border-color .18s var(--medoc-ease), transform .18s var(--medoc-ease);
}
.medoc-iconbtn::after { content: ""; position: absolute; inset: -4px; }
.medoc-iconbtn:hover { background: rgba(11, 14, 20, .06); color: var(--medoc-ink); }
.medoc-iconbtn--sm { width: 34px; height: 34px; }
.medoc-iconbtn--xs { width: 30px; height: 30px; border-radius: 9px; }
.medoc-iconbtn--outline {
    width: 50px;
    height: 50px;
    border-color: var(--medoc-line-strong);
    background: var(--medoc-surface);
    color: var(--medoc-ink);
    box-shadow: var(--medoc-shadow-xs);
}
.medoc-iconbtn--outline:hover { background: var(--medoc-surface); border-color: rgba(11, 14, 20, .3); }
.medoc-iconbtn[disabled] { opacity: .35; pointer-events: none; }
.medoc-iconbtn[aria-pressed="true"],
.medoc-iconbtn.is-on { color: var(--medoc-star); }
@media (prefers-color-scheme: dark) {
    .medoc-iconbtn:hover { background: rgba(255, 255, 255, .07); }
    .medoc-iconbtn--outline:hover { background: var(--medoc-surface-2); border-color: rgba(255, 255, 255, .3); }
}

/* =============================================================================
   Campi
   ============================================================================= */

.medoc-field { display: flex; flex-direction: column; gap: 6px; margin: 0 0 14px; }
.medoc-field__label { font-size: 13.5px; font-weight: 650; color: var(--medoc-ink-2); }
.medoc-field__help { font-size: 12.5px; color: var(--medoc-faint); }

.medoc-input {
    width: 100%;
    height: 44px;
    padding: 0 14px;
    border: 1px solid var(--medoc-line-strong);
    border-radius: 12px;
    background: var(--medoc-surface);
    color: var(--medoc-ink);
    font: inherit;
    font-size: 15px;
    transition: border-color .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease);
}
textarea.medoc-input { height: auto; min-height: 110px; padding: 12px 14px; line-height: 1.5; resize: vertical; }
.medoc-input::placeholder { color: var(--medoc-faint); }
.medoc-input:focus { outline: none; border-color: var(--medoc-accent); box-shadow: var(--medoc-focus); }
.medoc-select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 40px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237d879b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 9.5 12 15l5.5-5.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
}

.medoc-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
.medoc-form-grid__full { grid-column: 1 / -1; }
@media (max-width: 480px) { .medoc-form-grid { grid-template-columns: minmax(0, 1fr); } }

.medoc-check { width: 18px; height: 18px; margin: 0; flex: none; accent-color: var(--medoc-accent); }

.medoc-search { position: relative; flex: 1 1 280px; min-width: 0; }
.medoc-search__icon {
    position: absolute;
    top: 50%;
    left: 15px;
    color: var(--medoc-faint);
    transform: translateY(-50%);
    pointer-events: none;
}
.medoc-search__input {
    width: 100%;
    height: 44px;
    padding: 0 16px 0 44px;
    border: 1px solid var(--medoc-line-strong);
    border-radius: 999px;
    background: var(--medoc-surface);
    color: var(--medoc-ink);
    font: inherit;
    font-size: 15px;
    box-shadow: var(--medoc-shadow-xs);
    transition: border-color .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease);
}
.medoc-search__input::placeholder { color: var(--medoc-faint); }
.medoc-search__input:focus { outline: none; border-color: var(--medoc-accent); box-shadow: var(--medoc-focus); }
.medoc-search__input::-webkit-search-cancel-button { cursor: pointer; }

/* =============================================================================
   Schede, segmentati, chip, tag, badge, stato
   ============================================================================= */

.medoc-tabs { display: flex; align-items: center; overflow-x: auto; scrollbar-width: none; }
.medoc-tabs::-webkit-scrollbar { display: none; }
.medoc-tabs--tabs { gap: 22px; border-bottom: 1px solid var(--medoc-line); }
.medoc-tabs__tab {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: none;
    border: 0;
    background: none;
    color: var(--medoc-muted);
    font: inherit;
    font-size: 14.5px;
    font-weight: 650;
    white-space: nowrap;
    cursor: pointer;
}
.medoc-tabs--tabs .medoc-tabs__tab { height: 44px; padding: 0 2px; }
.medoc-tabs--tabs .medoc-tabs__tab::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
    border-radius: 2px;
    background: var(--medoc-accent);
    transform: scaleX(0);
    transition: transform .22s var(--medoc-ease);
}
.medoc-tabs__tab:hover { color: var(--medoc-ink); }
.medoc-tabs__tab.is-active { color: var(--medoc-ink); }
.medoc-tabs--tabs .medoc-tabs__tab.is-active::after { transform: scaleX(1); }
.medoc-tabs__tab[disabled] { opacity: .4; cursor: not-allowed; }
.medoc-tabs__badge {
    display: inline-grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--medoc-surface-3);
    color: var(--medoc-muted);
    font-size: 11.5px;
    font-weight: 700;
}

/* Controllo segmentato: .medoc-tabs--segmented (da Medoc.ui.tabs) oppure .medoc-segmented > button */
.medoc-tabs--segmented,
.medoc-segmented {
    display: inline-flex;
    gap: 2px;
    max-width: 100%;
    padding: 4px;
    border: 1px solid var(--medoc-line);
    border-radius: 999px;
    background: var(--medoc-surface-3);
}
.medoc-tabs--segmented .medoc-tabs__tab,
.medoc-segmented > button,
.medoc-segmented > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 36px;
    padding: 0 15px;
    border: 0;
    border-radius: 999px;
    background: none;
    color: var(--medoc-muted);
    font: inherit;
    font-size: 14px;
    font-weight: 650;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    transition: background .18s var(--medoc-ease), color .18s var(--medoc-ease), box-shadow .18s var(--medoc-ease);
}
.medoc-tabs--segmented .medoc-tabs__tab.is-active,
.medoc-segmented > .is-active,
.medoc-segmented > [aria-pressed="true"],
.medoc-segmented > [aria-selected="true"],
.medoc-segmented > [aria-checked="true"] {
    background: var(--medoc-surface);
    color: var(--medoc-ink);
    box-shadow: var(--medoc-shadow-sm), inset 0 0 0 1px var(--medoc-line);
}

.medoc-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.medoc-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 36px;
    padding: 0 14px;
    border: 1px solid var(--medoc-line-strong);
    border-radius: 999px;
    background: var(--medoc-surface);
    color: var(--medoc-ink-2);
    font: inherit;
    font-size: 13.5px;
    font-weight: 620;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    transition: background .18s var(--medoc-ease), color .18s var(--medoc-ease), border-color .18s var(--medoc-ease);
}
.medoc-chip:hover { border-color: rgba(11, 14, 20, .3); color: var(--medoc-ink); }
.medoc-chip.is-active {
    background: var(--medoc-ink);
    border-color: var(--medoc-ink);
    color: var(--medoc-bg);
}
.medoc-chip.is-active .medoc-icon { color: var(--medoc-star); }
.medoc-chip__count { color: var(--medoc-faint); font-size: 12px; font-variant-numeric: tabular-nums; }
.medoc-chip.is-active .medoc-chip__count { color: inherit; opacity: .6; }
.medoc-chip--add { border-style: dashed; color: var(--medoc-muted); background: transparent; }
.medoc-chipgroup { display: inline-flex; align-items: center; gap: 2px; }
@media (prefers-color-scheme: dark) { .medoc-chip:hover { border-color: rgba(255, 255, 255, .32); } }

.medoc-dot { display: inline-block; flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--medoc-faint); }
.medoc-dot--orange { background: #f2610c; }
.medoc-dot--violet { background: #6d5efc; }
.medoc-dot--cyan { background: #12b5c9; }
.medoc-dot--green { background: #2f9e44; }
.medoc-dot--rose { background: #e64980; }
.medoc-dot--slate { background: #64748b; }
.medoc-dot--good { background: var(--medoc-good); }
.medoc-dot--check { background: var(--medoc-check); }
.medoc-dot--problem { background: var(--medoc-problem); }

.medoc-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.medoc-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 28px;
    padding: 0 11px;
    border: 1px solid var(--medoc-line);
    border-radius: 999px;
    background: var(--medoc-surface-2);
    color: var(--medoc-ink-2);
    font-size: 13px;
    font-weight: 620;
    white-space: nowrap;
    text-decoration: none;
}
.medoc-tag--link { transition: background .18s var(--medoc-ease), border-color .18s var(--medoc-ease), color .18s var(--medoc-ease); }
.medoc-tag--link:hover { background: var(--medoc-accent-soft); border-color: rgba(242, 97, 12, .35); color: var(--medoc-ink); }
.medoc-tag--ai {
    background: linear-gradient(100deg, rgba(242, 97, 12, .1), rgba(109, 94, 252, .12));
    border-color: rgba(109, 94, 252, .25);
    color: var(--medoc-violet-ink);
}

.medoc-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    background: var(--medoc-surface-3);
    color: var(--medoc-muted);
    font-size: 12.5px;
    font-weight: 680;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.medoc-badge__dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.medoc-badge--good { background: var(--medoc-good-bg); color: var(--medoc-good); }
.medoc-badge--check { background: var(--medoc-check-bg); color: var(--medoc-check); }
.medoc-badge--problem { background: var(--medoc-problem-bg); color: var(--medoc-problem); }
.medoc-badge--blank { background: var(--medoc-surface-3); color: var(--medoc-faint); }
.medoc-badge--ai { background: var(--medoc-violet-soft); color: var(--medoc-violet-ink); }

.medoc-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    padding: 0 10px;
    border: 1px solid var(--medoc-line);
    border-radius: 999px;
    background: var(--medoc-glass-strong);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    color: var(--medoc-ink-2);
    font-size: 12px;
    font-weight: 680;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.medoc-status__dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.medoc-status { max-width: 100%; }
.medoc-status > span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.medoc-status--good { color: var(--medoc-good); }
.medoc-status--problem { color: var(--medoc-problem); }
.medoc-status--working { color: var(--medoc-link); }
.medoc-status--working .medoc-status__dot { animation: medoc-pulse 1.8s var(--medoc-ease) infinite; }

/* =============================================================================
   Avanzamento, spinner, scheletri, stati vuoti, avvisi
   ============================================================================= */

.medoc-progress { width: 100%; }
.medoc-progress__meta {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
    color: var(--medoc-muted);
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}
.medoc-progress__track {
    position: relative;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--medoc-surface-3);
}
.medoc-progress--xs .medoc-progress__track { height: 4px; }
.medoc-progress--sm .medoc-progress__track { height: 6px; }
.medoc-progress--lg .medoc-progress__track { height: 12px; }
.medoc-progress__bar {
    position: relative;
    height: 100%;
    width: 0;
    overflow: hidden;
    border-radius: inherit;
    background: var(--medoc-grad-ai);
    transition: width .7s var(--medoc-ease);
}
.medoc-progress__bar::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .45), transparent);
    transform: translateX(-100%);
    animation: medoc-sweep 2.2s ease-in-out infinite;
}
.medoc-progress.is-indeterminate .medoc-progress__bar { width: 38%; animation: medoc-indet 1.3s ease-in-out infinite; }
.medoc-progress--check .medoc-progress__bar { background: var(--medoc-check); }
.medoc-progress--problem .medoc-progress__bar { background: var(--medoc-problem); }
.medoc-progress--good .medoc-progress__bar { background: var(--medoc-good); }

.medoc-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    flex: none;
    border: 2px solid var(--medoc-line-strong);
    border-top-color: var(--medoc-accent);
    border-radius: 50%;
    animation: medoc-rotate .8s linear infinite;
    vertical-align: middle;
}
.medoc-spinner--lg { width: 32px; height: 32px; border-width: 3px; }

.medoc-skeleton { display: flex; flex-direction: column; gap: 10px; }
.medoc-skeleton__line,
.medoc-skeleton__block {
    border-radius: 7px;
    background: linear-gradient(90deg, var(--medoc-surface-3) 25%, var(--medoc-surface-2) 50%, var(--medoc-surface-3) 75%);
    background-size: 200% 100%;
    animation: medoc-shimmer 1.4s linear infinite;
}
.medoc-skeleton__line { height: 12px; }
.medoc-skeleton__block { height: 150px; border-radius: 14px; margin-bottom: 6px; }
.medoc-skeleton__cover { aspect-ratio: 3 / 4; height: auto; }
.medoc-skeleton--cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(208px, 1fr));
    gap: 20px 18px;
}
.medoc-skeleton__card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--medoc-line);
    border-radius: 18px;
    background: var(--medoc-surface);
}
.medoc-skeleton__card .medoc-skeleton__block { height: auto; aspect-ratio: 1 / 1.05; }
@media (max-width: 560px) { .medoc-skeleton--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

.medoc-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    max-width: 540px;
    margin: 24px auto;
    padding: clamp(32px, 6vw, 64px) 20px;
    text-align: center;
}
.medoc-empty__icon {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin-bottom: 6px;
    border-radius: 20px;
    background: radial-gradient(120% 120% at 0% 0%, rgba(242, 97, 12, .16), transparent 60%), radial-gradient(120% 120% at 100% 100%, rgba(109, 94, 252, .16), transparent 60%), var(--medoc-surface);
    box-shadow: inset 0 0 0 1px var(--medoc-line), var(--medoc-shadow-sm);
    color: var(--medoc-link);
}
.medoc-empty__title { margin: 0; font-size: 22px; font-weight: 760; letter-spacing: -.022em; line-height: 1.25; text-wrap: balance; }
.medoc-empty__text { margin: 0; max-width: 46ch; color: var(--medoc-muted); text-wrap: pretty; }
.medoc-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 12px; }
.medoc-empty--compact { margin: 8px auto; padding: 22px 12px; gap: 6px; }
.medoc-empty--compact .medoc-empty__icon { width: 46px; height: 46px; border-radius: 14px; }
.medoc-empty--compact .medoc-empty__title { font-size: 17px; }
.medoc-empty--compact .medoc-empty__text { font-size: 14.5px; }

.medoc-alert {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--medoc-line);
    border-radius: 14px;
    background: var(--medoc-surface-2);
    color: var(--medoc-ink-2);
    font-size: 14.5px;
}
.medoc-alert > .medoc-icon { margin-top: 1px; }
.medoc-alert strong { display: block; color: var(--medoc-ink); }
.medoc-alert p { margin: 4px 0 0; }
.medoc-alert--problem { background: var(--medoc-problem-bg); border-color: rgba(214, 57, 57, .22); }
.medoc-alert--problem > .medoc-icon { color: var(--medoc-problem); }
.medoc-alert--check { background: var(--medoc-check-bg); border-color: rgba(217, 119, 6, .25); }
.medoc-alert--check > .medoc-icon { color: var(--medoc-check); }
.medoc-alert--good { background: var(--medoc-good-bg); border-color: rgba(47, 158, 68, .25); }
.medoc-alert--good > .medoc-icon { color: var(--medoc-good); }
.medoc-alert--info { background: var(--medoc-violet-soft); border-color: rgba(109, 94, 252, .22); }
.medoc-alert--info > .medoc-icon { color: var(--medoc-violet-ink); }

.medoc-callout {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 14px;
    margin: -8px 0 30px;
    padding: 14px 16px;
    border: 1px solid rgba(109, 94, 252, .22);
    border-radius: 16px;
    background: linear-gradient(100deg, rgba(242, 97, 12, .07), rgba(109, 94, 252, .09));
}
.medoc-callout__icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: none;
    border-radius: 12px;
    background: var(--medoc-grad-ai);
    color: #fff;
}
.medoc-callout__text { flex: 1 1 260px; font-size: 14.5px; color: var(--medoc-ink-2); }
.medoc-callout__text strong { color: var(--medoc-ink); }

.medoc-mark {
    padding: 0 2px;
    border-radius: 4px;
    background: rgba(242, 97, 12, .2);
    color: inherit;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}
@media (prefers-color-scheme: dark) { .medoc-mark { background: rgba(255, 138, 61, .3); } }

/* =============================================================================
   Notifiche (toast)
   ============================================================================= */

.medoc-toasts {
    position: fixed;
    left: 50%;
    bottom: calc(20px + env(safe-area-inset-bottom));
    z-index: 1200;
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: min(460px, calc(100vw - 24px));
    transform: translateX(-50%);
    pointer-events: none;
}
@media (max-width: 899px) {
    html.medoc-has-docnav .medoc-toasts { bottom: calc(var(--medoc-bottomnav-h) + 12px + env(safe-area-inset-bottom)); }
}
html.medoc-has-selbar .medoc-toasts { bottom: calc(96px + env(safe-area-inset-bottom)); }
.medoc-toast {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 8px 9px 14px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 14px;
    background: #121722;
    color: #eef1f7;
    box-shadow: 0 18px 40px -16px rgba(11, 14, 20, .55), 0 2px 6px rgba(11, 14, 20, .2);
    font-size: 14.5px;
    line-height: 1.4;
    pointer-events: auto;
    opacity: 0;
    transform: translateY(10px) scale(.98);
    transition: opacity .22s var(--medoc-ease), transform .22s var(--medoc-ease);
}
.medoc-toast.is-in { opacity: 1; transform: none; }
.medoc-toast.is-out { opacity: 0; transform: translateY(6px) scale(.98); }
.medoc-toast__icon { display: grid; place-items: center; flex: none; color: #9fb1ff; }
.medoc-toast--success .medoc-toast__icon { color: #5fd67c; }
.medoc-toast--error .medoc-toast__icon { color: #ff7b7b; }
.medoc-toast--warning .medoc-toast__icon { color: #f7b347; }
.medoc-toast__msg { flex: 1; min-width: 0; }
.medoc-toast__action {
    flex: none;
    height: 34px;
    padding: 0 10px;
    border: 0;
    border-radius: 9px;
    background: rgba(255, 255, 255, .08);
    color: #ffa565;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}
.medoc-toast__action:hover { background: rgba(255, 255, 255, .14); }
.medoc-toast__close {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    flex: none;
    border: 0;
    border-radius: 9px;
    background: none;
    color: rgba(238, 241, 247, .55);
    cursor: pointer;
}
.medoc-toast__close:hover { color: #fff; background: rgba(255, 255, 255, .08); }
@media (prefers-color-scheme: dark) {
    .medoc-toast { background: #1b2130; border-color: rgba(255, 255, 255, .12); box-shadow: 0 18px 40px -12px rgba(0, 0, 0, .8); }
}

/* =============================================================================
   Modale
   ============================================================================= */

.medoc-overlay {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: 16px;
    background: rgba(7, 9, 16, .42);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity .2s var(--medoc-ease);
}
.medoc-overlay.is-in { opacity: 1; }
.medoc-overlay.is-out { opacity: 0; }
.medoc-modal {
    width: min(540px, 100%);
    max-height: calc(100dvh - 32px);
    overflow: auto;
    border: 1px solid var(--medoc-line);
    border-radius: 22px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-lg);
    color: var(--medoc-ink);
    outline: none;
    transform: translateY(14px) scale(.98);
    transition: transform .26s var(--medoc-ease);
}
.medoc-overlay.is-in .medoc-modal { transform: none; }
.medoc-modal--sm { width: min(450px, 100%); }
.medoc-modal--lg { width: min(780px, 100%); }
.medoc-modal--xl { width: min(1040px, 100%); }
.medoc-modal.is-busy { cursor: progress; }
.medoc-modal__head { display: flex; align-items: flex-start; gap: 12px; padding: 22px 18px 4px 22px; }
.medoc-modal__icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: none;
    border-radius: 13px;
    background: var(--medoc-accent-soft);
    color: var(--medoc-link);
}
.medoc-modal__icon.is-danger { background: var(--medoc-problem-bg); color: var(--medoc-problem); }
.medoc-modal__icon.is-ai { background: var(--medoc-grad-ai); color: #fff; box-shadow: 0 10px 24px -12px rgba(109, 94, 252, .8); }
.medoc-modal__title {
    flex: 1;
    min-width: 0;
    margin: 8px 0 0;
    font-size: 19px;
    font-weight: 760;
    line-height: 1.3;
    letter-spacing: -.02em;
    text-wrap: balance;
}
.medoc-modal__close { margin: 0 0 0 auto; }
.medoc-modal__body { padding: 10px 22px 6px; color: var(--medoc-ink-2); font-size: 15px; }
.medoc-modal__body > p { margin: 0 0 12px; }
.medoc-modal__foot { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding: 14px 22px 22px; }

@media (max-width: 560px) {
    .medoc-overlay { align-items: end; padding: 0; }
    .medoc-modal,
    .medoc-modal--sm,
    .medoc-modal--lg,
    .medoc-modal--xl {
        width: 100%;
        max-height: 92dvh;
        border-radius: 24px 24px 0 0;
        padding-bottom: env(safe-area-inset-bottom);
        transform: translateY(100%);
    }
    .medoc-modal__foot { flex-direction: column-reverse; }
    .medoc-modal__foot .medoc-btn { width: 100%; height: 48px; }
}

.medoc-benefits { display: grid; gap: 10px; margin: 14px 0 6px; padding: 0; list-style: none; }
.medoc-benefits li { display: flex; align-items: center; gap: 12px; color: var(--medoc-ink-2); font-size: 14.5px; }
.medoc-benefits__icon {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    flex: none;
    border-radius: 10px;
    background: var(--medoc-accent-soft);
    color: var(--medoc-link);
}
.medoc-login-modal__reason { color: var(--medoc-muted); }

/* =============================================================================
   Foglio: pannello laterale (desktop) / dal basso (mobile)
   ============================================================================= */

.medoc-sheet-wrap { position: fixed; inset: 0; z-index: 900; pointer-events: none; }
.medoc-sheet-wrap.is-modal {
    pointer-events: auto;
    background: rgba(7, 9, 16, .4);
    opacity: 0;
    transition: opacity .24s var(--medoc-ease);
}
.medoc-sheet-wrap.is-modal.is-in { opacity: 1; }
.medoc-sheet-wrap.is-modal.is-out { opacity: 0; }
.medoc-sheet {
    position: absolute;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--medoc-line);
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-lg);
    color: var(--medoc-ink);
    outline: none;
    pointer-events: auto;
}
.medoc-sheet--right {
    top: calc(var(--medoc-top) + var(--medoc-appbar-h) + 10px);
    right: 10px;
    bottom: 10px;
    width: min(440px, calc(100vw - 20px));
    border-radius: 22px;
    transform: translateX(calc(100% + 24px));
    transition: transform .32s var(--medoc-ease);
}
.medoc-sheet-wrap.is-in .medoc-sheet--right { transform: none; }
.medoc-sheet-wrap.is-out .medoc-sheet--right { transform: translateX(calc(100% + 24px)); }
.medoc-sheet--bottom {
    left: 0;
    right: 0;
    bottom: 0;
    max-height: 90dvh;
    border-radius: 24px 24px 0 0;
    padding-bottom: env(safe-area-inset-bottom);
    transform: translateY(100%);
    transition: transform .32s var(--medoc-ease);
}
.medoc-sheet-wrap.is-in .medoc-sheet--bottom { transform: none; }
.medoc-sheet-wrap.is-out .medoc-sheet--bottom { transform: translateY(100%); }
.medoc-sheet__grip { width: 40px; height: 5px; margin: 8px auto 0; border-radius: 3px; background: var(--medoc-line-strong); flex: none; }
.medoc-sheet__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 12px 12px 20px;
    border-bottom: 1px solid var(--medoc-line);
    flex: none;
}
.medoc-sheet__titles { min-width: 0; padding-top: 4px; }
.medoc-sheet__kicker { overflow: hidden; color: var(--medoc-faint); font-size: 12.5px; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.medoc-sheet__title { margin: 1px 0 0; font-size: 18px; font-weight: 760; letter-spacing: -.02em; }
.medoc-sheet__body { flex: 1 1 auto; overflow: auto; overscroll-behavior: contain; padding: 16px 20px; }
.medoc-sheet__foot { flex: none; padding: 12px 20px 16px; border-top: 1px solid var(--medoc-line); }

/* =============================================================================
   Menu a comparsa
   ============================================================================= */

.medoc-menu-wrap { position: fixed; top: 0; left: 0; z-index: 1100; width: 0; height: 0; }
.medoc-menu {
    position: fixed;
    min-width: 220px;
    max-width: min(320px, calc(100vw - 16px));
    overflow: auto;
    padding: 6px;
    border: 1px solid var(--medoc-line);
    border-radius: 14px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-lg);
    color: var(--medoc-ink);
    outline: none;
    opacity: 0;
    transform: translateY(-4px) scale(.98);
    transform-origin: top;
    transition: opacity .14s var(--medoc-ease), transform .14s var(--medoc-ease);
}
.medoc-menu.is-above { transform-origin: bottom; }
.medoc-menu-wrap.is-in .medoc-menu { opacity: 1; transform: none; }
.medoc-menu-wrap.is-out .medoc-menu { opacity: 0; }
.medoc-menu__item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 40px;
    padding: 0 10px;
    border: 0;
    border-radius: 9px;
    background: none;
    color: var(--medoc-ink);
    font: inherit;
    font-size: 14.5px;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}
.medoc-menu__item:hover,
.medoc-menu__item:focus-visible { background: var(--medoc-surface-3); outline: none; }
.medoc-menu__item[disabled] { opacity: .45; cursor: not-allowed; }
.medoc-menu__item.is-danger { color: var(--medoc-problem); }
.medoc-menu__item.is-danger .medoc-menu__icon { color: inherit; }
.medoc-menu__item.is-danger:hover { background: var(--medoc-problem-bg); }
.medoc-menu__item.is-checked { font-weight: 650; }
.medoc-menu__icon { display: grid; place-items: center; width: 20px; flex: none; color: var(--medoc-muted); }
.medoc-menu__label { flex: 1; min-width: 0; }
.medoc-menu__hint { color: var(--medoc-faint); font-size: 12.5px; }
.medoc-menu__chev { color: var(--medoc-faint); }
.medoc-menu__sep { height: 1px; margin: 6px 4px; background: var(--medoc-line); }
.medoc-menu__heading,
.medoc-menu__title {
    overflow: hidden;
    padding: 8px 10px 4px;
    color: var(--medoc-faint);
    font-size: 12px;
    font-weight: 650;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.medoc-menu-wrap--sheet {
    inset: 0;
    width: auto;
    height: auto;
    background: rgba(7, 9, 16, .4);
    opacity: 0;
    transition: opacity .2s var(--medoc-ease);
}
.medoc-menu-wrap--sheet.is-in { opacity: 1; }
.medoc-menu-wrap--sheet.is-out { opacity: 0; }
.medoc-menu--sheet {
    top: auto;
    left: 8px;
    right: 8px;
    bottom: calc(8px + env(safe-area-inset-bottom));
    max-width: none;
    max-height: 80dvh;
    padding: 8px;
    border-radius: 20px;
    transform: translateY(24px);
    transition: transform .26s var(--medoc-ease), opacity .2s var(--medoc-ease);
}
.medoc-menu--sheet .medoc-menu__item { min-height: 50px; font-size: 15.5px; border-radius: 12px; }
.medoc-menu--sheet .medoc-menu__title { padding: 8px 12px 8px; font-size: 13px; }

/* =============================================================================
   Copertine (immagine o generata)
   ============================================================================= */

.medoc-cover {
    --medoc-cover-a: #f2610c;
    --medoc-cover-b: #6d5efc;
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 6px 10px 10px 6px;
    background: var(--medoc-surface-3);
    box-shadow: 0 1px 1px rgba(11, 14, 20, .08), 0 12px 26px -14px rgba(11, 14, 20, .45);
    isolation: isolate;
    container-type: inline-size;
}
.medoc-cover::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(0, 0, 0, .16) 0, rgba(255, 255, 255, .18) 2.5%, rgba(255, 255, 255, 0) 7%, transparent 100%);
    box-shadow: inset 0 0 0 1px rgba(11, 14, 20, .06);
    pointer-events: none;
}
.medoc-cover__gen {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    padding: 13% 11% 11% 14%;
    background:
        radial-gradient(120% 70% at 100% 0%, rgba(255, 255, 255, .26), transparent 55%),
        radial-gradient(90% 60% at 0% 100%, rgba(0, 0, 0, .22), transparent 60%),
        linear-gradient(155deg, var(--medoc-cover-a), var(--medoc-cover-b));
    color: #fff;
}
.medoc-cover__type {
    font-size: 9px;
    font-size: max(7px, 6.2cqi);
    font-weight: 750;
    letter-spacing: .14em;
    text-transform: uppercase;
    opacity: .78;
}
.medoc-cover__title {
    display: -webkit-box;
    margin-top: 16%;
    overflow: hidden;
    font-family: var(--medoc-serif);
    font-size: 16px;
    font-size: max(10px, 11.5cqi);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -.01em;
    overflow-wrap: anywhere;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    text-shadow: 0 1px 12px rgba(0, 0, 0, .15);
}
.medoc-cover__author {
    margin-top: auto;
    overflow: hidden;
    font-size: 11px;
    font-size: max(7.5px, 6.8cqi);
    font-weight: 600;
    opacity: .9;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.medoc-cover__mark { order: 3; width: 22%; height: 2px; margin-top: 8%; border-radius: 2px; background: rgba(255, 255, 255, .65); }
.medoc-cover__mark span { display: none; }
.medoc-cover__img {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    background: #fff;
    opacity: 0;
    transition: opacity .45s var(--medoc-ease);
}
.medoc-cover.has-image .medoc-cover__img { opacity: 1; }
.medoc-cover--xs { width: 28px; flex: none; border-radius: 3px 5px 5px 3px; box-shadow: 0 1px 1px rgba(11, 14, 20, .1), 0 4px 10px -6px rgba(11, 14, 20, .5); }
.medoc-cover--xs .medoc-cover__gen > * { display: none; }
.medoc-cover--sm { width: 56px; flex: none; border-radius: 4px 7px 7px 4px; }
.medoc-cover--sm .medoc-cover__type,
.medoc-cover--sm .medoc-cover__author,
.medoc-cover--sm .medoc-cover__mark { display: none; }
.medoc-cover--sm .medoc-cover__gen { padding: 12% 10% 10% 14%; }
.medoc-cover--sm .medoc-cover__title { margin-top: 0; font-size: 7px; line-height: 1.15; overflow-wrap: normal; word-break: normal; -webkit-line-clamp: 5; }

/* =============================================================================
   Markdown e citazioni
   ============================================================================= */

.medoc-md {
    color: var(--medoc-ink-2);
    font-size: 16px;
    line-height: 1.72;
    overflow-wrap: break-word;
}
.medoc-md > :first-child { margin-top: 0; }
.medoc-md > :last-child { margin-bottom: 0; }
.medoc-md p { margin: 0 0 1em; }
.medoc-md h1,
.medoc-md h2,
.medoc-md h3,
.medoc-md h4,
.medoc-md h5,
.medoc-md h6 {
    margin: 1.6em 0 .55em;
    color: var(--medoc-ink);
    font-weight: 740;
    line-height: 1.28;
    letter-spacing: -.016em;
}
.medoc-md h1 { font-size: 26px; }
.medoc-md h2 { font-size: 22px; }
.medoc-md h3 { font-size: 19px; }
.medoc-md h4 { font-size: 17px; }
.medoc-md h5,
.medoc-md h6 { font-size: 15.5px; }
.medoc-md strong { color: var(--medoc-ink); font-weight: 700; }
.medoc-md ul,
.medoc-md ol { margin: 0 0 1em; padding-left: 1.35em; }
.medoc-md li { margin: .32em 0; padding-left: .15em; }
.medoc-md li::marker { color: var(--medoc-faint); }
.medoc-md li > ul,
.medoc-md li > ol { margin: .3em 0 .2em; }
.medoc-md blockquote {
    margin: 1.2em 0;
    padding: .15em 0 .15em 1.05em;
    border-left: 3px solid rgba(242, 97, 12, .45);
    color: var(--medoc-muted);
}
.medoc-md blockquote p:last-child { margin-bottom: 0; }
.medoc-md code {
    padding: .12em .42em;
    border-radius: 6px;
    background: var(--medoc-surface-3);
    font-family: var(--medoc-mono);
    font-size: .86em;
}
.medoc-md pre {
    margin: 0 0 1.1em;
    overflow: auto;
    padding: 14px 16px;
    border: 1px solid var(--medoc-line);
    border-radius: 12px;
    background: var(--medoc-surface-2);
    font-size: 14px;
    line-height: 1.55;
}
.medoc-md pre code { padding: 0; background: none; font-size: inherit; }
.medoc-md a { color: var(--medoc-link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.medoc-md hr { height: 1px; margin: 2em 0; border: 0; background: var(--medoc-line); }
.medoc-md del { color: var(--medoc-faint); }
.medoc-md mark { padding: 0 2px; border-radius: 4px; background: rgba(242, 97, 12, .2); color: inherit; }
.medoc-md__table {
    margin: 0 0 1.2em;
    overflow-x: auto;
    border: 1px solid var(--medoc-line);
    border-radius: 12px;
}
.medoc-md table { width: 100%; border-collapse: collapse; font-size: 14.5px; line-height: 1.5; }
.medoc-md th,
.medoc-md td { padding: 9px 12px; border-bottom: 1px solid var(--medoc-line); text-align: left; vertical-align: top; }
.medoc-md th { background: var(--medoc-surface-2); color: var(--medoc-ink); font-weight: 680; white-space: nowrap; }
.medoc-md tbody tr:last-child td { border-bottom: 0; }
.medoc-md__fnref { padding: 0 1px; color: var(--medoc-link); font-size: .72em; font-weight: 700; }
.medoc-md__footnotes {
    margin: 1.6em 0 0;
    padding: .9em 0 0 1.35em;
    border-top: 1px solid var(--medoc-line);
    color: var(--medoc-muted);
    font-size: 13.5px;
}

.medoc-cite {
    display: inline-flex;
    align-items: center;
    height: 1.5em;
    margin: 0 .1em;
    padding: 0 .52em;
    border: 1px solid rgba(109, 94, 252, .3);
    border-radius: 999px;
    background: rgba(109, 94, 252, .08);
    color: var(--medoc-violet-ink);
    font: inherit;
    font-size: .76em;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    vertical-align: .1em;
    font-variant-numeric: tabular-nums;
    cursor: pointer;
    transition: background .16s var(--medoc-ease), color .16s var(--medoc-ease), border-color .16s var(--medoc-ease), transform .16s var(--medoc-ease);
}
.medoc-cite:hover { border-color: var(--medoc-violet); background: var(--medoc-violet); color: #fff; transform: translateY(-1px); }
@media (prefers-color-scheme: dark) {
    .medoc-cite { border-color: rgba(174, 165, 255, .32); background: rgba(139, 125, 255, .14); }
}

/* =============================================================================
   Pannello della fonte
   ============================================================================= */

/* --- Prova privata: la pagina che vede chi ha un account ma non è ancora dentro (S7) --- */
.medoc-beta { max-width: 680px; margin: clamp(30px, 8vw, 90px) auto; text-align: left; }
.medoc-beta__title { margin: 10px 0 14px; font-size: clamp(30px, 5vw, 46px); font-weight: 820; line-height: 1.06; letter-spacing: -.04em; }
.medoc-beta__lead { margin: 0 0 20px; color: var(--medoc-ink-2); font-size: 17px; line-height: 1.6; }
.medoc-beta__list { display: grid; gap: 10px; margin: 0 0 26px; padding: 0; list-style: none; color: var(--medoc-ink-2); font-size: 15.5px; line-height: 1.5; }
.medoc-beta__list li { position: relative; padding-left: 26px; }
.medoc-beta__list li::before {
    content: "";
    position: absolute;
    left: 6px;
    top: 9px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--medoc-accent);
}
.medoc-beta__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* --- «Avvisami quando arriva Starter» (difetto P1-3) --- */
.medoc-interest-modal .medoc-field { margin-bottom: 12px; }
.medoc-interest__consent { display: flex; align-items: flex-start; gap: 9px; margin: 4px 0 2px; color: var(--medoc-ink-2); font-size: 13.5px; line-height: 1.45; }
.medoc-interest__consent input { margin-top: 3px; flex: none; width: 18px; height: 18px; accent-color: var(--medoc-accent); }
.medoc-interest__status { margin: 10px 0 0; min-height: 1px; color: var(--medoc-muted); font-size: 13.5px; }
.medoc-interest__status.is-error { color: var(--medoc-problem); }
.medoc-interest__status a { color: inherit; }
.medoc-meter__help { margin: 6px 0 0; color: var(--medoc-ink-2); font-size: 13px; line-height: 1.45; }
.medoc-meter__action { margin-top: 10px; }
.medoc-plan__soon { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.medoc-plan__soon .medoc-btn { max-width: 100%; white-space: normal; height: auto; min-height: 34px; padding-top: 6px; padding-bottom: 6px; text-align: left; }
.medoc-account__soonnote {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0 0 16px;
    padding: 12px 14px;
    border: 1px solid var(--medoc-line);
    border-radius: 14px;
    background: var(--medoc-surface-2);
    color: var(--medoc-ink-2);
    font-size: 13.5px;
    line-height: 1.5;
}
.medoc-account__soonnote .medoc-icon { margin-top: 2px; flex: none; color: var(--medoc-faint); }

.medoc-source { display: flex; flex-direction: column; gap: 14px; }
.medoc-source__quote {
    position: relative;
    margin: 0;
    padding: 14px 16px 14px 44px;
    border: 1px solid rgba(109, 94, 252, .18);
    border-radius: 14px;
    background: var(--medoc-violet-soft);
    color: var(--medoc-ink);
    font-size: 15px;
    line-height: 1.6;
}
.medoc-source__quote p { margin: 0; }
.medoc-source__quote-icon { position: absolute; top: 16px; left: 15px; color: var(--medoc-violet-ink); }

/* «Questa pagina è la fonte di»: la frase del testo generato che rimanda a questa pagina.
   Non è una citazione letterale e non ha lo stile della citazione. */
.medoc-source__context { display: grid; gap: 4px; }
.medoc-source__contexthead {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: var(--medoc-muted);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.medoc-source__contexttext {
    margin: 0;
    padding: 10px 12px;
    border-left: 3px solid var(--medoc-line-strong);
    border-radius: 0 10px 10px 0;
    background: var(--medoc-surface-2);
    color: var(--medoc-ink-2);
    font-size: 14px;
    line-height: 1.5;
}

/* «Dove si trova nella pagina»: il testo con la frase evidenziata (revisione UX P2-7). */
.medoc-source__intext { display: grid; gap: 6px; }
.medoc-source__intext-head {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: var(--medoc-muted);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.medoc-source__intext-text {
    max-height: 168px;
    padding: 10px 12px;
    border: 1px solid var(--medoc-line);
    border-radius: 12px;
    background: var(--medoc-surface-2);
    color: var(--medoc-ink-2);
    font-size: 13.5px;
    line-height: 1.55;
    overflow: auto;
    scrollbar-width: thin;
}
.medoc-source__intext-text p { margin: 0 0 8px; }
.medoc-source__intext-text p:last-child { margin-bottom: 0; }
.medoc-source__intext-text .medoc-mark { color: var(--medoc-ink); font-weight: 650; }

.medoc-source__pager { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.medoc-source__pageno { color: var(--medoc-muted); font-size: 13.5px; font-weight: 680; font-variant-numeric: tabular-nums; }
.medoc-source__figure {
    position: relative;
    display: grid;
    min-height: 360px;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--medoc-line);
    border-radius: 12px;
    background: var(--medoc-surface-2);
}
.medoc-source__img { display: block; width: 100%; height: auto; opacity: 0; transition: opacity .3s var(--medoc-ease); }
.medoc-source__figure.is-loaded { min-height: 0; }
.medoc-source__figure.is-loaded .medoc-source__img { opacity: 1; }
.medoc-source__loading {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, var(--medoc-surface-3) 25%, var(--medoc-surface-2) 50%, var(--medoc-surface-3) 75%);
    background-size: 200% 100%;
    animation: medoc-shimmer 1.4s linear infinite;
}
.medoc-source__figure.is-loaded .medoc-source__loading,
.medoc-source__figure.is-error .medoc-source__loading { display: none; }
.medoc-source__actions { display: flex; flex-direction: column; gap: 8px; }

/* =============================================================================
   Animazioni
   ============================================================================= */

@property --medoc-angle {
    syntax: "<angle>";
    inherits: false;
    initial-value: 0deg;
}
@keyframes medoc-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes medoc-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes medoc-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@keyframes medoc-sweep { 0% { transform: translateX(-100%); } 60%, 100% { transform: translateX(100%); } }
@keyframes medoc-indet { from { transform: translateX(-110%); } to { transform: translateX(280%); } }
@keyframes medoc-rotate { to { transform: rotate(360deg); } }
@keyframes medoc-spin { to { --medoc-angle: 360deg; } }
@keyframes medoc-pulse {
    0%, 100% { box-shadow: 0 0 0 0 currentColor; opacity: 1; }
    50% { box-shadow: 0 0 0 4px transparent; opacity: .55; }
}
@keyframes medoc-ring {
    0% { box-shadow: 0 0 0 0 rgba(242, 97, 12, .45); }
    100% { box-shadow: 0 0 0 10px rgba(242, 97, 12, 0); }
}
@keyframes medoc-scan { 0% { transform: translateY(-110%); } 100% { transform: translateY(420%); } }
@keyframes medoc-float { 0% { transform: translate(0, 0) scale(1); } 100% { transform: translate(8%, 10%) scale(1.15); } }
@keyframes medoc-pop {
    0% { opacity: 0; transform: translateY(18px) rotate(-8deg) scale(.86); }
    100% { opacity: 1; transform: rotate(-4deg); }
}

/* =============================================================================
   Home
   ============================================================================= */

.medoc-home { padding-top: clamp(30px, 6vw, 76px); }
.medoc-hero { max-width: 860px; margin: 0 auto clamp(26px, 4vw, 40px); text-align: center; animation: medoc-rise .6s var(--medoc-ease) both; }
.medoc-hero .medoc-eyebrow {
    padding: 6px 12px 6px 10px;
    border: 1px solid rgba(242, 97, 12, .22);
    border-radius: 999px;
    background: var(--medoc-glass-strong);
    box-shadow: var(--medoc-shadow-xs);
    letter-spacing: .06em;
}
.medoc-hero__title {
    margin: 18px 0 16px;
    font-size: clamp(36px, 6.4vw, 66px);
    font-weight: 820;
    line-height: 1.02;
    letter-spacing: -.042em;
    text-wrap: balance;
}
.medoc-hero__title em {
    font-style: normal;
    background: var(--medoc-grad-ai);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.medoc-hero__lead {
    max-width: 640px;
    margin: 0 auto;
    color: var(--medoc-muted);
    font-size: clamp(16.5px, 2vw, 20px);
    line-height: 1.55;
    text-wrap: pretty;
}

.medoc-home__upload { max-width: 780px; margin: 0 auto; animation: medoc-rise .7s .08s var(--medoc-ease) both; }

.medoc-dropzone {
    position: relative;
    padding: clamp(30px, 5vw, 50px) 24px clamp(26px, 4vw, 38px);
    border: 1px solid var(--medoc-line);
    border-radius: 28px;
    background:
        radial-gradient(90% 70% at 50% 0%, rgba(242, 97, 12, .06), transparent 60%),
        radial-gradient(70% 60% at 100% 100%, rgba(109, 94, 252, .06), transparent 60%),
        var(--medoc-surface);
    box-shadow: var(--medoc-shadow-lg);
    text-align: center;
    cursor: pointer;
    isolation: isolate;
    transition: transform .3s var(--medoc-ease), box-shadow .3s var(--medoc-ease), border-color .3s var(--medoc-ease);
}
.medoc-dropzone::after {
    content: "";
    position: absolute;
    inset: 12px;
    border: 1.5px dashed var(--medoc-line-strong);
    border-radius: 19px;
    pointer-events: none;
    transition: border-color .3s var(--medoc-ease), inset .3s var(--medoc-ease);
}
.medoc-dropzone:hover::after { border-color: rgba(242, 97, 12, .42); }
.medoc-dropzone__glow {
    position: absolute;
    inset: -1px;
    z-index: -1;
    padding: 2px;
    border-radius: inherit;
    background: conic-gradient(from var(--medoc-angle), #f2610c, #e5476f, #6d5efc, #12b5c9, #f2610c);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
    opacity: 0;
    transition: opacity .35s var(--medoc-ease);
    animation: medoc-spin 5s linear infinite;
    pointer-events: none;
}
.medoc-dropzone:hover .medoc-dropzone__glow { opacity: .55; }
.medoc-dropzone.is-over {
    border-color: transparent;
    transform: scale(1.012);
    box-shadow: 0 0 0 8px rgba(242, 97, 12, .1), 0 40px 90px -30px rgba(242, 97, 12, .55), 0 30px 70px -30px rgba(109, 94, 252, .5);
}
.medoc-dropzone.is-over::after { border-color: rgba(242, 97, 12, .7); inset: 16px; }
.medoc-dropzone.is-over .medoc-dropzone__glow { opacity: 1; }

.medoc-dropzone__art { position: relative; width: 96px; height: 96px; margin: 0 auto 18px; pointer-events: none; }
.medoc-dropzone__sheet {
    position: absolute;
    top: 8px;
    left: 20px;
    width: 58px;
    height: 76px;
    border: 1px solid var(--medoc-line-strong);
    border-radius: 9px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
    transition: transform .45s var(--medoc-ease);
}
.medoc-dropzone__sheet::before,
.medoc-dropzone__sheet::after {
    content: "";
    position: absolute;
    left: 10px;
    right: 14px;
    height: 3px;
    border-radius: 2px;
    background: var(--medoc-surface-3);
}
.medoc-dropzone__sheet::before { top: 16px; }
.medoc-dropzone__sheet::after { top: 25px; right: 22px; }
.medoc-dropzone__sheet--back { transform: rotate(-14deg) translate(-18px, 4px); background: var(--medoc-surface-2); }
.medoc-dropzone__sheet--mid { transform: rotate(11deg) translate(18px, 2px); }
.medoc-dropzone__sheet--front {
    display: grid;
    place-items: center;
    border: 0;
    background: var(--medoc-grad-ai);
    color: #fff;
    box-shadow: 0 16px 30px -14px rgba(109, 94, 252, .8), 0 8px 20px -12px rgba(242, 97, 12, .7);
}
.medoc-dropzone__sheet--front::before,
.medoc-dropzone__sheet--front::after { display: none; }
.medoc-dropzone:hover .medoc-dropzone__sheet--back,
.medoc-dropzone.is-over .medoc-dropzone__sheet--back { transform: rotate(-20deg) translate(-28px, 6px); }
.medoc-dropzone:hover .medoc-dropzone__sheet--mid,
.medoc-dropzone.is-over .medoc-dropzone__sheet--mid { transform: rotate(17deg) translate(28px, 4px); }
.medoc-dropzone:hover .medoc-dropzone__sheet--front,
.medoc-dropzone.is-over .medoc-dropzone__sheet--front { transform: translateY(-6px); }

.medoc-dropzone__title { margin: 0; font-size: clamp(21px, 2.6vw, 26px); font-weight: 780; letter-spacing: -.025em; }
.medoc-dropzone__or { margin: 6px 0 14px; color: var(--medoc-faint); font-size: 14px; }
.medoc-dropzone__limits { margin: 16px 0 0; color: var(--medoc-muted); font-size: 13.5px; }
.medoc-dropzone__quota { margin: 6px 0 0; color: var(--medoc-muted); font-size: 12.5px; }

.medoc-dropoverlay {
    position: fixed;
    inset: 0;
    z-index: 950;
    display: grid;
    place-items: center;
    background: rgba(246, 247, 251, .72);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .2s var(--medoc-ease), visibility .2s;
}
.medoc-dropoverlay::before {
    content: "";
    position: absolute;
    inset: 14px;
    border: 2px dashed rgba(242, 97, 12, .6);
    border-radius: 28px;
}
.medoc-dropoverlay.is-on { opacity: 1; visibility: visible; }
.medoc-dropoverlay__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 28px 36px;
    border-radius: 24px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-lg);
    color: var(--medoc-ink);
    text-align: center;
}
.medoc-dropoverlay__card .medoc-icon { color: var(--medoc-link); }
.medoc-dropoverlay__card strong { font-size: 19px; }
.medoc-dropoverlay__card span { color: var(--medoc-muted); font-size: 14px; }
@media (prefers-color-scheme: dark) { .medoc-dropoverlay { background: rgba(7, 9, 15, .72); } }

.medoc-home__rights {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 8px;
    max-width: 580px;
    margin: 18px auto 0;
    color: var(--medoc-muted);
    font-size: 13.5px;
    line-height: 1.5;
}
.medoc-home__rights .medoc-icon { margin-top: 2px; color: var(--medoc-faint); }

.medoc-sample {
    display: flex;
    align-items: center;
    gap: 14px;
    max-width: 470px;
    margin: 18px auto 0;
    padding: 12px 16px 12px 12px;
    border: 1px solid var(--medoc-line);
    border-radius: 18px;
    background: var(--medoc-glass-strong);
    box-shadow: var(--medoc-shadow-sm);
    color: var(--medoc-ink);
    text-decoration: none;
    transition: transform .22s var(--medoc-ease), box-shadow .22s var(--medoc-ease), border-color .22s var(--medoc-ease);
}
.medoc-sample:hover { transform: translateY(-2px); border-color: rgba(109, 94, 252, .35); box-shadow: var(--medoc-shadow-md); }
.medoc-sample__icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: none;
    border-radius: 13px;
    background: var(--medoc-violet-soft);
    color: var(--medoc-violet-ink);
}
.medoc-sample__text { display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }
.medoc-sample__text strong { font-size: 15px; }
.medoc-sample__text span { color: var(--medoc-muted); font-size: 13px; }
.medoc-sample__arrow { margin-left: auto; color: var(--medoc-faint); transition: transform .22s var(--medoc-ease), color .22s var(--medoc-ease); }
.medoc-sample:hover .medoc-sample__arrow { color: var(--medoc-violet-ink); transform: translateX(3px); }

.medoc-promises {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    max-width: 1020px;
    margin: clamp(44px, 7vw, 80px) auto 0;
    padding: 0;
    list-style: none;
}
.medoc-promise {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px;
    border: 1px solid var(--medoc-line);
    border-radius: 20px;
    background: var(--medoc-glass-strong);
    box-shadow: var(--medoc-shadow-sm);
    animation: medoc-rise .6s calc(.18s + var(--medoc-i, 0) * .08s) var(--medoc-ease) both;
}
.medoc-promise__icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: var(--medoc-accent-soft);
    color: var(--medoc-link);
}
.medoc-promise:nth-child(2) .medoc-promise__icon { background: var(--medoc-violet-soft); color: var(--medoc-violet-ink); }
.medoc-promise:nth-child(3) .medoc-promise__icon { background: rgba(18, 181, 201, .12); color: #0b8a9a; }
@media (prefers-color-scheme: dark) { .medoc-promise:nth-child(3) .medoc-promise__icon { color: #4fd3e3; } }
.medoc-promise__body { display: flex; flex-direction: column; gap: 4px; }
.medoc-promise__title { font-size: 16px; font-weight: 720; letter-spacing: -.01em; }
.medoc-promise__text { color: var(--medoc-muted); font-size: 14px; line-height: 1.5; }

.medoc-home__recent { max-width: 1020px; margin: 56px auto 0; }

/* Chi torna: la libreria in alto, il riquadro di caricamento più discreto sotto (difetto P2-12). */
.medoc-home.is-returning { padding-top: clamp(18px, 3vw, 34px); }
.medoc-home.is-returning .medoc-home__recent { margin-top: 0; }
.medoc-home.is-returning .medoc-home__recenttitle { font-size: clamp(22px, 2.4vw, 28px); letter-spacing: -.02em; }
.medoc-home.is-returning .medoc-home__upload { margin-top: 30px; }
.medoc-home.is-returning .medoc-dropzone { padding: 22px 20px 24px; }
.medoc-home.is-returning .medoc-dropzone__art { transform: scale(.72); margin-bottom: -10px; }
.medoc-home.is-returning .medoc-dropzone__title { font-size: 20px; }
.medoc-recent__status { max-width: 100%; }
.medoc-recents { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.medoc-recent {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px;
    border: 1px solid var(--medoc-line);
    border-radius: 18px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
    color: var(--medoc-ink);
    text-decoration: none;
    transition: transform .22s var(--medoc-ease), box-shadow .22s var(--medoc-ease), border-color .22s var(--medoc-ease);
}
.medoc-recent:hover { transform: translateY(-2px); box-shadow: var(--medoc-shadow-md); border-color: var(--medoc-line-strong); }
.medoc-recent__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.medoc-recent__title {
    display: -webkit-box;
    overflow: hidden;
    font-size: 14.5px;
    font-weight: 700;
    line-height: 1.3;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.medoc-recent__meta { overflow: hidden; color: var(--medoc-muted); font-size: 12.5px; text-overflow: ellipsis; white-space: nowrap; }
.medoc-recent__cta { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; color: var(--medoc-link); font-size: 13px; font-weight: 680; }
.medoc-recent__status { align-self: flex-start; margin-top: 4px; }

@media (max-width: 760px) {
    .medoc-promises { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .medoc-promise { flex-direction: row; align-items: flex-start; padding: 16px; }
    .medoc-promise__icon { flex: none; }
}
@media (max-width: 480px) {
    .medoc-dropzone { border-radius: 24px; }
    .medoc-dropzone::after { inset: 9px; border-radius: 17px; }
    .medoc-dropzone .medoc-btn--lg { width: 100%; }
    .medoc-home__rights { text-align: left; }
}

/* =============================================================================
   Card di caricamento
   ============================================================================= */

.medoc-uploads { display: flex; flex-direction: column; gap: 10px; margin: 16px 0; }
.medoc-upload {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 14px 14px 14px 16px;
    border: 1px solid var(--medoc-line);
    border-radius: 18px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
    animation: medoc-rise .35s var(--medoc-ease) both;
}
.medoc-upload__icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    flex: none;
    border-radius: 13px;
    background: var(--medoc-accent-soft);
    color: var(--medoc-link);
}
.medoc-upload.is-done .medoc-upload__icon { background: var(--medoc-good-bg); color: var(--medoc-good); }
.medoc-upload.is-error .medoc-upload__icon { background: var(--medoc-problem-bg); color: var(--medoc-problem); }
.medoc-upload__main { flex: 1; min-width: 0; }
.medoc-upload__top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.medoc-upload__name { overflow: hidden; font-size: 15px; font-weight: 680; text-overflow: ellipsis; white-space: nowrap; }
.medoc-upload__state { flex: none; color: var(--medoc-muted); font-size: 12.5px; font-weight: 620; }
.medoc-upload.is-error .medoc-upload__state { color: var(--medoc-problem); }
.medoc-upload.is-done .medoc-upload__state { color: var(--medoc-good); }
.medoc-upload.is-done .medoc-progress__bar { background: var(--medoc-good); }
.medoc-upload.is-error .medoc-progress__bar { background: var(--medoc-problem); }
.medoc-upload__detail { margin-top: 7px; color: var(--medoc-muted); font-size: 13px; font-variant-numeric: tabular-nums; }
.medoc-upload.is-error .medoc-upload__detail { color: var(--medoc-ink-2); }
.medoc-upload__note { margin: 4px 0 0; color: var(--medoc-faint); font-size: 12.5px; line-height: 1.45; }
.medoc-upload__actions { display: flex; align-items: center; gap: 4px; flex: none; }
@media (max-width: 560px) {
    .medoc-upload { flex-wrap: wrap; }
    .medoc-upload__main { flex-basis: calc(100% - 56px); }
    .medoc-upload__actions { width: 100%; justify-content: flex-end; }
}

/* =============================================================================
   Libreria
   ============================================================================= */

.medoc-library__toolbar { align-items: flex-start; }
.medoc-library__toolbar .medoc-search { flex: 0 1 340px; }
.medoc-library__toolbar .medoc-chips { flex: 1 1 400px; }

.medoc-deeplink {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: -4px 0 18px;
    padding: 8px 14px;
    border: 1px dashed rgba(242, 97, 12, .45);
    border-radius: 999px;
    background: var(--medoc-accent-soft);
    color: var(--medoc-link);
    font: inherit;
    font-size: 14px;
    font-weight: 660;
    cursor: pointer;
    animation: medoc-rise .25s var(--medoc-ease) both;
}
.medoc-deeplink:hover { border-style: solid; }

.medoc-deep {
    margin: 0 0 26px;
    padding: 18px 20px;
    border: 1px solid var(--medoc-line);
    border-radius: 20px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-md);
    animation: medoc-rise .3s var(--medoc-ease) both;
}
.medoc-deep__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.medoc-deep__title { margin: 0; font-size: 16px; font-weight: 740; }
.medoc-deep__group + .medoc-deep__group { margin-top: 12px; padding-top: 14px; border-top: 1px solid var(--medoc-line); }
.medoc-deep__doc { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.medoc-deep__doctitle { min-width: 0; overflow: hidden; color: var(--medoc-ink); font-weight: 700; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.medoc-deep__doctitle:hover { text-decoration: underline; }
.medoc-deep__count { flex: none; color: var(--medoc-faint); font-size: 12.5px; }
.medoc-deep__list { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.medoc-hit {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 12px;
    padding: 9px 12px;
    border-radius: 12px;
    color: var(--medoc-ink-2);
    font-size: 14px;
    line-height: 1.5;
    text-decoration: none;
}
.medoc-hit:hover { background: var(--medoc-surface-2); }
.medoc-hit__page { color: var(--medoc-ink); font-size: 13px; font-weight: 680; white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 560px) { .medoc-hit { grid-template-columns: minmax(0, 1fr); gap: 2px; } }

.medoc-libgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(208px, 1fr));
    gap: 22px 18px;
}
.medoc-doccard {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--medoc-line);
    border-radius: 20px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
    transition: transform .28s var(--medoc-ease), box-shadow .28s var(--medoc-ease), border-color .28s var(--medoc-ease);
    animation: medoc-rise .45s calc(var(--medoc-i, 0) * 35ms) var(--medoc-ease) both;
}
.medoc-doccard:hover { transform: translateY(-3px); border-color: var(--medoc-line-strong); box-shadow: var(--medoc-shadow-lg); }
.medoc-doccard.is-selected { border-color: var(--medoc-accent); box-shadow: 0 0 0 3px rgba(242, 97, 12, .22), var(--medoc-shadow-md); }
.medoc-doccard__media {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 1 / .98;
    padding: 20px 20px 14px;
    border-bottom: 1px solid var(--medoc-line);
    border-radius: 19px 19px 0 0;
    background:
        radial-gradient(70% 45% at 50% 100%, rgba(11, 14, 20, .07), transparent 70%),
        linear-gradient(180deg, var(--medoc-surface-2), var(--medoc-surface-3));
}
@media (prefers-color-scheme: dark) {
    .medoc-doccard__media { background: radial-gradient(70% 45% at 50% 100%, rgba(0, 0, 0, .35), transparent 70%), linear-gradient(180deg, #131824, #171d2a); }
}
.medoc-doccard__coverlink { display: block; height: 100%; aspect-ratio: 3 / 4; }
.medoc-doccard__coverlink .medoc-cover {
    height: 100%;
    width: auto;
    transition: transform .4s var(--medoc-ease), box-shadow .4s var(--medoc-ease);
}
.medoc-doccard:hover .medoc-doccard__coverlink .medoc-cover {
    transform: translateY(-4px) rotate(-1.5deg);
    box-shadow: 0 2px 2px rgba(11, 14, 20, .08), 0 22px 34px -16px rgba(11, 14, 20, .55);
}
.medoc-doccard.is-processing .medoc-cover,
.medoc-doccard.is-queued .medoc-cover,
.medoc-doccard.is-uploaded .medoc-cover { filter: saturate(.75); }
.medoc-doccard.is-failed .medoc-cover { filter: grayscale(.7) opacity(.8); }
.medoc-doccard__statuswrap { display: flex; margin: 0 0 8px; }
.medoc-doccard__fav {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--medoc-line);
    border-radius: 50%;
    background: var(--medoc-glass-strong);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    color: var(--medoc-muted);
    cursor: pointer;
    opacity: 0;
    transition: opacity .2s var(--medoc-ease), color .2s var(--medoc-ease), transform .2s var(--medoc-ease);
}
.medoc-doccard:hover .medoc-doccard__fav,
.medoc-doccard__fav:focus-visible,
.medoc-doccard__fav.is-on { opacity: 1; }
.medoc-doccard__fav.is-on { color: var(--medoc-star); }
.medoc-doccard__fav:hover { transform: scale(1.08); color: var(--medoc-star); }
@media (hover: none) { .medoc-doccard__fav { opacity: 1; } }

.medoc-doccard__checkwrap { position: absolute; top: 12px; left: 12px; z-index: 3; display: block; cursor: pointer; }
.medoc-doccard__check { position: absolute; opacity: 0; width: 28px; height: 28px; margin: 0; cursor: pointer; }
.medoc-doccard__checkbox {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border: 2px solid var(--medoc-line-strong);
    border-radius: 9px;
    background: var(--medoc-surface);
    color: transparent;
    box-shadow: var(--medoc-shadow-sm);
    transition: background .15s var(--medoc-ease), border-color .15s var(--medoc-ease), color .15s var(--medoc-ease);
}
.medoc-doccard__check:checked + .medoc-doccard__checkbox { border-color: var(--medoc-accent); background: var(--medoc-accent); color: #fff; }
.medoc-doccard__check:focus-visible + .medoc-doccard__checkbox { box-shadow: var(--medoc-focus); }
.medoc-library.is-selecting .medoc-doccard { cursor: pointer; }

.medoc-doccard__body { display: flex; flex-direction: column; gap: 3px; padding: 14px 16px 4px; min-width: 0; }
.medoc-doccard__title {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    font-size: 15.5px;
    font-weight: 720;
    line-height: 1.3;
    letter-spacing: -.012em;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.medoc-doccard__title a { color: var(--medoc-ink); text-decoration: none; }
.medoc-doccard__title a::before { content: ""; position: absolute; inset: 0 0 56px; z-index: 1; border-radius: 20px 20px 0 0; }
.medoc-doccard__title a:hover { color: var(--medoc-link); }
.medoc-library.is-selecting .medoc-doccard__title a::before { display: none; }
.medoc-doccard__author,
.medoc-doccard__meta { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medoc-doccard__author { color: var(--medoc-ink-2); font-size: 13.5px; }
.medoc-doccard__meta { color: var(--medoc-faint); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.medoc-doccard__body .medoc-progress { margin-top: 10px; }
.medoc-doccard__progress { margin: 5px 0 0; overflow: hidden; color: var(--medoc-muted); font-size: 12.5px; text-overflow: ellipsis; white-space: nowrap; }
.medoc-doccard__error {
    display: flex;
    gap: 6px;
    margin: 8px 0 0;
    color: var(--medoc-problem);
    font-size: 12.5px;
    line-height: 1.4;
}
.medoc-doccard__error .medoc-icon { margin-top: 1px; }
.medoc-doccard__error span { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.medoc-doccard__actions {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 2px;
    margin-top: auto;
    padding: 10px 8px 12px 14px;
}
.medoc-doccard__open { margin-right: auto; }
.medoc-doccard__quick { display: flex; align-items: center; }
.medoc-doccard__quick .medoc-iconbtn { width: 32px; height: 32px; color: var(--medoc-faint); }
.medoc-doccard__quick .medoc-iconbtn:hover { color: var(--medoc-ink); }

@media (min-width: 900px) and (max-width: 1100px) { .medoc-doccard__quick .medoc-iconbtn:nth-child(3) { display: none; } }
@media (max-width: 640px) {
    .medoc-doccard__quick { display: none; }
    .medoc-doccard__open { flex: 1; margin-right: 4px; }
}
@media (max-width: 560px) {
    .medoc-libgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
    .medoc-doccard { border-radius: 18px; }
    .medoc-doccard__media { padding: 14px 14px 10px; border-radius: 17px 17px 0 0; }
    .medoc-doccard__body { padding: 11px 12px 2px; }
    .medoc-doccard__title { font-size: 14.5px; }
    .medoc-doccard__actions { padding: 8px 6px 10px 10px; }
    .medoc-doccard__open { padding: 0 10px; }
    .medoc-doccard__fav { top: auto; bottom: 8px; right: 8px; width: 34px; height: 34px; }
    .medoc-library__toolbar .medoc-search { flex: 1 1 100%; }
    .medoc-library__toolbar .medoc-chips {
        flex: 1 1 100%;
        flex-wrap: nowrap;
        margin: 0 calc(-1 * var(--medoc-gutter));
        padding: 2px var(--medoc-gutter) 6px;
        overflow-x: auto;
        scrollbar-width: none;
    }
    .medoc-library__toolbar .medoc-chips::-webkit-scrollbar { display: none; }
    .medoc-pagehead__actions { width: 100%; }
    .medoc-pagehead__actions .medoc-btn { flex: 1; }
}

/* Telefono: una scheda per riga. Con due colonne restavano 149px utili e si tagliavano a metà
   lo stato («In elaborazion…»), i metadati e — peggio — i messaggi d'errore, che sono proprio
   quelli che dicono cosa fare (revisione UX 17/09/2026, difetto P2-8). */
@media (max-width: 430px) {
    .medoc-libgrid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .medoc-doccard {
        display: grid;
        grid-template-columns: 108px minmax(0, 1fr);
        grid-template-areas: "media body" "media actions";
        align-items: start;
    }
    .medoc-doccard__media {
        grid-area: media;
        align-self: stretch;
        aspect-ratio: auto;
        min-height: 132px;
        padding: 14px 12px;
        border-right: 1px solid var(--medoc-line);
        border-bottom: 0;
        border-radius: 17px 0 0 17px;
    }
    .medoc-doccard__coverlink { height: auto; width: 100%; }
    .medoc-doccard__coverlink .medoc-cover { height: auto; width: 100%; }
    .medoc-doccard__body { grid-area: body; padding: 12px 14px 0; }
    .medoc-doccard__actions { grid-area: actions; padding: 8px 8px 10px 12px; }
    .medoc-doccard__fav { top: auto; right: auto; bottom: 8px; left: 8px; }
    .medoc-doccard__title { -webkit-line-clamp: 3; font-size: 15.5px; }
    /* Niente troncamenti: c'è la larghezza per scrivere le cose per intero. */
    .medoc-doccard__author,
    .medoc-doccard__meta,
    .medoc-doccard__progress { overflow: visible; text-overflow: clip; white-space: normal; }
    .medoc-doccard__error span { display: block; overflow: visible; -webkit-line-clamp: none; }
    .medoc-doccard .medoc-status { height: auto; min-height: 26px; padding: 3px 10px; }
    .medoc-doccard .medoc-status > span:last-child { overflow: visible; text-overflow: clip; white-space: normal; }
}


.medoc-selbar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: calc(16px + env(safe-area-inset-bottom));
    z-index: 70;
    width: min(900px, calc(100vw - 24px));
    margin: 0 auto;
    animation: medoc-rise .3s var(--medoc-ease) both;
}
html.medoc-has-selbar body { padding-bottom: 110px; }
.medoc-selbar__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    padding: 10px 10px 10px 20px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 20px;
    background: #10141d;
    color: #eef1f7;
    box-shadow: 0 24px 60px -20px rgba(11, 14, 20, .6);
}
.medoc-selbar__count { font-size: 14.5px; font-weight: 680; font-variant-numeric: tabular-nums; }
.medoc-selbar__actions { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.medoc-selbar .medoc-btn--secondary { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .14); color: #fff; box-shadow: none; }
.medoc-selbar .medoc-btn--secondary:hover { background: rgba(255, 255, 255, .14); }
.medoc-selbar .medoc-btn--ghost { color: rgba(238, 241, 247, .85); }
.medoc-selbar .medoc-btn--ghost:hover { background: rgba(255, 255, 255, .08); }
.medoc-selbar .medoc-btn[disabled] { opacity: .35; }
@media (prefers-color-scheme: dark) { .medoc-selbar__inner { background: #1b2130; border-color: rgba(255, 255, 255, .12); } }
@media (max-width: 720px) {
    .medoc-selbar__inner { padding: 10px 12px; }
    .medoc-selbar__count { width: 100%; }
    .medoc-selbar__actions { width: 100%; margin-left: 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    .medoc-selbar__actions .medoc-btn { flex: none; }
}

.medoc-checklist { display: grid; gap: 2px; max-height: 50vh; margin: 4px 0 12px; overflow: auto; }
.medoc-checklist__row {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 0 10px;
    border-radius: 11px;
    cursor: pointer;
}
.medoc-checklist__row:hover { background: var(--medoc-surface-2); }
.medoc-checklist__label { flex: 1; min-width: 0; font-size: 14.5px; font-weight: 620; color: var(--medoc-ink); }
.medoc-checklist__count { color: var(--medoc-faint); font-size: 12.5px; font-variant-numeric: tabular-nums; }

.medoc-swatches { display: flex; flex-wrap: wrap; gap: 10px; }
.medoc-swatch {
    width: 36px;
    height: 36px;
    padding: 0;
    border: 3px solid var(--medoc-surface);
    border-radius: 50%;
    box-shadow: 0 0 0 1px var(--medoc-line-strong);
    cursor: pointer;
    transition: box-shadow .15s var(--medoc-ease), transform .15s var(--medoc-ease);
}
.medoc-swatch:hover { transform: scale(1.06); }
.medoc-swatch[aria-checked="true"] { box-shadow: 0 0 0 2px var(--medoc-ink); }
.medoc-swatch--orange { background: #f2610c; }
.medoc-swatch--violet { background: #6d5efc; }
.medoc-swatch--cyan { background: #12b5c9; }
.medoc-swatch--green { background: #2f9e44; }
.medoc-swatch--rose { background: #e64980; }
.medoc-swatch--slate { background: #64748b; }

/* =============================================================================
   Documento: elaborazione in corso
   ============================================================================= */

.medoc-docview { padding-top: clamp(20px, 3vw, 36px); }

.medoc-processing {
    position: relative;
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: clamp(24px, 5vw, 60px);
    align-items: start;
    max-width: 1000px;
    margin: clamp(0px, 2vw, 24px) auto 0;
    padding: clamp(24px, 4.5vw, 52px);
    overflow: hidden;
    border: 1px solid var(--medoc-line);
    border-radius: 30px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-lg);
    isolation: isolate;
    animation: medoc-rise .5s var(--medoc-ease) both;
}
.medoc-processing::before {
    content: "";
    position: absolute;
    inset: -40% -20% auto 30%;
    z-index: -1;
    height: 90%;
    background: radial-gradient(closest-side, rgba(242, 97, 12, .1), transparent), radial-gradient(closest-side at 70% 60%, rgba(109, 94, 252, .1), transparent);
    pointer-events: none;
}
.medoc-processing__visual { position: relative; padding: 6px 10px 0; }
.medoc-processing__cover { box-shadow: 0 2px 2px rgba(11, 14, 20, .08), 0 34px 50px -26px rgba(11, 14, 20, .6); }
.medoc-processing__scan {
    position: absolute;
    inset: 6px 10px 0;
    overflow: hidden;
    border-radius: 6px 10px 10px 6px;
    pointer-events: none;
    z-index: 4;
}
.medoc-processing__scan::before {
    content: "";
    position: absolute;
    left: -10%;
    right: -10%;
    top: 0;
    height: 24%;
    background: linear-gradient(180deg, transparent, rgba(255, 255, 255, .5) 70%, rgba(255, 255, 255, .95) 96%, transparent);
    mix-blend-mode: soft-light;
    animation: medoc-scan 2.8s cubic-bezier(.45, 0, .55, 1) infinite;
}
.medoc-processing__scan::after {
    content: "";
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(180deg, rgba(255, 255, 255, 0) 0 9px, rgba(255, 255, 255, .06) 9px 10px);
}
.medoc-processing.is-failed .medoc-processing__scan { display: none; }
.medoc-processing.is-failed .medoc-processing__cover { filter: grayscale(.8); opacity: .75; }

.medoc-processing__kicker {
    margin: 0 0 8px;
    overflow: hidden;
    color: var(--medoc-faint);
    font-size: 13px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.medoc-processing__headline {
    margin: 0;
    font-size: clamp(27px, 3.8vw, 40px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -.035em;
    text-wrap: balance;
}
.medoc-processing__detail { margin: 8px 0 0; color: var(--medoc-muted); font-size: 16.5px; font-variant-numeric: tabular-nums; }
.medoc-processing__progress { margin: 26px 0 24px; }
.medoc-processing__nums { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.medoc-processing__pct {
    font-size: clamp(40px, 5.4vw, 58px);
    font-weight: 820;
    line-height: 1;
    letter-spacing: -.05em;
    font-variant-numeric: tabular-nums;
    background: var(--medoc-grad-ai);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
/* «241 / 410» sta su due cifre lunghe: si stringe un po' rispetto alla percentuale secca. */
.medoc-processing__pct.is-pages { font-size: clamp(30px, 4.2vw, 46px); }
.medoc-processing__heroval { display: flex; align-items: baseline; gap: 10px; min-width: 0; flex-wrap: wrap; }
.medoc-processing__unit { color: var(--medoc-muted); font-size: 14.5px; font-weight: 650; }
.medoc-processing__eta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px;
    margin: 12px 0 0;
    color: var(--medoc-ink-2);
    font-size: 14.5px;
    line-height: 1.45;
}
.medoc-processing__eta .medoc-icon { align-self: center; color: var(--medoc-faint); }
.medoc-processing__eta strong { font-weight: 720; }
.medoc-processing__mail { color: var(--medoc-muted); }
.medoc-processing.is-failed .medoc-processing__progress { display: none; }
.medoc-processing.is-failed .medoc-processing__fail { margin-top: 24px; }
.medoc-processing.is-failed .medoc-progress__bar { background: var(--medoc-faint); }
.medoc-processing.is-failed .medoc-progress__bar::after { display: none; }
.medoc-processing__stage { color: var(--medoc-muted); font-size: 14px; font-weight: 650; text-align: right; }

.medoc-timeline { display: grid; margin: 0; padding: 0; list-style: none; }
.medoc-timeline__item {
    position: relative;
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    padding: 7px 0;
    color: var(--medoc-faint);
    font-size: 15px;
}
.medoc-timeline__item + .medoc-timeline__item::before {
    content: "";
    position: absolute;
    top: -7px;
    left: 12px;
    width: 2px;
    height: 14px;
    border-radius: 2px;
    background: var(--medoc-line-strong);
}
.medoc-timeline__item.is-done + .medoc-timeline__item::before { background: var(--medoc-good); }
.medoc-timeline__mark {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: 2px solid var(--medoc-line-strong);
    border-radius: 50%;
    background: var(--medoc-surface);
    color: #fff;
}
.medoc-timeline__item.is-done { color: var(--medoc-ink-2); }
.medoc-timeline__item.is-done .medoc-timeline__mark { border-color: var(--medoc-good); background: var(--medoc-good); }
@media (prefers-color-scheme: dark) { .medoc-timeline__item.is-done .medoc-timeline__mark { color: #07210f; } }
.medoc-timeline__item.is-active { color: var(--medoc-ink); font-weight: 680; }
.medoc-timeline__item.is-active .medoc-timeline__mark { border-color: var(--medoc-accent); animation: medoc-ring 1.6s var(--medoc-ease) infinite; }
.medoc-timeline__item.is-active .medoc-timeline__mark::after {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--medoc-accent);
}
.medoc-processing.is-failed .medoc-timeline__item.is-active .medoc-timeline__mark { border-color: var(--medoc-problem); animation: none; }
.medoc-processing.is-failed .medoc-timeline__item.is-active .medoc-timeline__mark::after { background: var(--medoc-problem); }

.medoc-processing__note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 22px 0 0;
    padding: 12px 14px;
    border-radius: 14px;
    background: var(--medoc-surface-2);
    color: var(--medoc-muted);
    font-size: 14px;
    line-height: 1.5;
}
.medoc-processing__note .medoc-icon { margin-top: 2px; color: var(--medoc-faint); }
.medoc-processing__notify { margin-top: 10px; }
.medoc-processing__notified { display: inline-flex; align-items: center; gap: 8px; margin: 4px 0 0; color: var(--medoc-good); font-size: 13.5px; font-weight: 620; }
.medoc-processing__fail { margin: 0 0 22px; }
.medoc-processing__wait { margin: 0 0 18px; }
.medoc-processing__wait p { margin: 0; }
.medoc-processing__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

@media (max-width: 760px) {
    .medoc-processing { grid-template-columns: minmax(0, 1fr); gap: 18px; border-radius: 24px; }
    .medoc-processing__visual { width: 128px; padding: 4px 6px 0; }
    .medoc-processing__scan { inset: 4px 6px 0; }
    .medoc-processing__actions .medoc-btn {
        flex: 1 1 100%;
        height: auto;
        min-height: var(--medoc-btn-h);
        padding-top: 10px;
        padding-bottom: 10px;
        line-height: 1.25;
        white-space: normal;
        text-align: center;
    }
}

/* =============================================================================
   Documento: momento wow
   ============================================================================= */

.medoc-wow {
    position: relative;
    max-width: 1100px;
    margin: clamp(0px, 1.5vw, 16px) auto 0;
    padding: clamp(34px, 6vw, 72px) clamp(18px, 5vw, 56px) clamp(28px, 4vw, 44px);
    overflow: hidden;
    border: 1px solid var(--medoc-line);
    border-radius: 34px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-lg);
    text-align: center;
    isolation: isolate;
}
.medoc-wow__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.medoc-wow__bg span {
    position: absolute;
    width: 58%;
    aspect-ratio: 1;
    border-radius: 50%;
    filter: blur(90px);
    opacity: .2;
    animation: medoc-float 12s ease-in-out infinite alternate;
}
.medoc-wow__bg span:nth-child(1) { top: -38%; left: -14%; background: #f2610c; }
.medoc-wow__bg span:nth-child(2) { top: -30%; right: -18%; background: #6d5efc; animation-delay: -4s; animation-duration: 15s; }
.medoc-wow__bg span:nth-child(3) { bottom: -50%; left: 26%; background: #12b5c9; opacity: .2; animation-delay: -8s; animation-duration: 18s; }
@media (prefers-color-scheme: dark) { .medoc-wow__bg span { opacity: .18; } }
.medoc-wow__inner { position: relative; }
.medoc-wow__cover { width: 128px; margin: 0 auto 26px; animation: medoc-pop .8s var(--medoc-ease) both; transform: rotate(-4deg); }
.medoc-wow__cover .medoc-cover { box-shadow: 0 2px 2px rgba(11, 14, 20, .1), 0 36px 50px -24px rgba(11, 14, 20, .6); }
.medoc-wow .medoc-eyebrow { animation: medoc-rise .5s .15s var(--medoc-ease) both; }
.medoc-wow__title {
    margin: 12px 0 10px;
    font-size: clamp(36px, 6vw, 64px);
    font-weight: 830;
    line-height: 1.02;
    letter-spacing: -.045em;
    text-wrap: balance;
    animation: medoc-rise .6s .22s var(--medoc-ease) both;
}
.medoc-wow__doc { margin: 0 auto 34px; max-width: 640px; color: var(--medoc-muted); font-size: 17px; animation: medoc-rise .6s .3s var(--medoc-ease) both; }
.medoc-wow__doc strong { color: var(--medoc-ink); font-weight: 680; }
.medoc-wow__stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    max-width: 900px;
    margin: 0 auto 34px;
    padding: 0;
    list-style: none;
}
.medoc-wow__stat {
    padding: 18px 10px 16px;
    border: 1px solid var(--medoc-line);
    border-radius: 22px;
    background: var(--medoc-glass-strong);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    box-shadow: var(--medoc-shadow-sm);
    animation: medoc-rise .6s calc(.3s + var(--medoc-i, 0) * .09s) var(--medoc-ease) both;
}
.medoc-wow__staticon { display: inline-grid; place-items: center; margin-bottom: 6px; color: var(--medoc-link); }
.medoc-wow__num {
    display: block;
    font-size: clamp(32px, 4.6vw, 48px);
    font-weight: 820;
    line-height: 1.05;
    letter-spacing: -.045em;
    font-variant-numeric: tabular-nums;
}
.medoc-wow__label { display: block; margin-top: 4px; color: var(--medoc-muted); font-size: 13.5px; font-weight: 620; }
.medoc-wow__actions {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    max-width: 1000px;
    margin: 0 auto 18px;
}
.medoc-wow__action {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 20px 12px 18px;
    border: 1px solid var(--medoc-line);
    border-radius: 22px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
    color: var(--medoc-ink);
    text-decoration: none;
    transition: transform .25s var(--medoc-ease), box-shadow .25s var(--medoc-ease), border-color .25s var(--medoc-ease);
    animation: medoc-rise .6s calc(.55s + var(--medoc-i, 0) * .07s) var(--medoc-ease) both;
}
.medoc-wow__action:hover { transform: translateY(-4px); border-color: rgba(242, 97, 12, .35); box-shadow: var(--medoc-shadow-lg); }
.medoc-wow__actionicon {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    margin-bottom: 6px;
    border-radius: 16px;
    background: var(--medoc-accent-soft);
    color: var(--medoc-link);
    transition: transform .25s var(--medoc-ease);
}
.medoc-wow__action:hover .medoc-wow__actionicon { transform: scale(1.06); }
.medoc-wow__action.is-ai .medoc-wow__actionicon { background: var(--medoc-grad-ai); color: #fff; box-shadow: 0 12px 26px -12px rgba(109, 94, 252, .8); }
.medoc-wow__action.is-ai { border-color: rgba(109, 94, 252, .28); }
.medoc-wow__actionlabel { font-size: 16.5px; font-weight: 740; letter-spacing: -.01em; }
.medoc-wow__actiontext { color: var(--medoc-muted); font-size: 12.5px; line-height: 1.35; }
.medoc-wow__skip { animation: medoc-fade .6s .9s both; }

/* Schermi bassi (1440x900 e 1280x800 sono i due più diffusi): il premio deve stare tutto
   dentro la finestra, pulsanti compresi. Prima le cinque schede cominciavano a y=789 su 900
   e le etichette a y=871: la schermata finiva senza niente da cliccare in vista
   (revisione UX 17/09/2026, difetto P2-15). */
@media (min-width: 900px) and (max-height: 940px) {
    .medoc-wow { margin-top: 0; padding: 26px clamp(18px, 4vw, 48px) 22px; }
    .medoc-wow__cover { width: 92px; margin-bottom: 12px; }
    .medoc-wow__title { margin: 6px 0 4px; font-size: clamp(30px, 3.4vw, 40px); }
    .medoc-wow__doc { margin-bottom: 16px; font-size: 15.5px; }
    .medoc-wow__stats { margin-bottom: 16px; gap: 10px; }
    .medoc-wow__stat { padding: 11px 8px 10px; border-radius: 18px; }
    .medoc-wow__staticon { margin-bottom: 2px; }
    .medoc-wow__num { font-size: clamp(26px, 2.6vw, 34px); }
    .medoc-wow__label { margin-top: 2px; font-size: 12.5px; }
    .medoc-wow__actions { margin-bottom: 10px; }
    .medoc-wow__action { padding: 13px 10px 12px; border-radius: 18px; }
    .medoc-wow__actionicon { width: 40px; height: 40px; margin-bottom: 2px; border-radius: 13px; }
    .medoc-wow__actionlabel { font-size: 15.5px; }
    .medoc-wow__actiontext { font-size: 12px; }
}

@media (max-width: 860px) {
    .medoc-wow__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .medoc-wow__actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .medoc-wow__action:first-child { grid-column: 1 / -1; flex-direction: row; justify-content: flex-start; text-align: left; gap: 14px; padding: 16px; }
    .medoc-wow__action:first-child .medoc-wow__actionicon { margin: 0; }
    .medoc-wow__action:first-child .medoc-wow__actionlabel { margin-right: auto; }
}
@media (max-width: 480px) {
    .medoc-wow { border-radius: 26px; }
    .medoc-wow__cover { width: 100px; margin-bottom: 18px; }
    .medoc-wow__stat { padding: 14px 8px 12px; border-radius: 18px; }
    .medoc-wow__label { font-size: 12.5px; }
    .medoc-wow__action { padding: 16px 10px 14px; border-radius: 18px; }
    .medoc-wow__actiontext { display: none; }
    .medoc-wow__action:first-child .medoc-wow__actiontext { display: block; }
}

/* =============================================================================
   Documento: panoramica
   ============================================================================= */

.medoc-dochero {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    gap: clamp(22px, 4vw, 48px);
    align-items: start;
    margin-bottom: 38px;
    animation: medoc-rise .5s var(--medoc-ease) both;
}
.medoc-dochero--skeleton { animation: none; }
.medoc-dochero__cover { position: relative; }
.medoc-dochero__cover::before {
    content: "";
    position: absolute;
    inset: 12% -8% -6%;
    z-index: -1;
    border-radius: 50%;
    background: radial-gradient(closest-side, rgba(242, 97, 12, .18), transparent), radial-gradient(closest-side at 70% 70%, rgba(109, 94, 252, .16), transparent);
    filter: blur(20px);
}
.medoc-dochero__cover .medoc-cover {
    border-radius: 6px 12px 12px 6px;
    box-shadow: 0 2px 2px rgba(11, 14, 20, .08), 0 40px 60px -30px rgba(11, 14, 20, .55);
}
.medoc-dochero__info { min-width: 0; padding-top: 4px; }
.medoc-dochero__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.medoc-dochero__titlerow { display: flex; align-items: flex-start; gap: 6px; }
.medoc-dochero__title {
    margin: 0;
    font-size: clamp(30px, 4.6vw, 50px);
    font-weight: 820;
    line-height: 1.04;
    letter-spacing: -.04em;
    text-wrap: balance;
    overflow-wrap: anywhere;
}
.medoc-dochero__edit { margin-top: 4px; color: var(--medoc-faint); }
.medoc-dochero__titleinput { height: 56px; font-size: 24px; font-weight: 720; }
.medoc-dochero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
    margin: 12px 0 0;
    color: var(--medoc-muted);
    font-size: 16px;
}
.medoc-dochero__author { color: var(--medoc-ink-2); font-weight: 650; }
.medoc-dochero__sep { color: var(--medoc-faint); }
.medoc-dochero__desc { max-width: 66ch; margin: 14px 0 0; color: var(--medoc-ink-2); font-size: 16.5px; line-height: 1.6; text-wrap: pretty; }
.medoc-dochero__stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 20px;
    margin: 20px 0 0;
    padding: 0;
    list-style: none;
}
.medoc-dochero__stats li { display: inline-flex; align-items: center; gap: 6px; color: var(--medoc-muted); font-size: 14px; }
.medoc-dochero__stats li > .medoc-icon { color: var(--medoc-faint); }
.medoc-dochero__stats strong { color: var(--medoc-ink); font-weight: 720; font-variant-numeric: tabular-nums; }
.medoc-dochero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 26px; }
.medoc-dochero__iconactions { display: inline-flex; gap: 8px; }
.medoc-favbtn.is-on { color: var(--medoc-star); }

.medoc-overview__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 370px;
    gap: 28px;
    align-items: start;
}
.medoc-overview__main,
.medoc-overview__aside { min-width: 0; }
.medoc-overview__aside { display: flex; flex-direction: column; gap: 16px; }

.medoc-questions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.medoc-question {
    display: flex;
    align-items: center;
    gap: 11px;
    height: 100%;
    padding: 12px 14px 12px 12px;
    border: 1px solid var(--medoc-line);
    border-radius: 16px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-xs);
    color: var(--medoc-ink);
    font-size: 14.5px;
    line-height: 1.4;
    text-decoration: none;
    transition: transform .22s var(--medoc-ease), box-shadow .22s var(--medoc-ease), border-color .22s var(--medoc-ease);
}
.medoc-question:hover { transform: translateY(-2px); border-color: rgba(109, 94, 252, .4); box-shadow: 0 14px 30px -18px rgba(109, 94, 252, .6); }
.medoc-question__icon {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    flex: none;
    border-radius: 10px;
    background: var(--medoc-violet-soft);
    color: var(--medoc-violet-ink);
}
.medoc-question__text { flex: 1; min-width: 0; }
.medoc-question__arrow { color: var(--medoc-faint); transition: transform .22s var(--medoc-ease), color .22s var(--medoc-ease); }
.medoc-question:hover .medoc-question__arrow { color: var(--medoc-violet-ink); transform: translateX(3px); }

.medoc-quick {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.medoc-quick__item {
    --medoc-tone: #e8590c;
    --medoc-tone-bg: rgba(242, 97, 12, .1);
    display: flex;
    align-items: center;
    gap: 12px;
    height: 100%;
    padding: 13px 14px;
    border: 1px solid var(--medoc-line);
    border-radius: 16px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-xs);
    color: var(--medoc-ink);
    text-decoration: none;
    transition: transform .22s var(--medoc-ease), box-shadow .22s var(--medoc-ease), border-color .22s var(--medoc-ease);
}
.medoc-quick__item:hover { transform: translateY(-2px); border-color: var(--medoc-line-strong); box-shadow: var(--medoc-shadow-md); }
.medoc-quick__icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    flex: none;
    border-radius: 12px;
    background: var(--medoc-tone-bg);
    color: var(--medoc-tone);
    transition: transform .22s var(--medoc-ease);
}
.medoc-quick__item:hover .medoc-quick__icon { transform: scale(1.07) rotate(-3deg); }
.medoc-quick__text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.medoc-quick__text strong { font-size: 14.5px; font-weight: 700; }
.medoc-quick__text span { color: var(--medoc-muted); font-size: 12.5px; line-height: 1.35; }
.medoc-tone--orange { --medoc-tone: #d9480f; --medoc-tone-bg: rgba(242, 97, 12, .1); }
.medoc-tone--violet { --medoc-tone: #5f4ff0; --medoc-tone-bg: rgba(109, 94, 252, .11); }
.medoc-tone--cyan { --medoc-tone: #0b8a9a; --medoc-tone-bg: rgba(18, 181, 201, .12); }
.medoc-tone--green { --medoc-tone: #237a35; --medoc-tone-bg: rgba(47, 158, 68, .11); }
.medoc-tone--rose { --medoc-tone: #c2255c; --medoc-tone-bg: rgba(230, 73, 128, .11); }
.medoc-tone--slate { --medoc-tone: #475569; --medoc-tone-bg: rgba(100, 116, 139, .13); }
@media (prefers-color-scheme: dark) {
    .medoc-tone--orange { --medoc-tone: #ff9a57; --medoc-tone-bg: rgba(242, 97, 12, .16); }
    .medoc-tone--violet { --medoc-tone: #aea5ff; --medoc-tone-bg: rgba(139, 125, 255, .16); }
    .medoc-tone--cyan { --medoc-tone: #4fd3e3; --medoc-tone-bg: rgba(18, 181, 201, .16); }
    .medoc-tone--green { --medoc-tone: #62d67f; --medoc-tone-bg: rgba(47, 158, 68, .18); }
    .medoc-tone--rose { --medoc-tone: #f783ac; --medoc-tone-bg: rgba(230, 73, 128, .16); }
    .medoc-tone--slate { --medoc-tone: #aab6c8; --medoc-tone-bg: rgba(148, 163, 184, .14); }
}

.medoc-overview__brief { padding: 22px 24px 24px; }

.medoc-toc-wrap { max-height: min(640px, 70vh); margin: 0 -10px; padding: 0 6px 0 10px; overflow: auto; scrollbar-width: thin; }
.medoc-toc,
.medoc-toc__children { margin: 0; padding: 0; list-style: none; }
.medoc-toc__children { margin-left: 12px; padding-left: 12px; border-left: 1px solid var(--medoc-line); }
.medoc-toc__row { position: relative; display: flex; align-items: center; gap: 2px; min-height: 38px; padding-right: 2px; border-radius: 10px; }
.medoc-toc__row:hover { background: var(--medoc-surface-2); }
.medoc-toc__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-toc__toggle:hover { color: var(--medoc-ink); background: var(--medoc-surface-3); }
.medoc-toc__toggle .medoc-icon { transition: transform .2s var(--medoc-ease); }
.medoc-toc__toggle[aria-expanded="true"] .medoc-icon { transform: rotate(90deg); }
.medoc-toc__spacer { width: 26px; flex: none; }
.medoc-toc__link {
    display: flex;
    flex: 1;
    align-items: baseline;
    gap: 10px;
    min-width: 0;
    padding: 8px 4px;
    color: var(--medoc-ink-2);
    font-size: 14px;
    line-height: 1.35;
    text-decoration: none;
}
.medoc-toc__link:hover .medoc-toc__label { color: var(--medoc-link); }
.medoc-toc__label { flex: 1; min-width: 0; }
.medoc-toc__pages { flex: none; color: var(--medoc-faint); font-size: 12px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.medoc-toc__item--l0 > .medoc-toc__row .medoc-toc__link { color: var(--medoc-ink); font-weight: 700; }
.medoc-toc__item.is-part > .medoc-toc__row .medoc-toc__label { font-size: 13px; letter-spacing: .02em; text-transform: uppercase; }
.medoc-toc__actions { display: inline-flex; flex: none; }
@media (hover: hover) {
    .medoc-toc__actions {
        position: absolute;
        top: 50%;
        right: 4px;
        padding-left: 6px;
        border-radius: 9px;
        background: var(--medoc-surface-2);
        box-shadow: -14px 0 12px var(--medoc-surface-2);
        opacity: 0;
        transform: translateY(-50%);
        pointer-events: none;
        transition: opacity .15s var(--medoc-ease);
    }
    .medoc-toc__row:hover .medoc-toc__actions,
    .medoc-toc__row:focus-within .medoc-toc__actions { opacity: 1; pointer-events: auto; }
    .medoc-toc__row:focus-within { background: var(--medoc-surface-2); }
}
.medoc-toc__actions .medoc-iconbtn { color: var(--medoc-faint); }
.medoc-toc__actions .medoc-iconbtn:hover { color: var(--medoc-violet-ink); background: var(--medoc-violet-soft); }

.medoc-qline { margin: 0 0 12px; color: var(--medoc-muted); font-size: 14px; line-height: 1.55; }
.medoc-qbar { display: flex; gap: 2px; height: 10px; margin-bottom: 12px; overflow: hidden; border-radius: 999px; background: var(--medoc-surface-3); }
.medoc-qbar__seg { min-width: 4px; }
.medoc-qbar__seg--good { background: var(--medoc-good); }
.medoc-qbar__seg--check { background: var(--medoc-check); }
.medoc-qbar__seg--problem { background: var(--medoc-problem); }
.medoc-qlegend { display: grid; gap: 6px; margin: 0 0 14px; padding: 0; list-style: none; }
.medoc-qlegend li { display: flex; align-items: center; gap: 8px; color: var(--medoc-muted); font-size: 13.5px; }
.medoc-qlegend strong { margin-left: auto; color: var(--medoc-ink); font-variant-numeric: tabular-nums; }

.medoc-disclosure { padding: 0; }
.medoc-disclosure__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 16px 20px;
    border-radius: inherit;
    font-size: 15px;
    font-weight: 720;
    list-style: none;
    cursor: pointer;
}
.medoc-disclosure__summary::-webkit-details-marker { display: none; }
.medoc-disclosure__chev { color: var(--medoc-faint); transition: transform .2s var(--medoc-ease); }
.medoc-disclosure[open] .medoc-disclosure__chev { transform: rotate(180deg); }
.medoc-disclosure__body { padding: 0 20px 18px; }
.medoc-history { margin: 0; padding: 0; list-style: none; }
.medoc-history__item { position: relative; display: grid; grid-template-columns: 12px minmax(0, 1fr); gap: 0 12px; padding: 7px 0; }
.medoc-history__dot { width: 8px; height: 8px; margin-top: 7px; border-radius: 50%; background: var(--medoc-accent); }
.medoc-history__label { color: var(--medoc-ink-2); font-size: 14px; }
.medoc-history__time { grid-column: 2; color: var(--medoc-faint); font-size: 12.5px; font-variant-numeric: tabular-nums; }

@media (max-width: 1080px) {
    .medoc-overview__grid { grid-template-columns: minmax(0, 1fr); }
    .medoc-toc-wrap { max-height: none; }
}
@media (max-width: 760px) {
    .medoc-dochero { grid-template-columns: 104px minmax(0, 1fr); gap: 16px 18px; margin-bottom: 28px; }
    .medoc-dochero__info { display: contents; }
    .medoc-dochero__cover { grid-row: span 3; }
    .medoc-dochero__chips { margin-bottom: 0; align-self: end; }
    .medoc-dochero__title { font-size: clamp(24px, 6.4vw, 30px); }
    .medoc-dochero__titlerow { grid-column: 2; }
    .medoc-dochero__meta { grid-column: 2; margin-top: 0; font-size: 14.5px; align-self: start; }
    .medoc-dochero__author { flex-basis: 100%; }
    .medoc-dochero__author + .medoc-dochero__sep { display: none; }
    .medoc-dochero__desc,
    .medoc-dochero__stats,
    .medoc-dochero__actions { grid-column: 1 / -1; margin-top: 0; }
    .medoc-dochero__actions .medoc-dochero__cta { flex: 1 1 100%; }
    .medoc-dochero__actions > .medoc-btn--secondary { flex: 1; }
    .medoc-questions { grid-template-columns: minmax(0, 1fr); }
    .medoc-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .medoc-quick__item { flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px; }
    .medoc-overview__brief { padding: 18px; }
}

/* =============================================================================
   Account
   ============================================================================= */

.medoc-meters {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.medoc-meter {
    padding: 16px 18px 14px;
    border: 1px solid var(--medoc-line);
    border-radius: 18px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
}
.medoc-meter__head { display: flex; align-items: center; gap: 8px; color: var(--medoc-muted); font-size: 13.5px; font-weight: 650; }
.medoc-meter__icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 10px; background: var(--medoc-surface-2); color: var(--medoc-ink-2); }
.medoc-meter__value { margin: 12px 0 10px; font-variant-numeric: tabular-nums; line-height: 1.2; }
.medoc-meter__value strong { font-size: 22px; font-weight: 780; letter-spacing: -.025em; white-space: nowrap; }
.medoc-meter__unit { color: var(--medoc-muted); font-size: 14px; font-weight: 600; }
.medoc-meter__hint { margin: 8px 0 0; color: var(--medoc-faint); font-size: 12.5px; }
.medoc-meter.is-check .medoc-meter__hint { color: var(--medoc-check); font-weight: 620; }
.medoc-meter.is-problem .medoc-meter__hint { color: var(--medoc-problem); font-weight: 620; }
.medoc-account__reset { margin: 12px 0 0; font-size: 13px; }

.medoc-plancard {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px 32px;
    margin: 0 0 36px;
    padding: 26px 30px;
    overflow: hidden;
    border-radius: 24px;
    background: #0c1018;
    color: #eef1f7;
    box-shadow: var(--medoc-shadow-lg);
    isolation: isolate;
}
.medoc-plancard__glow {
    position: absolute;
    inset: 0;
    z-index: -1;
    background: radial-gradient(40% 90% at 100% 0%, rgba(242, 97, 12, .38), transparent 70%), radial-gradient(40% 90% at 70% 120%, rgba(109, 94, 252, .35), transparent 70%);
}
@media (prefers-color-scheme: dark) { .medoc-plancard { border: 1px solid rgba(255, 255, 255, .1); background: #121827; } }
.medoc-plancard .medoc-eyebrow { color: #ffa565; }
.medoc-plancard__name { margin: 8px 0 2px; font-size: 32px; font-weight: 820; letter-spacing: -.035em; }
.medoc-plancard__price { margin: 0; color: rgba(238, 241, 247, .7); font-size: 15px; }
.medoc-plancard__facts { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; font-size: 14.5px; }
.medoc-plancard__facts li { display: flex; align-items: center; gap: 10px; color: rgba(238, 241, 247, .88); }
.medoc-plancard__facts .medoc-icon { color: #ffa565; }

.medoc-plans {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.medoc-plan {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px;
    border: 1px solid var(--medoc-line);
    border-radius: 20px;
    background: var(--medoc-surface);
    box-shadow: var(--medoc-shadow-sm);
}
.medoc-plan.is-current { border-color: rgba(242, 97, 12, .55); box-shadow: 0 0 0 3px rgba(242, 97, 12, .12), var(--medoc-shadow-sm); }
.medoc-plan__name { margin: 0; font-size: 17px; font-weight: 750; }
.medoc-plan__price { margin: 4px 0 0; color: var(--medoc-muted); font-size: 14px; }
.medoc-plan__price strong { color: var(--medoc-ink); font-size: 30px; font-weight: 820; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.medoc-plan__rows { display: grid; margin: 0; }
.medoc-plan__row { display: flex; justify-content: space-between; gap: 8px; padding: 9px 0; border-top: 1px solid var(--medoc-line); font-size: 13.5px; }
.medoc-plan__row dt { color: var(--medoc-muted); }
.medoc-plan__row dd { margin: 0; font-weight: 680; text-align: right; font-variant-numeric: tabular-nums; }
.medoc-plan__cta { margin-top: auto; }
.medoc-plan__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 13px;
    border-radius: 999px;
    background: var(--medoc-surface-3);
    color: var(--medoc-muted);
    font-size: 13px;
    font-weight: 700;
}
.medoc-plan__badge.is-current { background: var(--medoc-accent-soft); color: var(--medoc-link); }
.medoc-plan__badge.is-soon { background: var(--medoc-violet-soft); color: var(--medoc-violet-ink); }
.medoc-account__links { display: flex; flex-direction: column; gap: 10px; }
.medoc-account__links .medoc-muted { margin: 0 0 4px; font-size: 14.5px; }

@media (max-width: 960px) { .medoc-plans { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
    .medoc-plans {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: 80%;
        margin: 0 calc(-1 * var(--medoc-gutter));
        padding: 4px var(--medoc-gutter) 10px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }
    .medoc-plans::-webkit-scrollbar { display: none; }
    .medoc-plan { scroll-snap-align: start; }
    .medoc-plancard { padding: 22px; }
    .medoc-meters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .medoc-meter { padding: 14px; }
    .medoc-meter__value strong { font-size: 18px; }
}

/* Il contatore che è finito spiega e propone: su una colonna ci sta tutto senza tagli. */
@media (max-width: 430px) {
    .medoc-meters { grid-template-columns: minmax(0, 1fr); }
}
.medoc-meter__action .medoc-btn {
    max-width: 100%;
    height: auto;
    min-height: 44px;
    padding-top: 8px;
    padding-bottom: 8px;
    white-space: normal;
    text-align: left;
}

/* =============================================================================
   Avvio, movimento ridotto, stampa
   ============================================================================= */

@media (prefers-reduced-motion: reduce) {
    .medoc-main *,
    .medoc-main *::before,
    .medoc-main *::after,
    .medoc-overlay,
    .medoc-overlay *,
    .medoc-sheet-wrap *,
    .medoc-menu-wrap *,
    .medoc-toasts *,
    .medoc-selbar {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        animation-delay: 0s !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }
    .medoc-progress__bar::after,
    .medoc-processing__scan,
    .medoc-wow__bg span { display: none; }
}

@media print {
    .medoc-appbar,
    .medoc-docnav,
    .medoc-bottomnav,
    .medoc-toasts,
    .medoc-selbar,
    .medoc-sheet-wrap,
    .medoc-menu-wrap,
    .medoc-overlay { display: none !important; }
    body { background: #fff; color: #000; }
    body::before,
    body::after { display: none; }
    .medoc-panel,
    .medoc-doccard { box-shadow: none; }
}

/* =============================================================================
   Aree da toccare sui dispositivi a dito (revisione UX 17/09/2026)
   Nessun cambiamento di aspetto: allarga solo la zona sensibile al tocco,
   con la stessa tecnica gia' usata da .medoc-iconbtn::after.
   ============================================================================= */
@media (pointer: coarse) {
    /* Bersagli da 44px sul dito (SPEC §10.3). Solo con il dito: col mouse i controlli restano
       della dimensione di prima, perché lì la precisione c'è (collaudo S9, revisione UX). */
    .medoc-btn,
    .medoc-btn--sm,
    .medoc-chip,
    .medoc-scopechip,
    .medoc-tabs--segmented .medoc-tabs__tab,
    .medoc-input,
    .medoc-select,
    .medoc-dsearch__input,
    .medoc-reader__pageinput { min-height: 44px; }
    .medoc-appbar__link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
    .medoc-iconbtn--sm::after { inset: -6px; }
    .medoc-iconbtn--xs::after { inset: -8px; }
    .medoc-usermenu { position: relative; }
    .medoc-usermenu::after { content: ""; position: absolute; inset: -2px; }
    .medoc-linkbtn { position: relative; }
    .medoc-linkbtn::after { content: ""; position: absolute; inset: -10px -4px; }
    .medoc-appbar__product { display: inline-flex; align-items: center; min-height: 44px; }
    .medoc-toc__link { min-height: 44px; }
    .medoc-toc__toggle { position: relative; }
    .medoc-toc__toggle::after { content: ""; position: absolute; inset: -9px; }
    .medoc-tag--link { position: relative; }
    .medoc-tag--link::after { content: ""; position: absolute; inset: -8px -4px; }

    .medoc-cite {
        position: relative;
    }
    .medoc-cite::after {
        content: "";
        position: absolute;
        inset: -7px -6px;
    }
    .medoc-doccard__fav::after {
        content: "";
        position: absolute;
        inset: -5px;
    }
}
