/* /Components/Layout/Drawer.razor.rz.scp.css */
.drawer-container[b-e7u5d790jw] {
    height: 100%;
}


[b-e7u5d790jw] .navigation-drawer > .dxbl-drawer-panel {
    background-image: linear-gradient(180deg, var(--bs-primary, var(--DS-primary-90)) 0%, var(--bs-black, #000) 150%);
    transition: width 0.22s ease;
}

[b-e7u5d790jw] .navigation-drawer > .dxbl-drawer-content {
    overflow: auto;
    transition: margin-left 0.22s ease;
}

/* Header */

[b-e7u5d790jw] .navigation-drawer > .dxbl-drawer-panel > .dxbl-drawer-header {
    border-bottom: none;
    padding: 2rem 1rem;
    background: none;
}

[b-e7u5d790jw] .navigation-drawer > .dxbl-drawer-panel > .dxbl-drawer-header > .navigation-drawer-header {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Header collassato: centra il logo/icona */

[b-e7u5d790jw] .navigation-drawer.drawer-collapsed > .dxbl-drawer-panel > .dxbl-drawer-header > .navigation-drawer-header {
    justify-content: center;
    padding: 0;
}

/* Body */

[b-e7u5d790jw] .navigation-drawer > .dxbl-drawer-panel > .dxbl-drawer-body {
    --dxbl-drawer-panel-body-padding-x: 0;
    --dxbl-drawer-panel-body-padding-y: 1rem;
}

/* Footer */

[b-e7u5d790jw] .navigation-drawer > .dxbl-drawer-panel > .dxbl-drawer-footer {
    --dxbl-drawer-panel-footer-justify-content: center;
    border-top: none;
    padding-bottom: 1.5rem;
    width: 240px;
    background: none;
    transition: width 0.22s ease;
}

[b-e7u5d790jw] .navigation-drawer.drawer-collapsed > .dxbl-drawer-panel > .dxbl-drawer-footer {
    width: 52px !important;
}

/* Nasconde il testo dei pulsanti footer quando collassato */

[b-e7u5d790jw] .navigation-drawer.drawer-collapsed .footer-button .dxbl-btn-text {
    display: none !important;
}

[b-e7u5d790jw] .navigation-drawer.drawer-collapsed .footer-button {
    padding: 0 !important;
    justify-content: center;
    min-width: 36px;
}

[b-e7u5d790jw] .navigation-drawer > .dxbl-drawer-panel {
    display: flex;
}

[b-e7u5d790jw] .navigation-drawer.mobile > .dxbl-drawer-panel {
    display: none;
}

[b-e7u5d790jw] .navigation-drawer > .dxbl-drawer-content > .navigation-drawer-shading {
    display: none;
}

@media (max-width: 768px) {
    [b-e7u5d790jw] .navigation-drawer > .dxbl-drawer-panel {
        display: none;
    }

    [b-e7u5d790jw] .navigation-drawer.mobile > .dxbl-drawer-panel {
        display: flex;
    }

    [b-e7u5d790jw] .navigation-drawer > .dxbl-drawer-content > .navigation-drawer-shading {
        background-color: var(--dxbl-drawer-content-shading-bg);
        display: block;
        height: 100%;
        position: absolute;
        transition: ease var(--dxbl-drawer-animation-duration);
        transition-property: opacity, visibility;
        visibility: visible;
        width: 100%;
        z-index: 99;
        opacity: var(--dxbl-drawer-content-shading-opacity);
    }

    [b-e7u5d790jw] .navigation-drawer.mobile.panel-closed .navigation-drawer-shading {
        opacity: 0;
        visibility: hidden;
    }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-kpx25imfgx] {
    height: 100%;
    font-family: var(--bs-font-sans-serif, var(--DS-font-family-sans-serif));
    min-height: 0;
}

.hamburger-btn[b-kpx25imfgx] {
    width: 36px;
    height: 36px;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--bs-body-color, #374151);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s;
}

.hamburger-btn:hover[b-kpx25imfgx] {
    background: rgba(0, 0, 0, 0.06);
}

/* Icone DevExpress */
[b-kpx25imfgx] .icon-back   { --icon-mask-image: var(--icon-back-mask-image); }
[b-kpx25imfgx] .icon-close  { --icon-mask-image: var(--icon-close-mask-image); }
[b-kpx25imfgx] .icon-menu   { --icon-mask-image: var(--icon-menu-mask-image); }
[b-kpx25imfgx] .docs-icon   { --icon-mask-image: var(--icon-docs-mask-image); }
[b-kpx25imfgx] .demos-icon  { --icon-mask-image: var(--icon-demos-mask-image); }

[b-kpx25imfgx] .footer-button:hover .demos-icon,
[b-kpx25imfgx] .footer-button:hover .docs-icon  { background-color: var(--dxbl-btn-hover-color); }
[b-kpx25imfgx] .menu-button:hover .icon         { background-color: var(--dxbl-btn-hover-color); }
[b-kpx25imfgx] .menu-button-nav:hover .icon     { background-color: var(--dxbl-btn-hover-color); }

.logo[b-kpx25imfgx] { text-align: center; }

/* ---- Layout interno DrawerTarget ---- */

.app-layout-inner[b-kpx25imfgx] {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
}

/* ---- Top bar ---- */

.app-topbar[b-kpx25imfgx] {
    display: flex;
    align-items: center;
    height: 52px;
    padding: 0 12px 0 4px;
    border-bottom: 1px solid var(--bs-border-color, #e2e8f0);
    background: var(--bs-body-bg, #fff);
    flex-shrink: 0;
    gap: 8px;
}

.topbar-left[b-kpx25imfgx]  { display: flex; align-items: center; }
.topbar-center[b-kpx25imfgx] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    padding-left: 8px;
}

.topbar-logo[b-kpx25imfgx] {
    height: 28px;
    width: auto;
}

.topbar-brand[b-kpx25imfgx] {
    font-size: 16px;
    font-weight: 600;
    color: var(--bs-body-color, #1e293b);
    letter-spacing: -0.3px;
}

.topbar-right[b-kpx25imfgx] {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Pulsante toggle pannello AI */
.ai-toggle-btn[b-kpx25imfgx] {
    width: 32px;
    height: 32px;
    border: 1px solid var(--bs-border-color, #e2e8f0);
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #94a3b8;
    transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.ai-toggle-btn:hover[b-kpx25imfgx] { background: #f1f5f9; color: #475569; }
.ai-toggle-btn.ai-toggle-active[b-kpx25imfgx] {
    background: #ede9fe;
    color: #7c3aed;
    border-color: #c4b5fd;
}

/* Chip utente */
.user-chip[b-kpx25imfgx] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px 4px 4px;
    border-radius: 20px;
    border: 1px solid var(--bs-border-color, #e2e8f0);
    background: var(--bs-body-bg, #fff);
    cursor: default;
}

.user-avatar[b-kpx25imfgx] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #6366f1;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
}

.user-name[b-kpx25imfgx] {
    font-size: 13px;
    color: var(--bs-body-color, #374151);
    font-weight: 500;
}

/* ---- Workspace ---- */

.app-workspace[b-kpx25imfgx] {
    display: flex;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.app-content[b-kpx25imfgx] {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    min-width: 0;
}

/* ---- Pannello AI ---- */

.app-ai-panel[b-kpx25imfgx] {
    width: 390px;
    min-width: 390px;
    border-left: 1px solid var(--bs-border-color, #e2e8f0);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: width 0.25s ease, min-width 0.25s ease;
    background: var(--bs-body-bg, #fff);
}

.app-ai-panel.ai-panel-hidden[b-kpx25imfgx] {
    width: 0;
    min-width: 0;
    border-left: none;
}

.ai-panel-header[b-kpx25imfgx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    border-bottom: 1px solid var(--bs-border-color, #e2e8f0);
    flex-shrink: 0;
}

.ai-panel-title[b-kpx25imfgx] {
    font-size: 14px;
    font-weight: 600;
    color: var(--bs-body-color, #1e293b);
}

.ai-panel-close-btn[b-kpx25imfgx] {
    width: 24px;
    height: 24px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    color: #94a3b8;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background 0.15s, color 0.15s;
}
.ai-panel-close-btn:hover[b-kpx25imfgx] { background: #f1f5f9; color: #475569; }

/* Barra contesto studente */
.ai-context-bar[b-kpx25imfgx] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    padding: 7px 14px;
    background: #f8fafc;
    border-bottom: 1px solid var(--bs-border-color, #e2e8f0);
    flex-shrink: 0;
}

.ai-ctx-chip[b-kpx25imfgx] {
    background: #e2e8f0;
    color: #475569;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11px;
    white-space: nowrap;
}

.ai-ctx-chip-student[b-kpx25imfgx] {
    background: #dbeafe;
    color: #1e40af;
    font-weight: 600;
}

.ai-ctx-chip-etichetta[b-kpx25imfgx] {
    background: #f3e8ff;
    color: #7c3aed;
    font-weight: 600;
}

/* Barra "Sto pensando..." */
.ai-thinking-bar[b-kpx25imfgx] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 14px;
    font-size: 13px;
    color: #6366f1;
    background: #f5f3ff;
    border-bottom: 1px solid #e0e7ff;
    animation: ai-fade-in-b-kpx25imfgx 0.15s ease;
    flex-shrink: 0;
}

.ai-thinking-spinner[b-kpx25imfgx] {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    border: 2px solid #c7d2fe;
    border-top-color: #6366f1;
    border-radius: 50%;
    animation: ai-spin-b-kpx25imfgx 0.75s linear infinite;
}

@keyframes ai-spin-b-kpx25imfgx    { to { transform: rotate(360deg); } }
@keyframes ai-fade-in-b-kpx25imfgx { from { opacity: 0; } to { opacity: 1; } }

/* DxAIChat occupa lo spazio rimanente */
[b-kpx25imfgx] .app-ai-panel .student-ai-chat {
    flex: 1 !important;
    min-height: 0 !important;
}

/* Placeholder quando nessuno studente è selezionato */
.ai-panel-placeholder[b-kpx25imfgx] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: #94a3b8;
    padding: 32px 24px;
    text-align: center;
}

.ai-panel-placeholder-icon[b-kpx25imfgx] {
    font-size: 36px;
    opacity: 0.4;
}

.ai-panel-placeholder p[b-kpx25imfgx] {
    font-size: 13px;
    line-height: 1.5;
    margin: 0;
}
.topbar-brand[b-kpx25imfgx] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.3px;
}

.brand-ai[b-kpx25imfgx] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: #7c3aed;
    font-weight: 700;
}

.brand-dashboard[b-kpx25imfgx] {
    color: #94a3b8;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 600;
}

.brand-sparkle[b-kpx25imfgx] {
    background: linear-gradient( 90deg, #8b5cf6, #6366f1, #ec4899, #8b5cf6 );
    background-size: 300% 300%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: gradientShift-b-kpx25imfgx 3s ease infinite, sparklePulse-b-kpx25imfgx 2s ease-in-out infinite;
}

@keyframes gradientShift-b-kpx25imfgx {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

@keyframes sparklePulse-b-kpx25imfgx {
    0%,100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.15);
    }
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* Stili spostati in site.css per evitare conflitti con CSS scoped */
/* /Components/Pages/Index.razor.rz.scp.css */
[b-hj9n78szmv] .welcome-gridlayout {
    margin: auto;
    width: auto;
    height: auto;
}

[b-hj9n78szmv] .welcome-gridlayout .dxbl-gridlayout-root {
    align-content: center;
    justify-content: center;
}

[b-hj9n78szmv] .title {
    text-align: center;
}

[b-hj9n78szmv] .welcome-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    justify-content: center;
}

[b-hj9n78szmv] .welcome-card {
    width: 26.25rem;
    height: 15rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0px 4px 6px -1px rgba(0, 0, 0, 0.1), 0px 2px 4px -2px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.2s;
    border-radius: 1rem;
    color: var(--bs-link-color, var(--DS-primary-90));
    gap: 1.5rem;
    text-decoration: none;
    position: relative;
}

[b-hj9n78szmv] .welcome-card:hover {
    box-shadow: 0px 20px 25px -5px rgba(0, 0, 0, 0.1), 0px 8px 10px -6px rgba(0, 0, 0, 0.1);
}

[b-hj9n78szmv] .welcome-card .welcome-card-img {
    width: 6.5rem;
    height: 6.5rem;
}

[b-hj9n78szmv] .welcome-card .welcome-card-text {
    font-size: 1.75rem;
    font-weight: 600;
    letter-spacing: 0em;
    text-align: center;
    text-decoration: unset;
}

[b-hj9n78szmv] .welcome-card .welcome-card-back {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--bs-body-color, var(--DS-color-content-neutral-default-rest));
    opacity: 0.05;
    border-radius: 1rem;
    z-index: -2;
}

/* ---- Sparkline nella tabella materie ---- */

[b-hj9n78szmv] .sparkline-cell {
    padding: 4px 8px !important;
    vertical-align: middle;
    line-height: 0;
}

[b-hj9n78szmv] .sparkline-cell svg {
    display: block;
}

/* ---- Riga note famiglia nella tabella voti ---- */

[b-hj9n78szmv] .voto-note-row {
    background: transparent !important;
}

[b-hj9n78szmv] .voto-note-cell {
    padding: 2px 8px 6px 8px !important;
    font-size: 12px;
    color: #6b7280;
    font-style: italic;
    border-top: none !important;
}
/* /Components/Pages/Mappa.razor.rz.scp.css */
.mappa-page[b-jpw6d7kv64] {
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: 0;
    overflow: hidden;
}

/* Filtri */
.mappa-filters[b-jpw6d7kv64] {
    display: flex;
    gap: 16px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--bs-border-color, #e2e8f0);
    flex-shrink: 0;
    flex-wrap: wrap;
}

.mappa-filters > div[b-jpw6d7kv64] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 180px;
}

.mappa-filters label[b-jpw6d7kv64] {
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Toolbar */
.mappa-toolbar[b-jpw6d7kv64] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--bs-border-color, #e2e8f0);
    flex-shrink: 0;
    flex-wrap: wrap;
    justify-content: space-between;
}

.tool-group[b-jpw6d7kv64] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.mappa-btn[b-jpw6d7kv64] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid var(--bs-border-color, #e2e8f0);
    border-radius: 6px;
    background: var(--bs-body-bg, #fff);
    cursor: pointer;
    font-size: 13px;
    color: var(--bs-body-color, #374151);
    transition: background 0.15s, border-color 0.15s;
    white-space: nowrap;
}
.mappa-btn:hover:not(:disabled)[b-jpw6d7kv64] { background: #f8fafc; }
.mappa-btn:disabled[b-jpw6d7kv64] { opacity: 0.45; cursor: not-allowed; }

.mappa-btn-danger[b-jpw6d7kv64] { color: #dc2626; border-color: #fca5a5; }
.mappa-btn-danger:hover:not(:disabled)[b-jpw6d7kv64] { background: #fef2f2; }

.mappa-btn-ai[b-jpw6d7kv64] { color: #7c3aed; border-color: #c4b5fd; }
.mappa-btn-ai:hover:not(:disabled)[b-jpw6d7kv64] { background: #ede9fe; }

.mappa-btn-primary[b-jpw6d7kv64] { background: #6366f1; color: #fff; border-color: #6366f1; }
.mappa-btn-primary:hover:not(:disabled)[b-jpw6d7kv64] { background: #4f46e5; }

.mappa-btn-active[b-jpw6d7kv64] { background: #ede9fe; color: #7c3aed; border-color: #c4b5fd; }

/* Pannello allineamento */
.mappa-allinea-panel[b-jpw6d7kv64] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 8px 16px;
    background: #f8fafc;
    border-bottom: 1px solid var(--bs-border-color, #e2e8f0);
    flex-shrink: 0;
    flex-wrap: wrap;
}

.allinea-row[b-jpw6d7kv64] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.allinea-label[b-jpw6d7kv64] {
    font-size: 13px;
    color: #475569;
    white-space: nowrap;
}

.allinea-group-btns[b-jpw6d7kv64] {
    display: flex;
    gap: 4px;
}

.allinea-opt-btn[b-jpw6d7kv64] {
    padding: 4px 10px;
    border: 1px solid var(--bs-border-color, #e2e8f0);
    border-radius: 5px;
    background: transparent;
    font-size: 12px;
    cursor: pointer;
    color: #374151;
    transition: all 0.15s;
}
.allinea-opt-btn:hover[b-jpw6d7kv64] { background: #f1f5f9; }
.allinea-opt-btn.active[b-jpw6d7kv64] {
    background: #ede9fe;
    color: #7c3aed;
    border-color: #c4b5fd;
    font-weight: 600;
}

.allinea-input[b-jpw6d7kv64] {
    width: 56px;
    padding: 4px 8px;
    border: 1px solid var(--bs-border-color, #e2e8f0);
    border-radius: 5px;
    font-size: 13px;
    text-align: center;
}

.allinea-actions[b-jpw6d7kv64] {
    display: flex;
    gap: 6px;
    margin-left: auto;
}

.ai-spinner[b-jpw6d7kv64] {
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 2px solid #c4b5fd;
    border-top-color: #7c3aed;
    border-radius: 50%;
    animation: spin-b-jpw6d7kv64 0.75s linear infinite;
}
@keyframes spin-b-jpw6d7kv64 { to { transform: rotate(360deg); } }

/* Workspace */
.mappa-workspace[b-jpw6d7kv64] {
    display: flex;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.mappa-canvas-wrap[b-jpw6d7kv64] {
    flex: 1;
    overflow: auto;
    background: #f8fafc;
}

.mappa-svg[b-jpw6d7kv64] {
    display: block;
    width: 960px;
    height: 640px;
}

/* Pannello destro */
.mappa-panel[b-jpw6d7kv64] {
    width: 260px;
    min-width: 260px;
    border-left: 1px solid var(--bs-border-color, #e2e8f0);
    background: var(--bs-body-bg, #fff);
    padding: 14px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.panel-title[b-jpw6d7kv64] {
    font-size: 13px;
    font-weight: 600;
    color: var(--bs-body-color, #1e293b);
    margin: 0 0 8px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--bs-border-color, #e2e8f0);
}

.panel-stats[b-jpw6d7kv64] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.stat-row[b-jpw6d7kv64] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    color: var(--bs-body-color, #374151);
}

.stat-row strong[b-jpw6d7kv64] { font-weight: 700; }

.panel-hint[b-jpw6d7kv64] {
    font-size: 12px;
    color: #94a3b8;
    margin: 8px 0 0 0;
    line-height: 1.5;
}

.panel-info-text[b-jpw6d7kv64] {
    font-size: 12px;
    color: #64748b;
    line-height: 1.5;
    margin: 0;
}

.panel-empty[b-jpw6d7kv64] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #94a3b8;
    text-align: center;
}

.panel-empty-icon[b-jpw6d7kv64] { font-size: 28px; opacity: 0.5; }
.panel-empty p[b-jpw6d7kv64] { font-size: 12px; margin: 0; line-height: 1.5; }

.panel-assigned[b-jpw6d7kv64] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 10px;
    background: #eff6ff;
    border: 1px solid #93c5fd;
    border-radius: 6px;
    margin-bottom: 8px;
}

.assigned-name[b-jpw6d7kv64] {
    font-size: 13px;
    font-weight: 500;
    color: #1e40af;
}

.btn-rimuovi-studente[b-jpw6d7kv64] {
    border: none;
    background: transparent;
    color: #dc2626;
    cursor: pointer;
    font-size: 12px;
    padding: 2px 6px;
    border-radius: 4px;
}
.btn-rimuovi-studente:hover[b-jpw6d7kv64] { background: #fef2f2; }

.panel-section-label[b-jpw6d7kv64] {
    font-size: 11px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 6px;
}

.panel-student-list[b-jpw6d7kv64] {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.panel-student-item[b-jpw6d7kv64] {
    display: block;
    width: 100%;
    padding: 7px 10px;
    text-align: left;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--bs-border-color, #f1f5f9);
    cursor: pointer;
    font-size: 13px;
    color: var(--bs-body-color, #374151);
    border-radius: 4px;
    transition: background 0.1s;
}
.panel-student-item:hover[b-jpw6d7kv64] { background: #f8fafc; }

.panel-empty-text[b-jpw6d7kv64] {
    font-size: 12px;
    color: #94a3b8;
    padding: 8px 0;
    text-align: center;
}

/* Spiegazione AI */
.spiegazione-block[b-jpw6d7kv64] {
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid var(--bs-border-color, #e2e8f0);
}

.spiegazione-header[b-jpw6d7kv64] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 600;
    color: #7c3aed;
}

.spiegazione-close[b-jpw6d7kv64] {
    border: none;
    background: transparent;
    color: #94a3b8;
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    padding: 0 2px;
}
.spiegazione-close:hover[b-jpw6d7kv64] { color: #475569; }

.spiegazione-testo[b-jpw6d7kv64] {
    font-size: 12px;
    color: #374151;
    line-height: 1.6;
    margin: 0;
}

/* Toast notifica */
.mappa-toast[b-jpw6d7kv64] {
    position: fixed;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%);
    background: #1e293b;
    color: #fff;
    padding: 8px 22px;
    border-radius: 20px;
    font-size: 13px;
    z-index: 9999;
    pointer-events: none;
    animation: toast-in-b-jpw6d7kv64 0.2s ease;
}

@keyframes toast-in-b-jpw6d7kv64 {
    from { opacity: 0; transform: translateX(-50%) translateY(8px); }
    to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
