/* Roboto (Apache 2.0), self-hosted. Same-origin only — CSP font-src/style-src is 'self'. */
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/roboto-latin-400-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('../fonts/roboto-latin-500-normal.woff2') format('woff2');
}
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/roboto-latin-700-normal.woff2') format('woff2');
}

:root {
    /*
     * Clinical Precision + Fintech Trust light scheme.
     * Primary is MediConCen Crimson (#CE0034). Surfaces use a crisp cool alabaster-to-white ramp.
     * Tertiary is Clinical Teal (#0D9488) for hospital and financial accents.
     * Success, warning, and error are high-contrast accessible container pairs.
     */
    --md-sys-color-primary: #CE0034;
    --md-sys-color-on-primary: #FFFFFF;
    --md-sys-color-primary-container: #FFE4E8;
    --md-sys-color-on-primary-container: #4C0519;
    --md-sys-color-primary-hover: #A3002C;
    --md-sys-color-primary-deep: #881337;
    --md-sys-color-primary-container-hover: #FECDD3;

    --md-sys-color-secondary: #475569;
    --md-sys-color-on-secondary: #FFFFFF;
    --md-sys-color-secondary-container: #F1F5F9;
    --md-sys-color-on-secondary-container: #0F172A;

    --md-sys-color-tertiary: #0D9488;
    --md-sys-color-on-tertiary: #FFFFFF;
    --md-sys-color-tertiary-container: #CCFBF1;
    --md-sys-color-on-tertiary-container: #134E4A;
    --md-sys-color-tertiary-hover: #0F766E;

    --md-sys-color-error: #DC2626;
    --md-sys-color-on-error: #FFFFFF;
    --md-sys-color-error-container: #FEE2E2;
    --md-sys-color-on-error-container: #7F1D1D;
    --md-sys-color-error-hover: #B91C1C;

    --md-sys-color-success: #059669;
    --md-sys-color-on-success: #FFFFFF;
    --md-sys-color-success-container: #D1FAE5;
    --md-sys-color-on-success-container: #064E3B;
    --md-sys-color-success-hover: #047857;

    --md-sys-color-warning: #D97706;
    --md-sys-color-on-warning: #FFFFFF;
    --md-sys-color-warning-container: #FEF3C7;
    --md-sys-color-on-warning-container: #78350F;
    --md-sys-color-warning-hover: #B45309;

    --md-sys-color-info: #2563EB;
    --md-sys-color-on-info: #FFFFFF;
    --md-sys-color-info-container: #DBEAFE;
    --md-sys-color-on-info-container: #1E3A8A;

    --md-sys-color-surface: #F8FAFC;
    --md-sys-color-surface-dim: #E2E8F0;
    --md-sys-color-surface-bright: #FFFFFF;
    --md-sys-color-surface-container-lowest: #FFFFFF;
    --md-sys-color-surface-container-low: #F1F5F9;
    --md-sys-color-surface-container: #E2E8F0;
    --md-sys-color-surface-container-high: #CBD5E1;
    --md-sys-color-surface-container-highest: #94A3B8;
    --md-sys-color-on-surface: #0F172A;
    --md-sys-color-on-surface-variant: #475569;
    --md-sys-color-outline: #64748B;
    --md-sys-color-outline-variant: #E2E8F0;
    --md-sys-color-inverse-surface: #0F172A;
    --md-sys-color-inverse-on-surface: #F8FAFC;
    --md-sys-color-surface-tint: #CE0034;
    --md-sys-color-shadow: #0F172A;

    /* Shape: fields 8px, cards 14px, buttons 10px / pill, dialogs 20px. */
    --md-sys-shape-corner-extra-small: 8px;
    --md-sys-shape-corner-small: 8px;
    --md-sys-shape-corner-medium: 14px;
    --md-sys-shape-corner-large: 16px;
    --md-sys-shape-corner-extra-large: 20px;
    --md-sys-shape-corner-button: 10px;
    --md-sys-shape-corner-full: 999px;

    /* Refined multi-layered crisp elevation shadows */
    --md-sys-elevation-1: 0 1px 3px 0 rgba(15, 23, 42, 0.06), 0 1px 2px -1px rgba(15, 23, 42, 0.04);
    --md-sys-elevation-2: 0 4px 12px -2px rgba(15, 23, 42, 0.08), 0 2px 6px -2px rgba(15, 23, 42, 0.04);
    --md-sys-elevation-3: 0 12px 28px -6px rgba(15, 23, 42, 0.14), 0 4px 10px -4px rgba(15, 23, 42, 0.06);

    /* Roboto type scale (title large, title medium, body medium, label large). */
    --md-sys-typescale-title-large-font: 'Roboto', system-ui, sans-serif;
    --md-sys-typescale-title-large-size: 1.375rem;
    --md-sys-typescale-title-large-line: 1.75rem;
    --md-sys-typescale-title-large-weight: 600;
    --md-sys-typescale-title-large-tracking: -0.015em;

    --md-sys-typescale-title-medium-font: 'Roboto', system-ui, sans-serif;
    --md-sys-typescale-title-medium-size: 1rem;
    --md-sys-typescale-title-medium-line: 1.5rem;
    --md-sys-typescale-title-medium-weight: 600;
    --md-sys-typescale-title-medium-tracking: -0.005em;

    --md-sys-typescale-body-medium-font: 'Roboto', system-ui, sans-serif;
    --md-sys-typescale-body-medium-size: 0.875rem;
    --md-sys-typescale-body-medium-line: 1.35rem;
    --md-sys-typescale-body-medium-weight: 400;
    --md-sys-typescale-body-medium-tracking: 0;

    --md-sys-typescale-label-large-font: 'Roboto', system-ui, sans-serif;
    --md-sys-typescale-label-large-size: 0.875rem;
    --md-sys-typescale-label-large-line: 1.25rem;
    --md-sys-typescale-label-large-weight: 600;
    --md-sys-typescale-label-large-tracking: 0.005em;

    /* Legacy aliases (older components) */
    --primary: var(--md-sys-color-primary);
    --secondary: var(--md-sys-color-secondary);

    /* Existing --mx-* names, now aliases of the roles above. */
    --mx-brand: var(--md-sys-color-primary);
    --mx-brand-hover: var(--md-sys-color-primary-hover);
    --mx-brand-deep: var(--md-sys-color-primary-deep);
    --mx-accent: var(--md-sys-color-tertiary);
    --mx-accent-hover: var(--md-sys-color-tertiary-hover);
    --mx-accent-soft: var(--md-sys-color-tertiary-container);
    --mx-accent-tint: color-mix(in srgb, var(--md-sys-color-tertiary) 14%, transparent);
    --mx-success: var(--md-sys-color-success);
    --mx-warning: var(--md-sys-color-warning);
    --mx-error: var(--md-sys-color-error);
    --mx-ink: var(--md-sys-color-on-surface);
    --mx-ink-deep: #020617;
    --mx-ink-navy: #0F172A;
    --mx-muted: var(--md-sys-color-on-surface-variant);
    --mx-muted-soft: var(--md-sys-color-outline);
    --mx-border: var(--md-sys-color-outline-variant);
    --mx-border-strong: #CBD5E1;
    --mx-surface: var(--md-sys-color-surface-container-low);
    --mx-surface-alt: var(--md-sys-color-surface);
    --mx-panel: var(--md-sys-color-surface-container-lowest);
    --mx-radius: var(--md-sys-shape-corner-medium);
    --mx-radius-lg: var(--md-sys-shape-corner-large);
    --mx-radius-sm: var(--md-sys-shape-corner-button);
    --mx-shadow: var(--md-sys-elevation-1);
    --mx-shadow-md: var(--md-sys-elevation-2);
    --mx-shadow-lg: var(--md-sys-elevation-3);
    --mx-font: 'Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --mx-font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
    --mx-font-letter: var(--mx-font);

    /* Module aliases so create / ticket / STP pages share one palette */
    --create-primary: var(--mx-brand);
    --create-accent: var(--mx-accent);
    --create-ink: var(--mx-ink);
    --create-muted: var(--mx-muted);
    --create-border: var(--mx-border);
    --log-primary: var(--mx-brand);
    --log-accent: var(--mx-accent);
    --log-ink: var(--mx-ink);
    --log-muted: var(--mx-muted);
    --log-surface: var(--mx-surface);
    --log-border: var(--mx-border);

    --bs-primary: var(--md-sys-color-primary);
    --bs-primary-rgb: 206, 0, 52;
    --bs-body-font-family: var(--mx-font);
    --bs-body-color: var(--md-sys-color-on-surface);
    --bs-body-bg: var(--md-sys-color-surface);
    --bs-border-color: var(--md-sys-color-outline-variant);
    --bs-border-radius: var(--md-sys-shape-corner-extra-small);
    --bs-link-color: var(--md-sys-color-tertiary);
    --bs-link-hover-color: var(--md-sys-color-tertiary-hover);
}

/* Shared page shell used by create-case / ticket-detail style layouts */
.mx-page-shell {
    background: var(--mx-panel);
    border: 1px solid var(--mx-border);
    border-radius: var(--mx-radius-lg);
    box-shadow: var(--mx-shadow);
    overflow: hidden;
    margin-top: 1rem;
}
.mx-page-hero {
    padding: 1.5rem 1.75rem;
    border-bottom: 1px solid var(--mx-border);
    background: linear-gradient(135deg, var(--md-sys-color-surface-container-lowest) 0%, var(--mx-surface) 100%);
    border-left: 4px solid var(--mx-brand);
}
.mx-page-title {
    font-family: var(--md-sys-typescale-title-large-font);
    font-size: var(--md-sys-typescale-title-large-size);
    font-weight: var(--md-sys-typescale-title-large-weight);
    line-height: var(--md-sys-typescale-title-large-line);
    letter-spacing: var(--md-sys-typescale-title-large-tracking);
    color: var(--mx-ink);
    margin: 0 0 .35rem;
}
.mx-page-sub {
    font-size: .9rem;
    color: var(--mx-muted);
    margin: 0;
    line-height: 1.55;
}
.mx-mono {
    font-family: var(--mx-font-mono);
    font-variant-numeric: tabular-nums;
}
.mx-icon-accent { color: var(--mx-accent); }
.mx-icon-brand { color: var(--mx-brand); }
.border-bottom {
    border-bottom: 1px solid var(--md-sys-color-outline-variant) !important;
}
.border-Top {
    border-bottom: 1px solid var(--md-sys-color-outline-variant) !important;
}
.form-error{
    color: var(--md-sys-color-error);
}

#centre-logo {
    position: fixed;
    width: 70px;
    height: 70px;
    padding-bottom: 10px;  
}

.animatePageIn {
    position: relative;
    -webkit-animation: animatePageIn 180ms cubic-bezier(0.22, 1, 0.36, 1) both;
    animation: animatePageIn 180ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
@-webkit-keyframes animatePageIn {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
@keyframes animatePageIn {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.main-wrapper{
    width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
button:focus:not(:focus-visible) {
    outline: 0;
    box-shadow: none !important;
}
/* Button & Link Effect */
.mc-btn-link{
	position: relative;
	z-index: 1;
	overflow: hidden;
    background-color: var(--md-sys-color-primary);
    border:none;
    height: 48px;
    color: var(--md-sys-color-on-primary);
    display: block;
}
.mc-btn-link:hover{
    background-color: var(--md-sys-color-primary-hover);
    border:none;
    color: var(--md-sys-color-on-primary);
}
.mc-btn-link:before, .mc-btn-link:after {
	position: absolute;
	top: 50%;
	content: '';
    width: 20px;
	height: 20px;
	background-color: var(--md-sys-color-primary-container);
	border-radius: 50%;
	z-index: -1;
}

.mc-btn-link:before {
	left: -20px;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}

.mc-btn-link:after {
	right: -20px;
	-webkit-transform: translate(50%, -50%);
	transform: translate(50%, -50%);
}

.mc-btn-link:hover:before {
	-webkit-animation: criss-cross-left 0.8s both;
	animation: criss-cross-left 0.8s both;
	-webkit-animation-direction: alternate;
	animation-direction: alternate;
}

.mc-btn-link:hover:after {
	-webkit-animation: criss-cross-right 0.8s both;
	animation: criss-cross-right 0.8s both;
	-webkit-animation-direction: alternate;
	animation-direction: alternate;
}

@-webkit-keyframes criss-cross-left {
	0% {
		left: -20px;
	}
	50% {
		left: 50%;
		width: 20px;
		height: 20px;
	}
	80% {
		left: 50%;
		width: 500px;
		height: 500px;
	}
}

@keyframes criss-cross-left {
	0% {
		left: -20px;
	}
	50% {
		left: 50%;
		width: 20px;
		height: 20px;
	}
	100% {
		left: 50%;
		width: 500px;
		height: 500px;
	}
}

@-webkit-keyframes criss-cross-right {
	0% {
		right: -20px;
	}
	50% {
		right: 50%;
		width: 20px;
		height: 20px;
	}
	100% {
		right: 50%;
		width: 500px;
		height: 500px;
	}
}

@keyframes criss-cross-right {
	0% {
		right: -20px;
	}
	50% {
		right: 50%;
		width: 20px;
		height: 20px;
	}
	100% {
		right: 50%;
		width: 500px;
		height: 500px;
	}
}
.wcc-btn.link-btn{
    height: 33px;
    display: inline-block;
    border-radius: 0.375rem;
    font-weight: 400;
}
/*Inner page btn and link effect*/
.wcc-btn {
	color: rgba(255, 255, 255, 1);
	-webkit-transition: all 0.5s;
	-moz-transition: all 0.5s;
	-o-transition: all 0.5s;
	transition: all 0.5s;
	position: relative;
	border: 1px solid rgba(255, 255, 255, 0.5);
	overflow: hidden;
    background-color: var(--md-sys-color-primary);
    padding: 5px 20px;
    font-size: 14px;
}
.wcc-btn:hover {
    background-color: var(--md-sys-color-primary);
    color: var(--md-sys-color-on-primary);
}
.wcc-btn:before, .wcc-btn:after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	-webkit-transition: all 0.5s;
	-moz-transition: all 0.5s;
	-o-transition: all 0.5s;
	transition: all 0.5s;
	opacity: 1;
	-webkit-transform: translate(-105%, 0);
	transform: translate(-105%, 0);
	border-right-width: 1px;
	border-right-style: solid;
	border-right-color: rgba(255, 255, 255, 1);
	background-color: rgba(255, 255, 255, 0.25);
}
.wcc-btn:after {
	-webkit-transition-delay: 0.2s;
	transition-delay: 0.2s;
}
.wcc-btn:hover:before, .wcc-btn:hover:after {
	opacity: 0;
	-webkit-transform: translate(0, 0);
	transform: translate(0, 0);
}
/* Button & Link Effect */

/* DataTable Custom — sort icons (DataTables 2.x)
   Unsorted sortable columns : both arrows dimly visible (indicates sortable)
   Actively sorted ASC       : up arrow only, accent colour
   Actively sorted DESC      : down arrow only, accent colour
*/

/* shared base for all sort pseudo-elements */
table.dataTable thead>tr>th span.dt-column-order:before,
table.dataTable thead>tr>th span.dt-column-order:after,
table.dataTable thead>tr>td span.dt-column-order:before,
table.dataTable thead>tr>td span.dt-column-order:after {
    position: absolute;
    display: block;
    left: 0;
    opacity: 0.22;
    color: var(--md-sys-color-outline);
    font-size: 12px;
    line-height: 9px;
}

/* up arrow */
table.dataTable thead>tr>th.dt-orderable-asc span.dt-column-order:before,
table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:before,
table.dataTable thead>tr>td.dt-orderable-asc span.dt-column-order:before,
table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:before {
    bottom: 55%;
    content: "\2191";
    content: "\2191" / "";
}

/* down arrow */
table.dataTable thead>tr>th.dt-orderable-desc span.dt-column-order:after,
table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:after,
table.dataTable thead>tr>td.dt-orderable-desc span.dt-column-order:after,
table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:after {
    top: 45%;
    content: "\2193";
    content: "\2193" / "";
}

/* Active ASC: up arrow bright, hide down arrow */
table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:before,
table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:before {
    opacity: 1 !important;
    color: var(--mx-accent) !important;
}
table.dataTable thead>tr>th.dt-ordering-asc span.dt-column-order:after,
table.dataTable thead>tr>td.dt-ordering-asc span.dt-column-order:after {
    display: none !important;
}

/* Active DESC: down arrow bright, hide up arrow */
table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:after,
table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:after {
    opacity: 1 !important;
    color: var(--mx-accent) !important;
}
table.dataTable thead>tr>th.dt-ordering-desc span.dt-column-order:before,
table.dataTable thead>tr>td.dt-ordering-desc span.dt-column-order:before {
    display: none !important;
}


/* Theme Colors*/
.mcc-p, .mcc-content{
    color: var(--md-sys-color-outline);
}
/* Theme Colors*/
/* Scroller */
.dt-container .dt-scroll-body::-webkit-scrollbar, .cc-notifications::-webkit-scrollbar{
	width: 5px;
	height: 5px;
}
.dt-container .dt-scroll-body::-webkit-scrollbar-track, .cc-notifications::-webkit-scrollbar-track {
	-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
	-webkit-border-radius: 10px;
	border-radius: 10px;
}
.dt-container .dt-scroll-body::-webkit-scrollbar-thumb, .cc-notifications::-webkit-scrollbar-thumb {
	-webkit-border-radius: 10px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.3);
	-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.5);
}
.dt-container .dt-scroll-body::-webkit-scrollbar-thumb:window-inactive, .cc-notifications::-webkit-scrollbar-thumb:window-inactive {
	background: rgba(255, 255, 255, 0.3);
}
.dt-container .dt-scroll-body::-webkit-input-placeholder, .cc-notifications::-webkit-input-placeholder {
	font-size: 14px;
}
.dt-container .dt-scroll-body:-moz-placeholder, .cc-notifications:-moz-placeholder { /* Firefox 18- */
	font-size: 14px;
}
.dt-container .dt-scroll-body::-moz-placeholder, .cc-notifications::-moz-placeholder {  /* Firefox 19+ */
	font-size: 14px;
}
.dt-container .dt-scroll-body:-ms-input-placeholder, .cc-notifications:-ms-input-placeholder {
	   font-size: 14px;
}
/* Scroller */

/* Custom Radio Button */
.cc-custom-checked [type="radio"]:checked,
.cc-custom-checked [type="radio"]:not(:checked) {
    position: absolute;
    left: -9999px;
}
.cc-custom-checked [type="radio"]:checked + label,
.cc-custom-checked [type="radio"]:not(:checked) + label
{
    position: relative;
    padding-left: 28px;
    cursor: pointer;
    line-height: 20px;
    display: inline-block;
    color: var(--md-sys-color-on-surface-variant);
}
.cc-custom-checked [type="radio"]:checked + label:before,
.cc-custom-checked [type="radio"]:not(:checked) + label:before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 19px;
    height: 19px;
    border: 1px solid var(--md-sys-color-outline-variant);
    border-radius: 100%;
    background: var(--md-sys-color-surface-container-lowest);
}
.cc-custom-checked [type="radio"]:checked + label:before{
    background-color: var(--md-sys-color-primary);
    border: 1px solid var(--md-sys-color-primary);
}
.cc-custom-checked [type="radio"]:checked + label:after,
.cc-custom-checked [type="radio"]:not(:checked) + label:after {
    content: '';
    width: 9px;
    height: 9px;
    background: var(--md-sys-color-on-primary);
    position: absolute;
    top: 5px;
    left: 5px;
    border-radius: 100%;
    -webkit-transition: all 0.2s ease;
    transition: all 0.2s ease;
}
.cc-custom-checked [type="radio"]:not(:checked) + label:after {
    opacity: 0;
    -webkit-transform: scale(0);
    transform: scale(0);
}
.cc-custom-checked [type="radio"]:checked + label:after {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
}
/* Custom Radio Button */


/* Back to Top */
#back-to-top {
    background: var(--md-sys-color-primary);
    color: var(--md-sys-color-on-primary);
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 1;
    display: none;
    text-align: center;
    border-radius: 10px;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -o-border-radius: 10px;
    height: 50px;
    width: 50px;
    line-height: 45px;
    background-repeat: no-repeat;
    background-position: center;
    transition: background-color 0.1s linear;
    -moz-transition: background-color 0.1s linear;
    -webkit-transition: background-color 0.1s linear;
    -o-transition: background-color 0.1s linear;
  }
  #back-to-top i {
    padding-top: 15px;
    font-size: 13px;
    position: relative;
    top: 3px;
  }
  #back-to-top:hover {
    background: var(--md-sys-color-surface-container-lowest);
    color: var(--primary);
    fill: var(--primary);
    border: 2px solid var(--primary);
  }
/* Back to Top */


.datepicker td, .datepicker th {
    text-align: center;
    width: 35px !important;
    height: 35px !important;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
    border: none;
    font-size: 14px !important;
}
@media only screen and (max-width: 767px){
    .wcc-btn.link-btn {
        height: 44px;
        display: inline-block;
        border-radius: 0.375rem;
        font-weight: 400;
        text-align: center;
        line-height: 2.2;
    }
}

.error {
    font-size: 13px !important;
    margin-top: 7px !important;
    color: var(--md-sys-color-error) !important;
    margin-bottom: 0 !important;
}