:root{--bp-primary:#1f5eff;--bp-secondary:#0f172a;--bp-accent:#e5ff3f;--bp-required:#f97316;--bp-bg:#f5f7fb;--bp-sidebar-width:250px}
html,body{min-height:100%}.bp-body{background-color:var(--bp-bg);background-image:var(--bp-app-bg-image,none);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;color:#172033}.bp-navbar{background:var(--bp-secondary);min-height:62px}.bp-logo{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:var(--bp-accent);color:var(--bp-secondary);font-weight:800}.bp-logo-lg{width:56px;height:56px;border-radius:16px;font-size:1.5rem}.bp-sidebar{--bs-offcanvas-width:var(--bp-sidebar-width);width:var(--bp-sidebar-width);background:#fff;border-right:1px solid #e7eaf0;min-height:calc(100vh - 62px)}.bp-sidebar .offcanvas-body{display:flex!important;flex-direction:column}.bp-main{min-width:0;min-height:calc(100vh - 62px)}.bp-nav-link{color:#465166}.bp-nav-link:hover,.bp-nav-link:focus{color:var(--bp-primary);background:#f1f5ff}.bp-sidebar-version{font-size:.75rem;color:#8993a5}.bp-btn-primary{--bs-btn-color:#fff;--bs-btn-bg:var(--bp-primary);--bs-btn-border-color:var(--bp-primary);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:color-mix(in srgb,var(--bp-primary),#000 14%);--bs-btn-hover-border-color:color-mix(in srgb,var(--bp-primary),#000 14%)}.bp-stat-card{border:0;box-shadow:0 .25rem 1.25rem rgba(15,23,42,.06)}.bp-role-option{display:block;border:1px solid #dfe4ec;border-radius:.75rem;padding:.8rem 1rem;background:#fff;cursor:pointer}.bp-login-body{min-height:100vh;background-color:var(--bp-login-bg,var(--bp-secondary));background-image:var(--bp-login-bg-image,none);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;display:flex;align-items:center}.bp-login-card{max-width:460px;border-radius:1.25rem}.table thead th{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;background:#f8fafc;white-space:nowrap}.form-control:focus,.form-select:focus{border-color:var(--bp-primary);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--bp-primary),transparent 82%)}.bp-field-label{display:inline-flex;align-items:baseline;gap:.3rem;flex-wrap:nowrap;max-width:100%}.bp-field-label>span:first-child{min-width:0}.bp-required-mark{color:var(--bp-required);font-weight:800;line-height:1;white-space:nowrap}.bp-optional-mark{color:#6b7280;font-size:.78em;font-weight:500;white-space:nowrap}
@media (min-width:992px){.bp-sidebar{position:sticky;top:62px;height:calc(100vh - 62px)}.bp-sidebar .offcanvas-body{height:100%}}
@media (max-width:575.98px){.bp-login-body{align-items:flex-start}.bp-login-card{border-radius:1rem}.display-6{font-size:2rem}}

.bp-separator{display:flex;align-items:center;gap:.75rem;color:#6b7280;font-size:.8rem}.bp-separator::before,.bp-separator::after{content:'';height:1px;background:#e5e7eb;flex:1}.bp-legal-content{white-space:normal;line-height:1.65;overflow-wrap:anywhere}.bp-login-card{width:100%}
@media (min-width:768px){.bp-login-card:has(form[action$="/register"]),.bp-login-card:has(form[action$="/register/google"]){max-width:760px}}

/* BellaProf 0.2.2 - login actions */
.bp-btn-login{--bs-btn-color:var(--bp-secondary);--bs-btn-bg:var(--bp-accent);--bs-btn-border-color:var(--bp-accent);--bs-btn-hover-color:var(--bp-secondary);--bs-btn-hover-bg:color-mix(in srgb,var(--bp-accent),#000 8%);--bs-btn-hover-border-color:color-mix(in srgb,var(--bp-accent),#000 10%);--bs-btn-active-color:var(--bp-secondary);--bs-btn-active-bg:color-mix(in srgb,var(--bp-accent),#000 12%);--bs-btn-active-border-color:color-mix(in srgb,var(--bp-accent),#000 12%);font-weight:700}
.bp-btn-google{display:flex;align-items:center;justify-content:center;gap:.7rem;position:relative;--bs-btn-color:#fff;--bs-btn-bg:#1a73e8;--bs-btn-border-color:#1a73e8;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#1765cc;--bs-btn-hover-border-color:#1765cc;--bs-btn-active-color:#fff;--bs-btn-active-bg:#1558b0;--bs-btn-active-border-color:#1558b0;font-weight:600}
.bp-google-logo{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;background:#fff;flex:0 0 auto}
.bp-google-logo img{display:block;width:18px;height:18px}


/* BellaProf 0.2.2 - branding e dashboard interattiva */
.bp-brand-logo{display:block;max-width:32px;max-height:32px;width:auto;height:auto;object-fit:contain}
.bp-brand-logo-lg{display:block;max-width:96px;max-height:96px;width:auto;height:auto;object-fit:contain;margin-inline:auto}
.bp-brand-preview{display:flex;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.bp-settings-logo-preview{display:block;max-width:160px;max-height:160px;width:auto;height:auto;object-fit:contain;border:1px solid #e5e7eb;border-radius:.75rem;padding:.5rem;background:#fff}
.bp-settings-logo-small-preview{display:block;max-width:128px;max-height:128px;width:auto;height:auto;object-fit:contain;border:1px solid #e5e7eb;border-radius:.75rem;padding:.5rem;background:#fff}
.bp-settings-background-preview{display:block;width:100%;max-width:520px;max-height:220px;object-fit:cover;border:1px solid #e5e7eb;border-radius:.75rem;background:#fff}
.bp-stat-link{display:block;color:inherit;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.bp-stat-link:hover,.bp-stat-link:focus-visible{color:inherit;transform:translateY(-2px);box-shadow:0 .6rem 1.5rem rgba(15,23,42,.12);outline:0}
.bp-stat-link:focus-visible{box-shadow:0 0 0 .2rem color-mix(in srgb,var(--bp-primary),transparent 70%),0 .6rem 1.5rem rgba(15,23,42,.12)}
.bp-stat-link .bp-stat-action{color:var(--bp-primary);font-weight:600}
@media (max-width:767.98px){.bp-body,.bp-login-body{background-attachment:scroll}}

/* BellaProf 0.3.0 - didattica e import CSV */
.bp-nav-section{margin:.85rem .75rem .25rem;color:#8b95a7;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.bp-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.4rem .8rem;max-height:180px;overflow:auto;padding:.25rem .1rem}
.bp-check-grid .form-check{margin:0;padding-top:.25rem;padding-bottom:.25rem}
@media (max-width:575.98px){.bp-nav-section{margin-top:.65rem}.bp-check-grid{grid-template-columns:1fr;max-height:220px}}
