/* Base */
:root {
    --gr-font-sans: 'Jost', sans-serif;
    --gr-font-serif: 'Jost', sans-serif;
    --kendo-font-family: 'Jost', sans-serif;
    --gr-text: #333333;
    --gr-text-dark: #141717;
    --gr-link: #045BA9;
    --gr-bg: #F5F5F5;
    --gr-muted-bg: #EFEFEF;
    --gr-primary: #045BA9;
    --gr-primary-hover: #03549C;
    --gr-success: #2F8E5A;
    --gr-success-hover: #157846;
    --gr-danger: #ED1B24;
    --gr-radius-sm: 15px;
    --gr-radius-lg: 25px;
    --gr-identity-surface: #F0F4F9;
    --gr-identity-border: #E1E3E1;
    --gr-identity-border-soft: #D6D9DD;
    --gr-muted-text: #6c757d;
    --gr-card-header-bg: #fafbfc;
    --gr-card-header-danger-bg: #fff5f5;
    --gr-card-danger-border: #f5c6cb;
    --gr-separator: #f0f0f0;
    --gr-nav-hover-bg: #f0f4f8;
    --gr-input-border: #b6bec9;
    --gr-input-border-hover: #7d94ab;
    --gr-input-prefix: #98a0ad;
}

html {
    font-size: 16px;
    position: relative;
    min-height: 100%;
}

body {
    margin-bottom: 0;
    font-family: var(--gr-font-sans);
    font-size: 16px;
    color: var(--gr-text);
    background-color: var(--gr-bg);
}

.k-widget,
.k-input,
.k-button,
.k-picker,
.k-list,
.k-popup {
    font-family: var(--gr-font-sans) !important;
}

:focus-visible {
    outline: 2px solid rgba(4, 91, 169, 0.45);
    outline-offset: 2px;
}

.btn:focus,
.btn:active:focus,
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    box-shadow: none;
}

/* Tipografia */
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
    font-family: var(--gr-font-serif);
    color: #333333;
    font-weight: 500;
    line-height: 1.4;
}

h1, .h1 { font-size: 36px; }
h2, .h2 { font-size: 28px; }
h3, .h3 { font-size: 32px; }
h4, .h4 { font-size: 28px; }
h5, .h5 { font-size: 24px; }
h6, .h6 { font-size: 20px; }

a, .btn-link {
    color: var(--gr-link);
    text-decoration: none;
}

a:hover, .btn-link:hover {
    color: var(--gr-text-dark);
    text-decoration: none;
}

.lead {
    font-size: 20px;
    line-height: 1.7;
}

.small, .text-small {
    font-size: 14px;
}

/* Bottoni */
.btn,
.k-button {
    border-radius: var(--gr-radius-sm);
    font-size: 15px;
    font-weight: 500;
}

.btn-lg {
    width: 220px;
}

.btn-primary {
    background-color: var(--gr-success);
    border-color: var(--gr-success);
    color: #FFFFFF;
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--gr-success-hover);
    border-color: var(--gr-success-hover);
    color: #FFFFFF;
}

.btn-secondary {
    background-color: var(--gr-primary);
    border-color: var(--gr-primary);
    color: #FFFFFF;
}

.btn-secondary:hover,
.btn-secondary:focus {
    background-color: var(--gr-primary-hover);
    border-color: var(--gr-primary-hover);
    color: #FFFFFF;
}

/* Form */
.form-control, .form-select {
    border: 1px solid var(--gr-input-border);
    border-radius: var(--gr-radius-sm);
    background-color: #FFFFFF;
    color: var(--gr-text);
    box-shadow: none;
    font-size: 16px;
    line-height: 1.35;
    padding: 0.55rem 0.9rem;
    height: auto;
    min-height: 2.7rem;
}

.form-label {
    font-size: 14px;
    color: #404042;
    font-weight: 400;
    display: block;
    margin-bottom: 0;
}

.form-control:focus, .form-select:focus {
    border-color: var(--gr-link);
    background-color: rgba(255, 255, 255, 0.95);
    color: var(--gr-text);
    outline: none;
}

.form-control::placeholder {
    color: #999999;
    opacity: 0.7;
}

.form-control:disabled,
.form-control[readonly],
.form-select:disabled {
    background-color: #F7F7F7;
    color: #999999;
    border-color: #E0E0E0;
}

.form-control.is-invalid,
.was-validated .form-control:invalid,
.form-select.is-invalid {
    border-color: var(--gr-danger);
    background-repeat: no-repeat;
}

.form-control.is-valid,
.was-validated .form-control:valid,
.form-select.is-valid {
    border-color: var(--gr-success);
    background-repeat: no-repeat;
}

/* Validation error messages styling */
.text-danger,
.field-validation-error,
.validation-summary-errors {
    color: var(--gr-danger);
    font-size: 14px;
    font-weight: 400;
    margin-top: 0.25rem;
    display: block;
}

.validation-summary-errors ul {
    margin-bottom: 0;
    padding-left: 1.5rem;
}

/* Form check styling for better consistency */
.form-check-label {
    font-size: 16px;
    line-height: 1.45;
}

.form-check-input {
    width: 1.1rem;
    height: 1.1rem;
    margin-top: 0.15rem;
}

/* Componenti */
.card {
    border-radius: var(--gr-radius-lg);
    background-color: #FEFEFE;
    border: 0;
    box-shadow: none;
}

.alert {
    background-color: var(--gr-muted-bg);
}

.alert-primary {
    background-color: #DEF3FB;
}

.navbar {
    background-color: #FFFFFF;
    border-bottom: 2px solid #D9D9D9;
    box-shadow: none;
    min-height: 80px;
    padding-top: 5px;
    padding-bottom: 5px;
}

.navbar .nav-link {
    font-weight: 500;
    font-size: inherit;
}

footer {
    background-color: #333;
    border-top: 1px solid #D9D9D9;
    color: #fff;
    padding: 20px 0;
}

footer a {
    color: #fff;
}

footer a:hover {
    color: #fff7;
}

/* Identity Footer */
footer.identity-footer {
    background-color: transparent;
    border-top: none;
    color: var(--gr-muted-text);
}

footer.identity-footer a,
footer.identity-footer .footer-link {
    color: var(--gr-muted-text);
    font-size: 0.875em;
}

footer.identity-footer a:hover,
footer.identity-footer .footer-link:hover {
    color: #343a40;
}

footer.identity-footer .footer-separator {
    color: var(--gr-muted-text);
}

/* Identity Shared Styles (moved from Login.cshtml.css) */
.identity-logo {
    /* width/height handled by HTML attribute or w-* classes, but border-radius is needed */
    border-radius: 50%;
}

.identity-box {
    padding: 60px 20px;
}

.identity-box .container {
    max-width: 1100px;
}

.identity-box .identity-register-container {
    max-width: 1100px;
    margin: 0 auto;
}

.identity-box.register-page-box {
    padding-top: 48px;
    padding-inline: 12px;
    padding-bottom: 0;
}

.identity-card {
    max-width: 1050px;
    margin: 0 auto;
    background: var(--gr-identity-surface);
    border: 1px solid var(--gr-identity-border);
    border-radius: var(--gr-radius-lg);
    padding: 50px;
}

.identity-title {
    font-family: var(--gr-font-sans);
    font-size: 64px;
    line-height: 1.05;
    margin: 0 0 12px 0;
}

.identity-sub {
    font-size: 16px;
    opacity: .85;
    margin-bottom: 18px;
}

/* Specific Input Customization within Identity Card */
.identity-card .form-control.form-control-lg {
    border-radius: 12px;
    border: 1px solid #D8DADC;
    padding-top: 14px;
    padding-bottom: 14px;
    font-size: 1rem;
}

/* Search Input Group Fixes */
.identity-card .input-group .input-group-text {
    background-color: #FFFFFF;
    border: 1px solid var(--gr-input-border);
    border-right: none;
    border-radius: 12px 0 0 12px;
    padding-left: 1rem;
}

.identity-card .input-group .form-control {
    border-radius: 0 12px 12px 0;
    border-left: none;
}

.identity-card .input-group:focus-within .input-group-text,
.identity-card .input-group:focus-within .form-control {
    border-color: var(--gr-link);
}

.identity-card .input-group .btn {
    border-width: 1px;
}

/* Mobile override */
@media (max-width: 640px) {
    .identity-box.register-page-box {
        padding-top: 24px;
        padding-inline: 8px;
        padding-bottom: 0;
    }

    .identity-card {
        border: none;
        background: transparent;
        padding: 0 10px;
    }

    .identity-title {
        font-size: 42px;
    }
}

/* Register wizard */
.register-card {
    background-color: var(--gr-identity-surface);
    border-color: var(--gr-identity-border);
    --kendo-color-primary: #045ba9;
    --kendo-color-primary-hover: #03549c;
    --kendo-color-on-primary: #ffffff;
    --register-pad-top: 40px;
    --register-pad-x: 34px;
    --register-pad-bottom: 24px;
    padding: var(--register-pad-top) var(--register-pad-x) var(--register-pad-bottom);
}

.register-card .row {
    --bs-gutter-x: 1.1rem;
    --bs-gutter-y: 0.4rem;
}

.register-card .register-step-title {
    font-size: 44px;
    line-height: 1.12;
    margin-bottom: 2rem;
    font-family: var(--gr-font-sans);
    font-weight: 500;
}

.register-card .register-step-subtitle {
    text-align: center;
    font-size: 40px;
    margin: 2.4rem 0 1.75rem;
}

.register-card .register-note {
    background: #f0ebe6;
    padding: 1.2rem 1.5rem;
    border-radius: 8px;
    font-size: 1rem;
}

.register-card .register-profile-title {
    margin-top: 6px;
    margin-bottom: 34px;
    font-size: 44px;
    font-weight: 500;
    line-height: 1.12;
}

.register-card .register-profile-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(300px, 300px));
    justify-content: center;
    align-items: start;
    column-gap: 110px;
    row-gap: 24px;
}

.register-card .register-profile-option {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    border: none;
    background: transparent;
    box-shadow: none;
    padding: 0;
    appearance: none;
    -webkit-appearance: none;
}

.register-card .register-profile-option:hover,
.register-card .register-profile-option:active,
.register-card .register-profile-option:focus {
    border: none;
    background: transparent;
    box-shadow: none;
    outline: none;
}

.register-card .register-profile-image-wrap {
    width: 300px;
    height: 300px;
    border-radius: 50%;
    overflow: hidden;
    border: 1px solid var(--gr-identity-border-soft);
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.register-card .register-profile-image {
    width: 300px;
    height: 300px;
    max-width: 300px;
    max-height: 300px;
    min-width: 300px;
    min-height: 300px;
    object-fit: cover;
    display: block;
}

.register-card .register-profile-option.selected .register-profile-image-wrap {
    border-color: #9fb6cc;
    box-shadow: none;
}

.register-card .register-profile-label {
    margin-top: 0;
    font-size: 42px;
    line-height: 1.12;
    font-weight: 500;
    color: #3c4045;
}

.register-card .school-card {
    background: rgba(255, 255, 255, 0.45);
    border: 1px solid #d9dee7;
    border-radius: 14px;
    padding: 1rem;
}

.register-card .school-card-title {
    margin: 0;
    font-size: 1.25rem;
}

.register-card .btn {
    font-size: 16px;
    font-family: var(--gr-font-sans);
}

.register-card .form-control,
.register-card .form-select {
    border-color: var(--gr-input-border);
}

.register-card .register-kendo-dropdown.k-picker {
    border: 1px solid var(--gr-input-border);
    border-radius: 12px;
    background-color: #FFFFFF;
    height: 55px;
    box-shadow: none;
}

.register-card .register-kendo-dropdown.k-picker:hover,
.register-card .register-kendo-dropdown.k-picker.k-hover {
    border-color: #aab3bf;
}

.register-card .register-kendo-dropdown.k-picker.k-focus,
.register-card .register-kendo-dropdown.k-picker:focus-within {
    border-color: var(--gr-link);
    box-shadow: none;
}

.register-card .register-kendo-dropdown .k-input-inner {
    font-family: var(--gr-font-sans);
    font-size: 16px;
    line-height: 1.35;
    color: var(--gr-text);
    padding: 0.55rem 0.9rem;
}

.register-card .register-kendo-dropdown .k-input-button {
    border-radius: 0 12px 12px 0;
}

.register-card .register-inline-link {
    display: inline-flex;
    align-items: center;
    color: var(--gr-link);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2;
}

.register-card button.register-inline-link {
    border: 0;
    background: transparent;
}

.register-card .register-inline-link i {
    font-size: 16px;
    line-height: 1;
    opacity: 0.95;
}

.register-card .register-inline-link:hover,
.register-card .register-inline-link:focus {
    color: var(--gr-text-dark);
    text-decoration: none;
}

.register-card .register-validation-summary {
    border: 1px solid #f0c7cb;
    background: #fff1f3;
    border-radius: 10px;
    padding: 0.65rem 0.9rem;
}

.register-card .register-validation-summary.validation-summary-valid {
    display: none;
}

.register-card .register-validation-summary ul {
    margin: 0;
    padding-left: 1.15rem;
}

.register-card .register-validation-summary li {
    font-size: 14px;
    line-height: 1.35;
}

@media (max-width: 992px) {
    .register-card {
        --register-pad-top: 30px;
        --register-pad-x: 24px;
        --register-pad-bottom: 18px;
    }

    .register-card .register-step-title {
        font-size: 36px;
    }

    .register-card .register-profile-grid {
        grid-template-columns: repeat(2, minmax(220px, 220px));
        column-gap: 44px;
    }

    .register-card .register-profile-image-wrap,
    .register-card .register-profile-image {
        width: 220px;
        height: 220px;
        min-width: 220px;
        min-height: 220px;
        max-width: 220px;
        max-height: 220px;
    }

    .register-card .register-profile-label {
        font-size: 32px;
    }

    .register-card .register-profile-title {
        font-size: 36px;
    }

    .register-card .register-step-subtitle {
        font-size: 32px;
    }
}

@media (max-width: 768px) {
    .register-card .register-profile-grid {
        grid-template-columns: 1fr;
        justify-items: center;
        row-gap: 20px;
    }

    .register-card .register-step-title {
        font-size: 30px;
    }

    .register-card .register-profile-title {
        font-size: 30px;
        margin-bottom: 24px;
    }

    .register-card .register-profile-label {
        font-size: 28px;
    }

    .register-card .register-step-subtitle {
        font-size: 28px;
    }
}

/* ?? Telerik Wizard Overrides for Registration ?? */

/* Hide the "Step X of Y" pager text */
.register-card .k-wizard .k-wizard-pager {
    display: none;
}

/* Hide Next/Previous buttons on Step 0 (profile selection auto-advances) */
.register-card .k-wizard.register-wizard-step-0 .k-wizard-buttons {
    display: none;
}

/* Wizard buttons styling to match mockup */
.register-card .k-wizard .k-wizard-buttons {
    padding: 0.65rem 0 0;
    border-top: none;
}

.register-card .k-wizard .k-wizard-buttons .k-button {
    min-width: 112px;
    height: 42px;
    padding: 0 1.55rem;
    border-width: 1px;
    border-radius: 15px;
    font-size: 16px;
    font-weight: 500;
    font-family: var(--gr-font-sans);
}

/* "Prosegui" / "Concludi" primary button */
.register-card .k-wizard .k-wizard-buttons .k-button-solid-primary {
    background-color: var(--gr-primary) !important;
    border-color: var(--gr-primary) !important;
    color: #fff !important;
    background-image: none !important;
    box-shadow: none !important;
}

.register-card .k-wizard .k-wizard-buttons .k-button-solid-primary:hover,
.register-card .k-wizard .k-wizard-buttons .k-button-solid-primary:focus {
    background-color: var(--gr-primary-hover) !important;
    border-color: var(--gr-primary-hover) !important;
    color: #fff !important;
    background-image: none !important;
    box-shadow: none !important;
}

.register-card .k-wizard .k-wizard-buttons .k-button.k-button-solid-primary {
    background-color: var(--gr-primary) !important;
    border-color: var(--gr-primary) !important;
    color: #fff !important;
}

/* "Indietro" flat button */
.register-card .k-wizard .k-wizard-buttons .k-button-flat-base {
    background-color: transparent !important;
    border: 1px solid #97a6b9 !important;
    color: #6d7b8e !important;
}

.register-card .k-wizard .k-wizard-buttons .k-button-flat-base:hover,
.register-card .k-wizard .k-wizard-buttons .k-button-flat-base:focus {
    background-color: #eef3f8 !important;
    border-color: #8899ad !important;
    color: #526173 !important;
}

/* Remove the horizontal scrollbar that Telerik stepper can produce */
.register-card .k-wizard .k-stepper {
    overflow: hidden;
}

/* Soften the stepper connector line */
.register-card .k-wizard .k-step-connector {
    border-color: #cfd7e4;
}

/* ?? Telerik DropDownList / ComboBox styling ?? */

/* Telerik component styling � global, applies to all Blazor pages */
.k-picker,
.k-combobox,
.k-dropdownlist,
.k-textbox {
    border: 1px solid var(--gr-input-border);
    border-radius: var(--gr-radius-sm);
    background-color: #fff;
    height: 55px;
    box-shadow: none;
    width: 100%;
}

.k-picker:hover,
.k-combobox:hover,
.k-dropdownlist:hover,
.k-textbox:hover {
    border-color: var(--gr-input-border-hover);
    background-color: #fff;
}

.k-picker.k-focus,
.k-picker:focus-within,
.k-combobox.k-focus,
.k-combobox:focus-within,
.k-textbox.k-focus,
.k-textbox:focus-within {
    border-color: var(--gr-link);
    box-shadow: none;
}

/* Remove red invalid borders that appear by default */
.k-picker.k-invalid,
.k-combobox.k-invalid,
.k-textbox.k-invalid,
.k-dropdownlist.k-invalid {
    border-color: var(--gr-input-border);
    box-shadow: none;
}

/* Inner input text styling */
.k-input-inner {
    font-family: var(--gr-font-sans);
    font-size: 16px;
    line-height: 1.35;
    color: var(--gr-text);
    padding: 0.5rem 0.75rem;
}

.k-input-prefix,
.k-input-prefix > i {
    color: var(--gr-input-prefix);
    font-size: 18px;
    line-height: 1;
}

.k-input-prefix {
    padding-inline: 0.55rem 0.3rem;
}

.k-input-button::before {
    display: none;
}

.k-input-inner:focus-visible,
.k-input-button:focus-visible,
.k-clear-value:focus-visible,
.k-button-icon:focus-visible,
.k-input-prefix:focus-visible {
    outline: none !important;
}

/* Filter/search bar inside filterable DropDownList and ComboBox popups */
.k-list-filter {
    padding: 6px 8px;
    border-bottom: 1px solid #dde2ea;
    background-color: #f5f7fa;
}

.k-list-filter .k-searchbox,
.k-list-filter .k-textbox,
.k-list-filter .k-input {
    border: 1px solid var(--gr-input-border);
    border-radius: 8px;
    background-color: #fff;
    width: 100%;
    box-shadow: none;
    min-height: unset;
}

.k-list-filter .k-input-inner {
    font-size: 14px;
    padding: 0.35rem 0.65rem;
    height: auto !important;
}

/* Dropdown popup items � global, no parent selector required */
.k-list-item {
    font-family: var(--gr-font-sans);
    font-size: 15px;
    line-height: 1.4;
    color: var(--gr-text);
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #e5e9f0;
}

.k-list-item:last-child {
    border-bottom: none;
}

.k-list-item.k-hover:not(.k-selected),
.k-list-item:hover:not(.k-selected) {
    background-color: var(--gr-primary);
    color: #fff;
}

.k-list-item.k-selected {
    background-color: var(--gr-primary);
    color: #fff;
}

.k-list-item.k-selected.k-hover,
.k-list-item.k-selected:hover {
    background-color: var(--gr-primary-hover);
    color: #fff;
}

/* School option custom template */
.k-list-item .register-school-option {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.k-list-item .register-school-option-name {
    font-size: 16px;
    color: #243042;
}

.k-list-item .register-school-option-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    font-size: 13px;
    color: #5f6b7a;
}

.k-list-item .register-school-option-meta strong {
    color: #3e4a5c;
    font-weight: 600;
}

.k-list-item.k-hover .register-school-option-name,
.k-list-item:hover .register-school-option-name,
.k-list-item.k-selected .register-school-option-name {
    color: #fff;
}

.k-list-item.k-hover .register-school-option-meta,
.k-list-item:hover .register-school-option-meta,
.k-list-item.k-selected .register-school-option-meta {
    color: rgba(255, 255, 255, 0.9);
}

.k-list-item.k-hover .register-school-option-meta strong,
.k-list-item:hover .register-school-option-meta strong,
.k-list-item.k-selected .register-school-option-meta strong {
    color: #fff;
}

/* Checkbox alignment */
.register-card .form-check {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.register-card .k-checkbox {
    margin-top: 3px;
}

/* Fix horizontal scrollbar caused by wizard content overflow */
.register-card .k-wizard {
    overflow: hidden;
}

.register-card .k-wizard .k-wizard-content {
    overflow: visible !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    max-height: none !important;
    height: auto !important;
}

.register-card .k-wizard .k-wizard-step {
    overflow: visible !important;
    max-height: none !important;
    height: auto !important;
}

.register-card .k-wizard .k-wizard-steps {
    overflow: visible !important;
    max-height: none !important;
    height: auto !important;
}

.register-card .register-step {
    padding: 10px;
}

/* Telerik primary color override for all focused/selected states */
.register-card .k-stepper .k-step-done .k-step-indicator,
.register-card .k-stepper .k-step-current .k-step-indicator {
    background-color: #045ba9;
    border-color: #045ba9;
    color: #fff;
}

.register-card .k-stepper .k-step-done .k-step-label,
.register-card .k-stepper .k-step-current .k-step-label {
    color: #045ba9;
}

.register-card .k-stepper .k-step-done + .k-step-connector,
.register-card .k-stepper .k-step-done .k-step-connector {
    border-color: #045ba9;
}

/* Dropdown popup height - show more items */
.k-animation-container .k-list,
.k-animation-container .k-list-content {
    max-height: 360px !important;
}

@media (max-width: 640px) {
    .register-card {
        --register-pad-top: 20px;
        --register-pad-x: 14px;
        --register-pad-bottom: 14px;
        border: 1px solid var(--gr-identity-border);
        background: var(--gr-identity-surface);
    }
}

/* Altezza input nativi nelle pagine identity (allineata ai componenti Telerik a 55px) */
.identity-card input[type="text"],
.identity-card input[type="email"],
.identity-card input[type="password"],
.register-card input[type="text"],
.register-card input[type="email"],
.register-card input[type="password"] {
    height: 55px;
}

/* ═══════════════════════════════════════════════════════════════════
   GESTIONE ACCOUNT (ManageAccountPage Blazor)
   Ispirato ad Apple Account / Raffaello Scuola
   ═══════════════════════════════════════════════════════════════════ */

.manage-account {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem;
}

/* Layout a due colonne: sidebar + contenuto */
.manage-account-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 2.5rem;
    align-items: start;
}

/* ── Sidebar ── */

.manage-account-sidebar {
    position: sticky;
    top: 1rem;
    background: var(--gr-identity-surface);
    border: 1px solid var(--gr-identity-border-soft);
    border-radius: var(--gr-radius-sm);
    padding: 1.5rem;
}

.manage-account-user-header {
    text-align: center;
    margin-bottom: 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--gr-identity-border-soft);
}

.manage-account-avatar {
    font-size: 3.5rem;
    color: var(--gr-primary);
    margin-bottom: 0.5rem;
}

.manage-account-user-name {
    font-weight: 600;
    font-size: 1.1rem;
    line-height: 1.3;
}

.manage-account-user-email {
    font-size: 0.85rem;
    word-break: break-all;
}

.manage-account-nav {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.manage-avatar-img {
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: 50%;
}

.manage-account-nav-item {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0.65rem 0.85rem;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    font-size: 0.95rem;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.15s, color 0.15s;
}

.manage-account-nav-item:hover {
    background-color: var(--gr-nav-hover-bg);
}

.manage-account-nav-item.active {
    background-color: var(--gr-primary);
    color: #fff;
    font-weight: 500;
}

/* ── Contenuto principale ── */

.manage-account-content {
    min-width: 0;
}

/* ── Sezioni ── */

.manage-section {
    animation: manage-fade-in 0.2s ease;
}

@keyframes manage-fade-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

.manage-section-title {
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.manage-section-subtitle {
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}

/* ── Card generiche ── */

.manage-card {
    background: var(--gr-identity-surface);
    border: 1px solid var(--gr-identity-border-soft);
    border-radius: var(--gr-radius-sm);
    margin-bottom: 1.25rem;
    overflow: hidden;
}

.manage-card-danger {
    border-color: var(--gr-card-danger-border);
}

.manage-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--gr-identity-border-soft);
    background: var(--gr-card-header-bg);
}

.manage-card-header h5 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
}

.manage-card-danger .manage-card-header {
    background: var(--gr-card-header-danger-bg);
}

.manage-card-body {
    padding: 1.25rem;
}

/* Transizione morbida quando si entra/esce dalla modalita editing */
.manage-card-body > * {
    animation: manage-fade-in 0.3s ease-out;
}

@keyframes manage-fade-in {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Badge profilo coerente col design system */
.manage-badge-profilo {
    background-color: var(--gr-primary);
    color: #fff;
}

/* ── Campi in sola lettura ── */

.manage-field-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
}

.manage-field-label {
    display: block;
    font-size: 0.8rem;
    color: var(--gr-muted-text);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 0.15rem;
}

.manage-field-value {
    display: block;
    font-size: 0.95rem;
    font-weight: 500;
}

/* ── Scuole ── */

.manage-school-item {
    padding: 0.5rem 0;
}

.manage-school-item:first-child {
    padding-top: 0;
}

.manage-school-item:last-child {
    padding-bottom: 0;
}

.manage-school-separator {
    border: none;
    border-top: 1px solid var(--gr-identity-border-soft);
    margin: 0.75rem 0;
}

.manage-school-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.manage-school-materie {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.manage-school-edit-row {
    padding: 1rem;
    margin-bottom: 0.75rem;
    border: 1px solid var(--gr-separator);
    border-radius: var(--gr-radius-sm);
    background: var(--gr-card-header-bg);
}

.manage-school-edit-row:last-of-type {
    margin-bottom: 0;
}

/* Allinea l'altezza dei bottoni Rimuovi a quella delle select Telerik */
.manage-school-remove-btn {
    height: 55px;
    min-width: 110px;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* ── Consensi ── */

.manage-consent-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.manage-consent-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.manage-consent-readonly {
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--gr-separator);
}

.manage-consent-readonly:last-child {
    border-bottom: none;
}

.manage-consent-item i {
    font-size: 1.25rem;
    margin-top: 0.1rem;
    flex-shrink: 0;
}

/* ── Link documenti ── */

.manage-doc-link {
    display: flex;
    align-items: center;
    padding: 0.5rem 0;
    color: var(--gr-primary);
    text-decoration: none;
    font-weight: 500;
    transition: opacity 0.15s;
}

.manage-doc-link:hover {
    opacity: 0.8;
}

/* ── Responsive ── */

@media (max-width: 768px) {
    .manage-account-layout {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }

    .manage-account-sidebar {
        position: static;
    }

    .manage-account-user-header {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        text-align: left;
        margin-bottom: 1rem;
        padding-bottom: 1rem;
    }

    .manage-account-avatar {
        font-size: 2.5rem;
        margin-bottom: 0;
    }

    .manage-field-grid {
        grid-template-columns: 1fr;
    }
}
