.btn-check:checked+.btn {
	background-color	: #006040!important;
	color				: white!important;
}	

.btn-check:hover+.btn {
	background-color	: #006040!important;
	color				: white!important;
}

.home_logo {
	width 				: 50vw;
	position			: absolute;
	top					: 50%;
	left				: 50%;
	transform			: translate(-50%, -50%);
	animation-name		: example;
	animation-duration  : 4s;
}

.home_logo_img {
	width				: 100%;
}

.home_logo_text {
	text-align			: center;
	color				: black;
}

.satisfapp-primary{
	background-color	: #A34DF3!important;
}

.sa-title {
	color: #59A8EA; 
}

.absolute {
	position			: absolute;
}

.login_wrapper {
	overflow			: hidden;
	display				: flex;
	flex-wrap			: wrap;
	position			: relative;
	border-radius		: 25px;
	z-index				: 1;
	top					: -30px;
	width				: 80%;
	margin				: auto;
	box-shadow			: 0 5px 30px 0 rgba(3,216,222,.2);
	-moz-box-shadow		: 0 5px 30px 0 rgba(3,216,222,.2);
	-webkit-box-shadow	: 0 5px 30px 0 rgba(3,216,222,.2);
	-o-box-shadow		: 0 5px 30px 0 rgba(3,216,222,.2);
	-ms-box-shadow		: 0 5px 30px 0 rgba(3,216,222,.2);		
}

.login_wrapper:hover .sfondo_login{
	left				: 0;
}

.sfondo_login {
	background-color	: #0066CC;

	position			: absolute;
	z-index				: -1;
	top					: 0px;
	right				: 0px;
	left				: 0px;
	bottom				: 0px;
}

.login_button:hover {
	cursor				: pointer!important;
}

.login_button {
	border-radius		: 25px;
	width				: 100%;
	height				: 60px;
	border				: none;
	display				: flex;
	justify-content		: center;
	background			: none;
	font-size			: 20px;
	padding				: 14px;
	font-weight: 600;
}

.bandiera_italiana {
	background: linear-gradient(to right, 
		#008C45  0%, #008C45  33%, 
		#F4F5F0 33%, #F4F5F0  66%, 
		#CD212A 66%, #CD212A 100%
	);
}

.prima_parte {
	position			: absolute;
	z-index				: 0;
	top					: 0px;
	left				: 30px;
	width				: 60px;
	height				: 40px;
}

.seconda_parte {
	position			: absolute;
	z-index				: 0;
	top					: 120px;
	left				: 30px;
	width				: 60px;
	bottom				: 0px;
}

.logo_login {
	position			: absolute;
	z-indez				: 0;
	top					: 45px;
	left				: 25px;
	width				: 70px;
	height				: 70px;
}
	
.mids-login-page {
    min-height: 100vh;
    background: #f5f6f8;
}

.mids-login-brand-column {
    background: #0066CC;
    color: #ffffff;
    min-height: 100vh;
    position: relative;
    overflow: hidden;
}

.mids-login-brand-content {
    position: relative;
    z-index: 2;
    max-width: 520px;
}

.mids-login-tricolore {
    display: flex;
    width: 120px;
    height: 6px;
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 2rem;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.15);
}

.mids-login-tricolore span {
    flex: 1;
    display: block;
}

.mids-login-tricolore-verde {
    background: #198754;
}

.mids-login-tricolore-bianco {
    background: #ffffff;
}

.mids-login-tricolore-rosso {
    background: #dc3545;
}

.mids-login-logo-area img {
    max-width: 140px;
    height: auto;
}

.mids-login-brand-title {
    font-size: 2rem;
    line-height: 1.2;
    font-weight: 600;
    margin-bottom: 1rem;
}

.mids-login-brand-subtitle {
    color: #ffffff;
}

.mids-login-brand-text {
    font-size: 1.05rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.88);
    margin-bottom: 0;
}

.mids-login-form-column {
    min-height: 100vh;
    background: #f5f6f8;
}

.mids-login-card {
    width: 100%;
    max-width: 460px;
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.08);
}

.mids-login-card .card-body {
    padding: 2rem;
}

.mids-login-card-title {
    font-size: 1.6rem;
    font-weight: 600;
    color: #212529;
    margin-bottom: 0.5rem;
}

.mids-login-card-text {
    color: #6c757d;
    margin-bottom: 1.5rem;
}

.mids-login-label {
    font-weight: 600;
    color: #343a40;
}

.mids-login-input {
    min-height: 48px;
    border-radius: 0.75rem;
}

.mids-login-check-label {
    color: #495057;
}

.mids-login-button {
    min-height: 48px;
    border-radius: 0.75rem;
    font-weight: 600;
    background-color: #0066CC;
    border-color: #0066CC;
}

.mids-login-button:hover,
.mids-login-button:focus {
    background-color: #0056ad;
    border-color: #0056ad;
}

.mids-login-link {
    color: #0066CC;
    text-decoration: none;
    font-weight: 500;
}

.mids-login-link:hover {
    text-decoration: underline;
}

.mids-login-note {
    font-size: 0.92rem;
    color: #6c757d;
    line-height: 1.5;
}

@media (max-width: 991.98px) {
    .mids-login-brand-column,
    .mids-login-form-column {
        min-height: auto;
    }

    .mids-login-brand-column {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .mids-login-card {
        margin-top: -1.5rem;
        margin-bottom: 2rem;
    }

    .mids-login-brand-title {
        font-size: 1.7rem;
    }
}	
.mids-dashboard-page {
    min-height: 100vh;
    background: #f5f6f8;
    padding: 2rem 0;
}

.mids-dashboard-header {
    margin-bottom: 2rem;
}

.mids-dashboard-header-content {
    background: #ffffff;
    border-radius: 1rem;
    padding: 2rem;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.05);
    border-top: 4px solid #0066CC;
}

.mids-dashboard-title {
    margin: 0 0 0.5rem 0;
    font-size: 2rem;
    font-weight: 600;
    color: #212529;
}

.mids-dashboard-subtitle {
    margin: 0;
    color: #6c757d;
    font-size: 1rem;
    line-height: 1.6;
}

.mids-dashboard-content {
    margin-bottom: 2rem;
}

.mids-dashboard-card {
    background: #ffffff;
    border-radius: 1rem;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.05);
    height: 100%;
}

.mids-dashboard-card-body {
    padding: 1.5rem;
}

.mids-dashboard-card-label {
    font-size: 0.9rem;
    font-weight: 600;
    color: #6c757d;
    margin-bottom: 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.mids-dashboard-card-value {
    font-size: 1.1rem;
    font-weight: 600;
    color: #212529;
    word-break: break-word;
}

.mids-dashboard-panel {
    background: #ffffff;
    border: 1px solid #d6e1ee;
    border-radius: 1rem;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.mids-dashboard-panel-header {
    padding: 1.25rem 1.5rem 0 1.5rem;
}

.mids-dashboard-panel-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: #212529;
}

.mids-dashboard-panel-body {
    padding: 1.5rem;
    color: #495057;
    line-height: 1.7;
}

.mids-form-surface {
    background: #f8fbff;
    border: 1px solid #d6e1ee;
    border-radius: 0.875rem;
    padding: 1.25rem;
}

.mids-form-surface .form-label {
    color: #183b63;
    font-weight: 500;
}

.mids-form-surface .form-control,
.mids-form-surface .form-select {
    min-height: 2.9rem;
    background: #ffffff;
    border: 1px solid #b7c8da;
    border-radius: 0.55rem;
    color: #1f2d3d;
    box-shadow: none;
}

.mids-form-surface textarea.form-control {
    min-height: 7rem;
}

.mids-form-surface .form-control:focus,
.mids-form-surface .form-select:focus {
    background: #ffffff;
    border-color: #0066cc;
    box-shadow: 0 0 0 0.2rem rgba(0, 102, 204, 0.12);
}

.mids-form-surface .form-control[readonly] {
    background: #eef4fb;
    color: #506273;
}

.mids-form-surface .form-check-label {
    color: #183b63;
    font-weight: 500;
}

.mids-dashboard-layout {
    min-height: 100vh;
    display: flex;
    background: #eef1f4;
}

.mids-dashboard-sidebar {
    width: 248px;
    flex: 0 0 248px;
    min-height: 100vh;
    background: #17324d;
    color: #ffffff;
    padding: 0.75rem;
    position: sticky;
    top: 0;
    align-self: flex-start;
    transition: width 0.2s ease, flex-basis 0.2s ease;
    overflow-x: hidden;
}

.mids-dashboard-sidebar-brand {
    padding: 0.25rem 0.25rem 1rem;
    min-height: 132px;
}

.mids-dashboard-sidebar-tricolore {
    display: flex;
    width: 88px;
    height: 4px;
    border-radius: 5px;
    overflow: hidden;
    margin-bottom: 0.75rem;
}

.mids-dashboard-sidebar-tricolore span {
    flex: 1;
}

.mids-dashboard-sidebar-tricolore-verde {
    background: #198754;
}

.mids-dashboard-sidebar-tricolore-bianco {
    background: #ffffff;
}

.mids-dashboard-sidebar-tricolore-rosso {
    background: #dc3545;
}

.mids-dashboard-sidebar-logo {
    width: 84px;
    height: auto;
    margin-bottom: 0.75rem;
}

.mids-dashboard-sidebar-logo-link {
    display: inline-block;
}

.mids-dashboard-sidebar-brand-title {
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.1;
}

.mids-dashboard-sidebar-brand-subtitle {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.85rem;
}

.mids-dashboard-sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.mids-dashboard-sidebar-link {
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0.75rem;
    border-radius: 8px;
    font-weight: 600;
    white-space: nowrap;
}

.mids-dashboard-sidebar-link:hover,
.mids-dashboard-sidebar-link.is-active {
    color: #ffffff;
    background: #0066cc;
    text-decoration: none;
}

.mids-dashboard-sidebar-icon {
    width: 20px;
    text-align: center;
}

.mids-dashboard-sidebar-section-title {
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    margin: 1rem 0 0.25rem;
    padding: 0 0.75rem;
}

.mids-dashboard-main {
    min-width: 0;
    flex: 1;
}

.mids-dashboard-topbar {
    min-height: 64px;
    background: #ffffff;
    border-bottom: 1px solid #d9e0e7;
    padding: 0.55rem 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.mids-dashboard-topbar-left,
.mids-dashboard-topbar-right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.mids-dashboard-menu-toggle {
    width: 40px;
    height: 40px;
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    background: #ffffff;
    color: #17324d;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.mids-dashboard-menu-toggle:hover,
.mids-dashboard-menu-toggle:focus {
    background: #f0f5fa;
    color: #0066cc;
}

.mids-dashboard-topbar-logo-link {
    display: inline-flex;
    align-items: center;
}

.mids-dashboard-topbar-logo {
    width: 42px;
    height: 42px;
    object-fit: contain;
}

.mids-dashboard-title-block {
    min-width: 0;
}

.mids-dashboard-topbar-title {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 600;
    color: #17324d;
    line-height: 1.2;
}

.mids-dashboard-topbar-subtitle {
    margin-top: 0.1rem;
    color: #5c6f82;
    font-size: 0.9rem;
}

.mids-dashboard-userbox {
    text-align: right;
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
}

.mids-dashboard-userbox-name {
    font-weight: 600;
    color: #17324d;
}

.mids-dashboard-userbox-role {
    color: #5c6f82;
    font-size: 0.85rem;
}

.mids-dashboard-logout-button {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border-radius: 8px;
    white-space: nowrap;
}

.mids-dashboard-content-area {
    padding: 1rem;
}

.mids-dashboard-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
}

.mids-dashboard-status-list {
    display: grid;
    gap: 0.75rem;
}

.mids-dashboard-status-list div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #d9e0e7;
}

.mids-dashboard-status-list div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.mids-dashboard-status-list span {
    color: #5c6f82;
}

.mids-dashboard-status-list strong {
    color: #17324d;
}

.mids-home-list {
    display: grid;
    gap: 0.75rem;
}

.mids-home-list-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem;
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    background: #ffffff;
}

.mids-home-list-item h3 {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: #17324d;
}

.mids-home-list-date {
    color: #5c6f82;
    font-size: 0.86rem;
    margin-top: 0.15rem;
}

.mids-home-action {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    background: #f6f8fa;
}

.mids-home-action i {
    color: #0066cc;
    font-size: 1.4rem;
}

.mids-home-action p {
    margin: 0.15rem 0 0;
    color: #5c6f82;
}

.mids-home-actions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1rem;
}

.mids-home-avvisi {
    display: grid;
    gap: 0.75rem;
}

.mids-home-avviso {
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
}

.mids-home-avviso-titlebar {
    background: #0066cc;
    color: #ffffff;
    font-weight: 600;
    padding: 0.45rem 0.7rem;
    line-height: 1.25;
}

.mids-home-avviso-row {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr) 72px;
    gap: 0.75rem;
    padding: 0.65rem 0.7rem;
    align-items: start;
}

.mids-home-avviso-datebox {
    color: #5c6f82;
    font-size: 0.86rem;
    white-space: nowrap;
    padding-top: 0.1rem;
}

.mids-home-avviso-body {
    min-width: 0;
}

.mids-home-avviso-text {
    color: #17324d;
    font-size: 0.92rem;
    line-height: 1.35;
}

.mids-home-avviso-text p {
    margin: 0;
}

.mids-home-avviso-files {
    display: grid;
    gap: 0.2rem;
    margin-top: 0.35rem;
}

.mids-home-avviso-files a {
    color: #6c757d;
    font-size: 0.8rem;
    text-decoration: none;
}

.mids-home-avviso-files a:hover {
    text-decoration: underline;
}

.mids-home-avviso-files i {
    margin-right: 0.25rem;
}

.mids-home-avviso-action {
    text-align: right;
}

.mids-quill-editor {
    min-height: 180px;
    background: #ffffff;
}

.mids-inline-form {
    min-width: 140px;
}

.mids-config-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.mids-config-tab {
    min-width: 180px;
    flex: 1 1 180px;
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    background: #f8fafc;
    padding: 0.75rem 0.9rem;
    text-decoration: none;
    color: #17324d;
}

.mids-config-tab:hover,
.mids-config-tab:focus,
.mids-config-tab.is-active {
    background: #0066cc;
    border-color: #0066cc;
    color: #ffffff;
    text-decoration: none;
}

.mids-config-tab-title {
    display: block;
    font-weight: 600;
    margin-bottom: 0.2rem;
}

.mids-config-tab small {
    display: block;
    line-height: 1.35;
}

.mids-posta-thread {
    display: grid;
    gap: 1rem;
}

.mids-posta-thread-header {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: start;
    flex-wrap: wrap;
}

.mids-posta-thread-title {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 600;
    color: #17324d;
}

.mids-posta-messages {
    display: grid;
    gap: 0.9rem;
}

.mids-posta-message {
    background: #ffffff;
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    padding: 0.85rem;
}

.mids-posta-message.is-own {
    background: #f2f8ff;
    border-color: #bfd7f4;
}

.mids-posta-message-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    font-size: 0.82rem;
    color: #5c6f82;
    margin-bottom: 0.45rem;
}

.mids-posta-message-body {
    color: #17324d;
    line-height: 1.45;
}

.mids-posta-message-body p:last-child {
    margin-bottom: 0;
}

.mids-posta-files {
    display: grid;
    gap: 0.25rem;
}

.mids-posta-files a {
    color: #6c757d;
    font-size: 0.84rem;
    text-decoration: none;
}

.mids-posta-files a:hover {
    text-decoration: underline;
}

.mids-dashboard-layout.is-sidebar-collapsed .mids-dashboard-sidebar {
    width: 76px;
    flex-basis: 76px;
}

.mids-dashboard-layout.is-sidebar-collapsed .mids-dashboard-sidebar-brand {
    min-height: 94px;
    padding-bottom: 0.75rem;
}

.mids-dashboard-layout.is-sidebar-collapsed .mids-dashboard-sidebar-tricolore,
.mids-dashboard-layout.is-sidebar-collapsed .mids-dashboard-sidebar-brand-text,
.mids-dashboard-layout.is-sidebar-collapsed .mids-dashboard-sidebar-link span,
.mids-dashboard-layout.is-sidebar-collapsed .mids-dashboard-sidebar-section-title {
    display: none;
}

.mids-dashboard-layout.is-sidebar-collapsed .mids-dashboard-sidebar-logo {
    width: 48px;
    margin-bottom: 0;
}

.mids-dashboard-layout.is-sidebar-collapsed .mids-dashboard-sidebar-link {
    justify-content: center;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

@media (max-width: 991.98px) {
    .mids-dashboard-layout {
        display: flex;
    }

    .mids-dashboard-sidebar {
        width: 76px;
        flex-basis: 76px;
        min-height: 100vh;
        position: sticky;
    }

    .mids-dashboard-sidebar-brand {
        min-height: 94px;
        padding-bottom: 0.75rem;
    }

    .mids-dashboard-sidebar-tricolore,
    .mids-dashboard-sidebar-brand-text,
    .mids-dashboard-sidebar-link span,
    .mids-dashboard-sidebar-section-title {
        display: none;
    }

    .mids-dashboard-sidebar-logo {
        width: 48px;
        margin-bottom: 0;
    }

    .mids-dashboard-sidebar-link {
        justify-content: center;
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }

    .mids-dashboard-layout.is-sidebar-collapsed .mids-dashboard-sidebar {
        width: 0;
        flex-basis: 0;
        padding-left: 0;
        padding-right: 0;
    }

    .mids-dashboard-topbar {
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .mids-dashboard-userbox {
        text-align: left;
    }

    .mids-dashboard-topbar-logo {
        width: 36px;
        height: 36px;
    }

    .mids-dashboard-topbar-right {
        margin-left: 52px;
        width: calc(100% - 52px);
        justify-content: space-between;
    }
}

@media (max-width: 575.98px) {
    .mids-dashboard-topbar-subtitle,
    .mids-dashboard-userbox-role {
        display: none;
    }

    .mids-dashboard-topbar-title {
        font-size: 1rem;
    }

    .mids-dashboard-logout-button span {
        display: none;
    }
}

.mids-dashboard-shell {
    min-height: 100vh;
    background: #eef1f4;
}

.mids-dashboard-shell > .mids-dashboard-topbar {
    min-height: 62px;
    background: #ffffff;
    border-bottom: 1px solid #d9e0e7;
    padding: 0.5rem 1rem;
    position: sticky;
    top: 0;
    z-index: 20;
}

.mids-dashboard-shell > .mids-dashboard-layout {
    min-height: calc(100vh - 62px);
    display: flex;
    align-items: stretch;
}

.mids-dashboard-shell .mids-dashboard-topbar-logo-link {
    color: #17324d;
    text-decoration: none;
    gap: 0.6rem;
    font-weight: 600;
}

.mids-dashboard-topbar-brand {
    font-size: 1.15rem;
    letter-spacing: 0;
}

.mids-dashboard-shell .mids-dashboard-sidebar {
    width: 270px;
    flex: 0 0 270px;
    min-height: calc(100vh - 62px);
    background: #ffffff;
    color: #17324d;
    border-right: 1px solid #d9e0e7;
    padding: 1rem 0.75rem;
    top: 62px;
}

.mids-dashboard-account-box {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem;
    margin-bottom: 1rem;
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    background: #f6f8fa;
}

.mids-dashboard-account-avatar {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border-radius: 8px;
    background: #0066cc;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}

.mids-dashboard-account-data {
    min-width: 0;
}

.mids-dashboard-account-name {
    color: #17324d;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mids-dashboard-account-email,
.mids-dashboard-account-role {
    color: #5c6f82;
    font-size: 0.82rem;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mids-dashboard-shell .mids-dashboard-sidebar-link {
    color: #17324d;
    padding: 0.7rem 0.75rem;
}

.mids-dashboard-shell .mids-dashboard-sidebar-link:hover,
.mids-dashboard-shell .mids-dashboard-sidebar-link.is-active {
    color: #ffffff;
    background: #0066cc;
}

.mids-dashboard-shell .mids-dashboard-main {
    flex: 1;
    min-width: 0;
    background: #eef1f4;
}

.mids-dashboard-page-heading {
    padding: 1rem 1rem 0;
}

.mids-dashboard-page-title {
    margin: 0;
    color: #17324d;
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.2;
}

.mids-dashboard-page-subtitle {
    color: #5c6f82;
    font-size: 0.92rem;
    margin-top: 0.15rem;
}

.mids-dashboard-shell.is-sidebar-collapsed .mids-dashboard-sidebar {
    width: 72px;
    flex-basis: 72px;
}

.mids-dashboard-shell.is-sidebar-collapsed .mids-dashboard-account-box {
    justify-content: center;
    padding: 0.5rem;
}

.mids-dashboard-shell.is-sidebar-collapsed .mids-dashboard-account-data,
.mids-dashboard-shell.is-sidebar-collapsed .mids-dashboard-sidebar-link span {
    display: none;
}

.mids-dashboard-shell.is-sidebar-collapsed .mids-dashboard-sidebar-link {
    justify-content: center;
}

@media (max-width: 991.98px) {
    .mids-dashboard-shell .mids-dashboard-sidebar {
        position: fixed;
        left: 0;
        bottom: 0;
        z-index: 15;
        box-shadow: 0.75rem 0 1.5rem rgba(0, 0, 0, 0.12);
    }

    .mids-dashboard-shell.is-sidebar-collapsed .mids-dashboard-sidebar {
        width: 0;
        flex-basis: 0;
        padding-left: 0;
        padding-right: 0;
        border-right: 0;
        overflow: hidden;
    }

    .mids-dashboard-shell .mids-dashboard-main {
        width: 100%;
    }

    .mids-dashboard-shell .mids-dashboard-topbar-right {
        width: auto;
        margin-left: 0;
    }
}

.mids-app-shell {
    min-height: 100vh;
    background: #eef1f4;
}

.mids-app-topbar {
    height: 64px;
    background: #0066CC;
    border-bottom: 1px solid #0056ad;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1rem;
    position: sticky;
    top: 0;
    z-index: 30;
}

.mids-app-topbar-left,
.mids-app-topbar-right {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.mids-app-menu-toggle {
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.mids-app-menu-toggle:hover,
.mids-app-menu-toggle:focus {
    background: rgba(255, 255, 255, 0.18);
    color: #ffffff;
}

.mids-app-logo-link {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
}

.mids-app-logo-link:hover {
    color: #ffffff;
    text-decoration: none;
}

.mids-app-logo {
    width: 44px;
    height: 44px;
    object-fit: contain;
    border-radius: 8px;
    background: #0b3d73;
    border: 1px solid rgba(255, 255, 255, 0.24);
    padding: 0.22rem;
}

.mids-app-logo-text {
    font-size: 1.15rem;
    letter-spacing: 0;
    white-space: nowrap;
}

.mids-app-home-button,
.mids-app-exit-button {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border-radius: 8px;
    border-width: 1px;
    border-style: solid;
    white-space: nowrap;
    font-weight: 600;
}

.mids-app-home-button {
    color: #ffffff !important;
    border-color: #ffffff !important;
}

.mids-app-exit-button {
    color: #ffffff;
    background: #dc3545;
    border-color: #ffffff;
}

.mids-app-home-button:hover,
.mids-app-home-button:focus {
    color: #ffffff;
}

.mids-app-exit-button:hover,
.mids-app-exit-button:focus {
    color: #ffffff;
    background: #bb2d3b;
    border-color: #bb2d3b;
}

.mids-app-body {
    min-height: calc(100vh - 64px);
    display: flex;
}

.mids-app-sidebar {
    width: 248px;
    flex: 0 0 248px;
    min-height: calc(100vh - 64px);
    background: #ffffff;
    border-right: 1px solid #d9e0e7;
    padding: 1rem 0.75rem;
    transition: width 0.2s ease, flex-basis 0.2s ease, padding 0.2s ease;
    overflow-x: hidden;
}

.mids-app-account {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: #f6f8fa;
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    padding: 0.75rem;
    margin-bottom: 1rem;
}

.mids-app-account-avatar {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 8px;
    background: #0066cc;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}

.mids-app-account-data {
    min-width: 0;
}

.mids-app-account-name {
    color: #17324d;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mids-app-account-email,
.mids-app-account-role {
    color: #5c6f82;
    font-size: 0.82rem;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mids-public-page {
    min-height: 100vh;
    background: #f2f6fb;
    color: #17324d;
}

.mids-public-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.5rem;
    background: #0056b3;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}

.mids-public-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.85rem;
    color: #ffffff;
    text-decoration: none;
    min-width: 0;
}

.mids-public-brand:hover,
.mids-public-brand:focus {
    color: #ffffff;
    text-decoration: none;
}

.mids-public-brand-logo {
    width: 50px;
    height: 50px;
    object-fit: contain;
    border-radius: 8px;
    background: #0b3d73;
    border: 1px solid rgba(255, 255, 255, 0.24);
    padding: 0.28rem;
    box-shadow: inset 0 0 0 1px rgba(11, 61, 115, 0.18);
}

.mids-public-brand span {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.2;
}

/* Public navigation: text links with an active underline and a quiet access action. */
.mids-public-nav { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.mids-public-nav a { position:relative; display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 14px; border:0; border-radius:6px; color:#e5edf7; background:transparent; text-decoration:none; font-weight:500; line-height:1.3; }
.mids-public-nav a:not(.mids-public-nav-button)::after { content:""; position:absolute; bottom:2px; left:14px; right:14px; height:2px; border-radius:2px; background:transparent; }
.mids-public-nav a:not(.mids-public-nav-button):hover { color:#fff; background:rgba(255,255,255,.06); text-decoration:none; }
.mids-public-nav a:not(.mids-public-nav-button).is-active { color:#fff; background:transparent; font-weight:700; }
.mids-public-nav a:not(.mids-public-nav-button).is-active::after { background:#fff; }
.mids-public-nav a:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.mids-public-nav a.mids-public-nav-button { margin-left:12px; padding:10px 18px; border:1px solid #a9c3df; border-radius:8px; background:transparent; color:#fff; font-weight:600; }
.mids-public-nav a.mids-public-nav-button:hover { background:#fff; border-color:#fff; color:#0b3d73; text-decoration:none; }
@media(max-width:575px) { .mids-public-nav { gap:4px; width:100%; } .mids-public-nav a { padding:10px; } .mids-public-nav a.mids-public-nav-button { margin-left:auto; padding:10px 12px; } }

.mids-public-hero {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(rgba(8, 34, 67, 0.72), rgba(8, 34, 67, 0.72)),
        url("/res/logo_box.png") center/220px no-repeat,
        #0c4d95;
}

.mids-public-hero-small {
    min-height: 360px;
}

.mids-public-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.18), transparent 32%),
        radial-gradient(circle at left center, rgba(255, 255, 255, 0.12), transparent 28%);
    pointer-events: none;
}

.mids-public-hero-inner {
    position: relative;
    max-width: 1280px;
    margin: 0 auto;
    padding: 4.5rem 1.5rem 4rem;
    color: #ffffff;
}

.mids-public-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: uppercase;
    color: #8fd0ff;
    margin-bottom: 0.85rem;
}

.mids-public-hero-title,
.mids-public-title {
    margin: 0;
    font-weight: 600;
    line-height: 1.1;
}

.mids-public-hero-title {
    max-width: 920px;
    font-size: clamp(2rem, 2.8vw, 3.4rem);
}

.mids-public-hero-text,
.mids-public-lead {
    max-width: 860px;
    margin: 1rem 0 0;
    font-size: 1.05rem;
    line-height: 1.7;
}

.mids-public-hero-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 1.75rem;
}

.mids-public-hero-meta {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
    color: rgba(255, 255, 255, 0.92);
}

.mids-public-hero-meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.95rem;
}

.mids-public-section {
    max-width: 1280px;
    margin: 0 auto;
    padding: 2rem 1.5rem 0;
}

.mids-public-band {
    padding-bottom: 0;
}

.mids-public-section-tight {
    padding-top: 1.5rem;
}

.mids-public-section-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.mids-public-section-head-inline {
    margin-bottom: 1rem;
}

.mids-public-lead {
    color: #52697f;
}

.mids-public-event-grid,
.mids-public-service-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem;
}

.mids-public-event-card,
.mids-public-service,
.mids-public-panel {
    background: #ffffff;
    border: 1px solid #dbe5ef;
    border-radius: 8px;
    box-shadow: 0 16px 32px rgba(12, 48, 84, 0.06);
}

.mids-public-event-card {
    grid-column: span 3;
    padding: 1rem;
    display: flex;
    flex-direction: column;
}

.mids-public-event-card h2,
.mids-public-event-card h3,
.mids-public-service h3,
.mids-public-panel h2 {
    margin: 0 0 0.65rem;
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.3;
}

.mids-public-event-card p,
.mids-public-service p {
    color: #52697f;
    line-height: 1.6;
}

.mids-public-event-action {
    margin-top: auto;
    align-self: flex-start;
}

.mids-public-event-card-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
    color: #17324d;
}

.mids-public-event-meta {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin: 1rem 0;
    color: #52697f;
    font-size: 0.95rem;
}

.mids-public-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    background: #e4f0fb;
    color: #0056b3;
    font-size: 0.78rem;
    font-weight: 600;
}

.mids-public-service {
    grid-column: span 4;
    padding: 1.15rem;
}

.mids-public-panel {
    padding: 1.25rem;
}

.mids-editor {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.mids-editor-toolbar {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.mids-editor-surface {
    min-height: 180px;
    overflow: auto;
    background: #ffffff;
}

.mids-editor-surface:focus {
    outline: none;
    box-shadow: none;
}

.mids-public-panel-fill {
    height: 100%;
}

.mids-public-results {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.mids-public-result-card {
    border: 1px solid #ebf0f5;
    border-radius: 8px;
    padding: 1rem;
    background: #f9fbfd;
}

.mids-public-info-list {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.mids-public-info-list > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid #ebf0f5;
}

.mids-public-info-list > div:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.mids-public-info-list strong {
    font-weight: 600;
}

.mids-public-info-list span {
    color: #52697f;
    text-align: right;
}

.mids-public-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.mids-public-list-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 0;
    border-bottom: 1px solid #ebf0f5;
}

.mids-public-list-item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.mids-public-list-sub {
    color: #52697f;
    margin-top: 0.35rem;
    line-height: 1.5;
}

.mids-public-list-simple {
    margin: 0;
    padding-left: 1.1rem;
    color: #52697f;
    line-height: 1.8;
}

.mids-public-table th {
    font-weight: 600;
    color: #17324d;
}

.mids-public-table td {
    color: #52697f;
}

.mids-public-sponsor-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem;
}

.mids-public-sponsor-card {
    grid-column: span 4;
    display: flex;
    flex-direction: column;
    border: 1px solid #dbe5ef;
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
    text-decoration: none;
    box-shadow: 0 16px 32px rgba(12, 48, 84, 0.06);
}

.mids-public-sponsor-card:hover,
.mids-public-sponsor-card:focus {
    text-decoration: none;
    transform: translateY(-2px);
}

.mids-public-sponsor-card img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    background: #eef3f8;
}

.mids-public-sponsor-body {
    padding: 1rem;
}

.mids-public-sponsor-body h3 {
    margin: 0 0 0.35rem;
    color: #17324d;
    font-size: 1.02rem;
    font-weight: 600;
}

.mids-public-sponsor-body p {
    margin: 0;
    color: #52697f;
    line-height: 1.55;
}

.mids-public-sponsor-date {
    margin-top: 0.75rem;
    color: #7b8ea2;
    font-size: 0.84rem;
}

@media (max-width: 1199.98px) {
    .mids-public-event-card {
        grid-column: span 6;
    }

    .mids-public-service {
        grid-column: span 12;
    }

    .mids-public-sponsor-card {
        grid-column: span 6;
    }
}

@media (max-width: 991.98px) {
    .mids-public-topbar {
        padding: 1rem;
    }

    .mids-public-brand {
        width: 100%;
    }

    .mids-public-nav {
        width: 100%;
        justify-content: flex-start;
    }

    .mids-public-hero-inner {
        padding: 3.2rem 1rem 3rem;
    }

    .mids-public-section {
        padding: 1.5rem 1rem 0;
    }
}

@media (max-width: 767.98px) {
    .mids-public-event-grid,
    .mids-public-service-grid,
    .mids-public-sponsor-grid {
        display: flex;
        flex-direction: column;
    }

    .mids-public-hero-title {
        font-size: 1.9rem;
    }

    .mids-public-hero-text,
    .mids-public-lead {
        font-size: 1rem;
    }

    .mids-public-info-list > div,
    .mids-public-list-item {
        flex-direction: column;
    }

    .mids-public-info-list span {
        text-align: left;
    }
}

.mids-app-menu {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.mids-app-menu-link {
    color: #17324d;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.72rem 0.75rem;
    border-radius: 8px;
    font-weight: 600;
    white-space: nowrap;
}

.mids-app-menu-link:hover:not(.is-active) {
    color: #17324d;
    background: #eef3f8;
    text-decoration: none;
}

.mids-app-menu-link.is-active,
.mids-app-menu-link.is-active:hover {
    color: #ffffff;
    background: #0066cc;
    text-decoration: none;
}

.mids-app-menu .mids-app-menu-link:focus:not(:focus-visible) {
    outline: none !important;
    box-shadow: none !important;
}

.mids-app-menu .mids-app-menu-link:focus-visible {
    outline: 2px solid #17324d !important;
    outline-offset: -2px !important;
    box-shadow: none !important;
}

.mids-app-menu .mids-app-menu-link.is-active:focus-visible {
    outline-color: #ffffff !important;
    outline-offset: -4px !important;
}

.mids-app-menu-icon {
    width: 20px;
    text-align: center;
}

.mids-app-menu-section {
    color: #5c6f82;
    font-size: 0.76rem;
    font-weight: 600;
    text-transform: uppercase;
    margin: 1rem 0 0.25rem;
    padding: 0 0.75rem;
}

.mids-desktop-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
}

.mids-modules-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.mids-desktop-tile,
.mids-module-card {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    min-height: 148px;
    padding: 1rem;
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    background: linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
    text-decoration: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.mids-module-card {
    height: 180px;
}

.mids-desktop-tile:hover,
.mids-desktop-tile:focus,
.mids-module-card:hover,
.mids-module-card:focus {
    transform: translateY(-2px);
    box-shadow: 0 0.6rem 1.4rem rgba(23, 50, 77, 0.08);
    border-color: #b8c9da;
    text-decoration: none;
}

.mids-desktop-tile-icon,
.mids-module-card-icon {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8f1fb;
    color: #0056b3;
    font-size: 1.1rem;
}

.mids-desktop-tile-body,
.mids-module-card-body {
    min-width: 0;
    flex: 1;
}

.mids-desktop-tile-body h3,
.mids-module-card-body h3 {
    margin: 0 0 0.35rem;
    color: #17324d;
    font-size: 1.04rem;
    font-weight: 600;
    line-height: 1.3;
}

.mids-desktop-tile-body p,
.mids-module-card-body p {
    margin: 0;
    color: #5c6f82;
    line-height: 1.55;
}

.mids-module-card-action {
    align-self: flex-end;
    color: #0056b3;
    font-size: 0.85rem;
    font-weight: 600;
    white-space: nowrap;
}

@media (max-width: 1199.98px) {
    .mids-modules-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .mids-modules-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .mids-modules-grid {
        grid-template-columns: 1fr;
    }
}

.mids-modules-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.mids-app-main {
    min-width: 0;
    flex: 1;
    background: #eef1f4;
}

.mids-app-page-heading {
    padding: 1rem 1rem 0;
}

.mids-app-page-heading-main {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.mids-app-page-title {
    margin: 0;
    color: #17324d;
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.2;
}

.mids-app-page-toolbar {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.mids-app-page-toolbar-button {
    width: 34px;
    height: 34px;
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    background: #ffffff;
    color: #0066cc;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.mids-app-page-toolbar-button:hover,
.mids-app-page-toolbar-button:focus {
    background: #0066cc;
    border-color: #0066cc;
    color: #ffffff;
    text-decoration: none;
}
.mids-app-help-button { position: relative; display: inline-flex; align-items: center; gap: .4rem; min-height: 34px; padding: .35rem .65rem; border: 1px solid rgba(255,255,255,.72); border-radius: 8px; color: #fff; font-weight: 500; text-decoration: none; }
.mids-app-help-button:hover, .mids-app-help-button:focus { background: #fff; color: #0066cc; text-decoration: none; }
.mids-app-help-badge { position: absolute; top: -8px; right: -8px; min-width: 18px; height: 18px; padding: 0 4px; border: 1px solid #fff; border-radius: 9px; background: #dc3545; color: #fff; font-size: .7rem; line-height: 16px; text-align: center; }
.mids-app-account-logout { display: flex; align-items: center; gap: .65rem; margin: .35rem .75rem 1rem; padding: .55rem .65rem; border: 1px solid #d9e0e7; border-radius: 6px; background: #f6f8fa; color: #17324d; font-size: .88rem; text-decoration: none; }
.mids-app-account-logout:hover, .mids-app-account-logout:focus { border-color: #0066cc; background: #e9f2ff; color: #0066cc; text-decoration: none; }
.mids-app-shell.is-menu-collapsed .mids-app-account-logout { justify-content: center; margin-left: .4rem; margin-right: .4rem; padding-left: .45rem; padding-right: .45rem; }
.mids-app-shell.is-menu-collapsed .mids-app-account-logout span { display: none; }

.mids-app-page-subtitle {
    color: #5c6f82;
    font-size: 0.92rem;
    margin-top: 0.15rem;
}

.mids-wizard-steps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.75rem;
}

.mids-wizard-step {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    background: #f8fafc;
    color: #5c6f82;
}

.mids-wizard-step span {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid #c7d4e0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    background: #ffffff;
    color: #17324d;
}

.mids-wizard-step strong {
    font-weight: 600;
}

.mids-wizard-step.is-active {
    border-color: #0066cc;
    background: #eaf3ff;
    color: #17324d;
}

.mids-wizard-step.is-active span,
.mids-wizard-step.is-complete span {
    background: #0066cc;
    border-color: #0066cc;
    color: #ffffff;
}

.mids-wizard-card-list {
    display: grid;
    gap: 1rem;
}

.mids-wizard-card {
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    background: #f9fbfd;
    padding: 1rem;
}

.mids-app-content .form-label,
.mids-app-content .col-form-label {
    color: #17324d;
    font-weight: 500;
    margin-bottom: 0.45rem;
}

.mids-app-content .form-text {
    color: #5c6f82;
}

.mids-app-content .form-control,
.mids-app-content .form-select,
.mids-app-content .form-control:disabled,
.mids-app-content .form-select:disabled {
    min-height: 46px;
    border: 1px solid #b8c6d6;
    border-radius: 8px;
    background: #f7fafc;
    color: #17324d;
    box-shadow: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.mids-app-content textarea.form-control {
    min-height: 120px;
    line-height: 1.55;
    resize: vertical;
}

.mids-app-content .form-control::placeholder,
.mids-app-content .form-select,
.mids-app-content input[type="date"],
.mids-app-content input[type="time"] {
    color: #5c6f82;
}

.mids-app-content .form-control:hover,
.mids-app-content .form-select:hover {
    border-color: #93a9c0;
    background: #ffffff;
}

.mids-app-content .form-control:focus,
.mids-app-content .form-select:focus,
.mids-app-content .form-check-input:focus {
    border-color: #2f78d3;
    background: #ffffff;
    box-shadow: 0 0 0 0.18rem rgba(47, 120, 211, 0.14);
}

.mids-app-content .form-check {
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 0;
}

.mids-app-content .form-check-input {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: 0;
    border: 1px solid #8ea4bb;
    background-color: #f7fafc;
    box-shadow: none;
}

.mids-app-content .form-check-input:checked {
    background-color: #0066cc;
    border-color: #0066cc;
}

.mids-app-content .form-check-input[type="checkbox"],
.mids-dashboard-panel .form-check-input[type="checkbox"] {
    appearance: auto;
    opacity: 1;
    margin-left: 0 !important;
    margin-right: .55rem !important;
    border: 2px solid #58718b !important;
    background-color: #ffffff !important;
    box-shadow: 0 0 0 1px rgba(23, 50, 77, 0.05);
}

.mids-app-content .form-check-input[type="checkbox"]:checked,
.mids-dashboard-panel .form-check-input[type="checkbox"]:checked {
    background-color: #0066cc !important;
    border-color: #0066cc !important;
}

.mids-ticket-status-actions { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.mids-ticket-status-actions form { margin: 0; }

.mids-app-content .form-check-label {
    color: #17324d;
    font-weight: 500;
}

.mids-app-content .input-group-text {
    min-height: 46px;
    border: 1px solid #b8c6d6;
    border-radius: 8px;
    background: #edf3f9;
    color: #17324d;
}

.mids-app-content .table .form-control,
.mids-app-content .table .form-select {
    min-height: 40px;
}

.mids-inline-row {
    padding: 0.8rem 0;
    border-top: 1px solid #e4ebf2;
}

.mids-inline-row:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.mids-wizard-summary-box {
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    padding: 1rem;
    background: #f9fbfd;
    height: 100%;
}

.mids-wizard-summary-box h3 {
    margin: 0 0 0.6rem;
    color: #17324d;
    font-size: 1.05rem;
    font-weight: 600;
}

.mids-wizard-summary-list {
    display: grid;
    gap: 0.65rem;
}

.mids-wizard-summary-list article,
.mids-payment-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid #d9e0e7;
    border-radius: 8px;
    background: #ffffff;
}

.mids-payment-box {
    flex-wrap: wrap;
}

@media (max-width: 991.98px) {
    .mids-wizard-steps {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 767.98px) {
    .mids-wizard-steps {
        grid-template-columns: 1fr;
    }

    .mids-wizard-summary-list article,
    .mids-payment-box {
        flex-direction: column;
        align-items: flex-start;
    }
}

.mids-app-content {
    padding: 1rem;
}

.mids-app-shell.is-menu-collapsed .mids-app-sidebar {
    width: 74px;
    flex-basis: 74px;
}

.mids-app-shell.is-menu-collapsed .mids-app-account {
    justify-content: center;
    padding: 0.5rem;
}

.mids-app-shell.is-menu-collapsed .mids-app-account-data,
.mids-app-shell.is-menu-collapsed .mids-app-menu-link span,
.mids-app-shell.is-menu-collapsed .mids-app-menu-section {
    display: none;
}

.mids-app-shell.is-menu-collapsed .mids-app-menu-link {
    justify-content: center;
}

@media (max-width: 991.98px) {
    .mids-app-sidebar {
        position: fixed;
        top: 64px;
        left: 0;
        bottom: 0;
        z-index: 25;
        box-shadow: 0.75rem 0 1.5rem rgba(0, 0, 0, 0.12);
    }

    .mids-app-shell.is-menu-collapsed .mids-app-sidebar {
        width: 0;
        flex-basis: 0;
        padding-left: 0;
        padding-right: 0;
        border-right: 0;
    }

    .mids-app-main {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .mids-app-home-button span,
    .mids-app-exit-button span {
        display: none;
    }

    .mids-app-logo-text {
        max-width: 180px;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}
/* Conversazione ticket: messaggi leggibili senza creare una pagina a riquadri annidati. */
.mids-ticket-thread { display: grid; gap: .75rem; }
.mids-ticket-message { border: 1px solid #d6e1ee; border-left: 4px solid #6b7c93; border-radius: 6px; background: #fff; padding: .85rem 1rem; }
.mids-ticket-message.admin { border-left-color: #0d6efd; }
.mids-ticket-message.sviluppo { border-left-color: #198754; }
.mids-bridge-secret { display: inline-block; max-width: 100%; overflow-wrap: anywhere; background: #fff; border: 1px solid #d5a327; border-radius: 4px; color: #24364b; padding: .55rem .7rem; font-size: 1rem; font-weight: 600; }
.mids-development-guide { display: grid; gap: 1rem; margin: 0; padding-left: 1.5rem; }
.mids-development-guide li { padding-left: .35rem; }
.mids-development-guide strong, .mids-development-guide span { display: block; }
.mids-development-guide span { color: #5c708a; margin-top: .2rem; }

/* Administrative navigation: four activity groups, one location per link. */
.mids-app-admin-group > summary { cursor: pointer; list-style: none; white-space: normal; }
.mids-app-admin-group > summary::-webkit-details-marker { display: none; }
.mids-app-admin-group > summary > span { flex: 1; min-width: 0; font-size: .9rem; }
.mids-app-admin-group > summary:focus-visible { outline: 2px solid #17324d; outline-offset: -2px; }
.mids-app-group-arrow { font-size: .65rem; transition: transform .15s; }
.mids-app-admin-group[open] > summary .mids-app-group-arrow { transform: rotate(180deg); }
.mids-app-admin-items { margin: .2rem 0 .65rem 1.35rem; padding-left: .5rem; border-left: 2px solid #d8e4ef; }
.mids-app-admin-items .mids-app-menu-link { white-space: normal; font-size: .88rem; padding: .55rem .65rem; }
.mids-app-shell.is-menu-collapsed .mids-app-admin-items,
.mids-app-shell.is-menu-collapsed .mids-app-group-arrow { display: none; }

/* Keep the assistance badge reachable on phone screens. */
@media (max-width: 575.98px) {
    .mids-app-help-button span { display: none; }
    .mids-app-topbar-left { min-width: 0; }
    .mids-app-topbar-right { flex-shrink: 0; margin-right: 6px; }
}


/* Status contrast is explicit: do not combine framework warning backgrounds with inherited text. */
.alert.alert-warning { background: #fff6dc; color: #513600; border-color: #dfbd65; }
.alert.alert-warning :is(h1,h2,h3,h4,p,strong,small,summary) { color: inherit; }
.alert.alert-warning a:not(.btn) { color: #674300; text-decoration: underline; }
.badge.bg-warning, .badge.text-bg-warning { background: #fff1c9 !important; color: #593900 !important; border: 1px solid #d9b75e; }
.badge.bg-info, .badge.text-bg-info { background: #e5f2ff !important; color: #174e7a !important; border: 1px solid #b0cce4; }
.btn.btn-warning { background: #ffdf87; border-color: #c29830; color: #392600; }
.btn.btn-warning:hover, .btn.btn-warning:focus-visible { background: #f5cd61; color: #281c00; border-color: #94701a; }

.mids-ticket-page { color: #24364b; padding-bottom: 64px; }
.mids-ticket-summary { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; margin:0 0 16px; }
.mids-ticket-summary-item { display:flex; flex-direction:column; align-items:flex-start; gap:5px; padding:17px; border:1px solid #cfdae6; border-radius:12px; background:#fff; color:#253b53; text-decoration:none; min-width:0; }
.mids-ticket-summary-item:hover { background:#f0f6fc; border-color:#7ca7ce; color:#123f6a; }
.mids-ticket-summary-item.is-active { background:#eaf3ff; border:2px solid #1b61a4; padding:16px; }
.mids-ticket-summary-label { font-size:.875rem; line-height:1.4; font-weight:600; }
.mids-ticket-summary-item strong { font-size:1.8rem; line-height:1.2; color:#164b7d; }
.mids-ticket-summary-note { color:#53657a; font-size:.8rem; }
.mids-ticket-search { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto; gap:10px; margin:16px 0 24px; }
.mids-ticket-search > * { min-width:0; }
.mids-ticket-list-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; padding-bottom:12px; border-bottom:1px solid #d4dfea; }
.mids-ticket-list-heading h2 { margin:0; color:#173e64; }
.mids-ticket-list-heading > span { color:#53657a; font-size:.875rem; white-space:nowrap; }
.mids-ticket-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; padding:22px 16px; border-bottom:1px solid #dce4ed; border-left:4px solid transparent; }
.mids-ticket-row.has-unread { border-left-color:#266bb2; background:#f8fbff; }
.mids-ticket-row:hover { background:#f1f6fb; }
.mids-ticket-row-main { min-width:0; }
.mids-ticket-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; color:#58697b; font-size:.8rem; margin-bottom:8px; }
.mids-ticket-state { font-weight:600; color:#344b63; }
.mids-ticket-row h3 { font-size:1.05rem; line-height:1.5; margin:0 0 10px; }
.mids-ticket-row h3 a { color:#183e63; text-decoration:none; overflow-wrap:anywhere; }
.mids-ticket-row h3 a:hover { text-decoration:underline; }
.mids-ticket-flags { display:flex; flex-wrap:wrap; gap:7px; }
.mids-ticket-pill { display:inline-flex; align-items:center; padding:5px 9px; border:1px solid transparent; border-radius:7px; font-size:.8rem; font-weight:600; line-height:1.4; white-space:normal; }
.mids-ticket-pill.pill-unread { background:#e4efff; color:#174b87; border-color:#b8d0ed; }
.mids-ticket-pill.pill-info { background:#e4f3f5; color:#155667; border-color:#acd2da; }
.mids-ticket-pill.pill-warning { background:#fff1c9; color:#593900; border-color:#d9b75e; }
.mids-ticket-updated { margin:10px 0 0; font-size:.8rem; color:#53657a; }
.mids-ticket-row-action .btn { min-height:42px; display:inline-flex; align-items:center; justify-content:center; font-size:.875rem; white-space:normal; }
.mids-ticket-list { margin-bottom:20px; }
.mids-ticket-empty { padding:36px 18px; text-align:center; color:#52677c; }
.mids-ticket-page .mids-ticket-message { padding:20px; margin-bottom:16px; border-color:#d4dfea; border-radius:10px; line-height:1.65; }
.mids-ticket-message-body { overflow-wrap:anywhere; margin-top:14px; }
.mids-ticket-page :is(a,button,input,select,textarea):focus-visible { outline:3px solid #2174b9; outline-offset:3px; }
@media(max-width:1199px) { .mids-ticket-summary { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:767px) {
 .mids-ticket-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .mids-ticket-summary-item { padding:13px; }.mids-ticket-summary-item.is-active { padding:12px; }
 .mids-ticket-search { grid-template-columns:minmax(0,1fr); }
 .mids-ticket-row { grid-template-columns:minmax(0,1fr); gap:14px; padding:18px 12px; }
 .mids-ticket-row-action .btn { width:100%; }
 .mids-ticket-page .mids-dashboard-panel-body { padding:16px; }
}

/* Communications administration: explicit spacing, independent of utility CSS. */
.mids-communications-admin{padding:20px;max-width:1200px;margin:0 auto}.mids-communications-admin .card.card-body{padding:24px;margin-bottom:20px;border:1px solid #d6e1eb;border-radius:14px;background:#fff}.mids-communications-admin h2{margin:0 0 18px}.mids-communications-admin p,.mids-communications-admin li{line-height:1.65}.mids-communications-admin ol{padding-left:24px}.mids-communications-admin label{display:block;margin-bottom:16px}.mids-comm-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:0 0 24px}.mids-comm-service{padding:22px;background:#fff;border:1px solid #cedde9;border-radius:14px;text-decoration:none;color:#173b57}.mids-comm-service strong,.mids-comm-service span{display:block}.mids-comm-service span{margin-top:8px;color:#536a7b;line-height:1.5}.mids-comm-service:hover{border-color:#0069b8;background:#f5faff}@media(max-width:575px){.mids-communications-admin{padding:12px}.mids-communications-admin .card.card-body{padding:18px}.mids-comm-services{grid-template-columns:1fr}}

.mids-smtp-wizard{max-width:none;margin:0;padding:0}
.mids-smtp-wizard>.row{margin:0;--bs-gutter-x:0;--bs-gutter-y:0}
.mids-smtp-wizard>.row>.col-12{padding:0;margin:0}
.mids-smtp-wizard .mids-dashboard-panel{margin:0;border-radius:10px;box-shadow:none}
.mids-smtp-wizard .mids-dashboard-panel-body{padding:16px;line-height:1.4}
.mids-smtp-wizard .mids-form-surface{padding:0;border:0;border-radius:0;background:transparent}
.mids-smtp-wizard .mids-provider-steps{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));gap:8px;align-items:center;margin:0 0 14px}
.mids-smtp-wizard .mids-provider-back{padding:8px 10px;color:#245881;white-space:nowrap}
.mids-smtp-wizard .mids-provider-step{padding:8px 12px;border:1px solid #d6e1ee;border-radius:6px;background:#fff;color:#536a7b;font-size:14px;line-height:1.4}
.mids-smtp-wizard .mids-provider-step.is-active{border-color:#0066cc;background:#e9f2ff;color:#0057ad;font-weight:600}
.mids-smtp-wizard form.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:0}
.mids-smtp-wizard form.row>div{margin:0;padding:0}
.mids-smtp-wizard form.row>.col-12{width:auto;grid-column:1/-1}
.mids-smtp-wizard form.row>.col-md-6,.mids-smtp-wizard form.row>.col-md-4,.mids-smtp-wizard form.row>.col-md-8{grid-column:auto}
.mids-smtp-wizard .form-label{display:block;margin:0 0 4px;font-weight:600;font-size:14px;line-height:1.4}
.mids-smtp-wizard .form-control,.mids-smtp-wizard .form-select{min-height:38px;padding:7px 10px;font-size:14px}
.mids-smtp-wizard .form-check{display:flex;align-items:flex-start;gap:10px;padding:6px 0;margin:0;border:0;background:transparent}
.mids-smtp-wizard .form-check-label::before,.mids-smtp-wizard .form-check-label::after{display:none!important}
.mids-smtp-wizard .form-check>.form-check-input{position:static!important;inset:auto!important;float:none;appearance:auto!important;opacity:1!important;clip:auto!important;transform:none!important;margin:1px 0 0!important;flex:0 0 18px!important;width:18px;height:18px}
.mids-smtp-wizard .form-check>.form-check-label{margin:0!important;padding:0!important;line-height:1.4!important;height:auto!important;flex:1!important;font-weight:500;font-size:14px}
.mids-smtp-wizard .btn{padding:9px 16px;min-height:40px;border-radius:7px;font-size:14px}
.mids-smtp-wizard [hidden]{display:none!important}
@media(max-width:575px){.mids-smtp-wizard .mids-dashboard-panel-body{padding:12px}.mids-smtp-wizard form.row{grid-template-columns:1fr;gap:12px}.mids-smtp-wizard .mids-provider-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mids-smtp-wizard .mids-provider-back{grid-column:1/-1;padding:0 0 4px}.mids-smtp-wizard .mids-provider-step{padding:7px;font-size:12px}.mids-smtp-wizard .btn{min-height:44px}}

/* Ticket state and explicit bulk closure receipts */
.mids-ticket-status-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px;padding:18px;margin:16px 0 24px;background:#f4f7fb;border:1px solid #dce4ed;border-radius:12px}
.mids-ticket-status-form>div{flex:0 1 290px;min-width:200px}.mids-ticket-status-form label{display:block;font-weight:600;margin-bottom:8px}.mids-ticket-status-form .form-select{width:100%;margin:0}.mids-ticket-status-form .btn{white-space:nowrap;margin:0}.mids-ticket-status-form p,.mids-ticket-bulk p{flex-basis:100%;font-size:14px;color:#526275;margin:0}
.mids-ticket-bulk{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:16px;margin:12px 0;background:#f4f7fb;border:1px solid #dce4ed;border-radius:12px}.mids-ticket-bulk label,.mids-ticket-select{display:flex;align-items:center;gap:8px;margin:0;cursor:pointer}.mids-ticket-bulk input,.mids-ticket-select input{position:static!important;opacity:1!important;appearance:auto!important;width:18px!important;height:18px!important;margin:0!important;flex-shrink:0}.mids-ticket-row-action{display:flex;flex-direction:column;gap:12px;align-items:flex-end}.mids-ticket-select{font-size:14px}.mids-ticket-bulk .btn{margin:0}
@media(max-width:575px){.mids-ticket-status-form>div{flex:1 1 100%}.mids-ticket-status-form .btn{width:100%}.mids-ticket-row-action{align-items:flex-start}}

@media(max-width:575px) {
    .mids-public-topbar { flex-direction:column; align-items:stretch; gap:12px; padding:16px; }
    .mids-public-brand { max-width:100%; }
    .mids-public-nav { justify-content:space-between; gap:2px; }
    .mids-public-nav a { padding:10px 7px; font-size:14px; }
    .mids-public-nav a.mids-public-nav-button { margin-left:4px; padding:10px; }
    .mids-public-nav a:not(.mids-public-nav-button)::after { left:7px; right:7px; }
}
/* Configuration cards: explicit descendant contrast, distinct hover and selection. */
.mids-config-tabs .mids-config-tab:hover,
.mids-config-tabs .mids-config-tab:focus-visible {
    background: #eaf2fb;
    border-color: #0066cc;
    color: #17324d;
}
.mids-config-tabs .mids-config-tab.is-active,
.mids-config-tabs .mids-config-tab.is-active:hover,
.mids-config-tabs .mids-config-tab.is-active:focus-visible {
    background: #0059b3;
    border-color: #0059b3;
    color: #ffffff;
}
.mids-config-tabs .mids-config-tab .mids-config-tab-title,
.mids-config-tabs .mids-config-tab small {
    color: inherit;
    opacity: 1;
}
.mids-config-tabs .mids-config-tab:focus-visible {
    outline: 3px solid #17324d;
    outline-offset: 3px;
}
