/* CSS MediQ - disusun ikut bahagian supaya senang cari dan ubah */
body{

     margin:0;
    padding:0;
    font-family: 'Segoe UI', sans-serif;
    background:#ffffff;
}

a{
    text-decoration:none;
}

/* =========================
LATAR BELAKANG HALAMAN UTAMA
========================= */
.index-page {
    min-height: 100vh;

    background-image:
        linear-gradient(
            rgba(235, 250, 255, 0.65),
            rgba(235, 250, 255, 0.65)
        ),
        url('https://static.vecteezy.com/system/resources/previews/023/417/428/large_2x/healthcare-and-medical-innovation-background-with-dots-and-lines-molecular-structure-and-hospital-cross-illustration-vector.jpg');

    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

/* ======================================================
HALAMAN DAFTAR PESAKIT
====================================================== */

.register-page {
    min-height: 100vh;
    padding: 35px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(
            rgba(13, 49, 95, .62),
            rgba(13, 49, 95, .62)
        ),
        url('images/klinik remedic.jpg')
        center / cover fixed no-repeat;
    color: #172033;
    font-family: 'Segoe UI', sans-serif;
}

.register-page * {
    box-sizing: border-box;
}

.register-page a {
    text-decoration: none;
}

.register-container {
    width: min(100%, 930px);
}

.register-card {
    overflow: hidden;
    border-radius: 24px;
    display: grid;
    grid-template-columns: 320px 1fr;
    background: rgba(255, 255, 255, .98);
    box-shadow:
        0 25px 70px
        rgba(0, 0, 0, .28);
}

/* LEFT PANEL */

.register-side-panel {
    position: relative;
    padding: 42px 32px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background:
        linear-gradient(
            145deg,
            #2563eb,
            #1749de
        );
    color: #ffffff;
}

.register-brand {
    display: flex;
    align-items: center;
    gap: 11px;
}

.register-brand-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .16);
    font-size: 21px;
}

.register-brand h2 {
    margin: 0;
    font-size: 22px;
    font-weight: 750;
}

.register-side-content {
    margin: 65px 0;
}

.register-side-content h1 {
    margin: 0 0 13px;
    font-size: 31px;
    line-height: 1.2;
    font-weight: 750;
}

.register-side-content p {
    margin: 0;
    color: rgba(255, 255, 255, .82);
    font-size: 13px;
    line-height: 1.7;
}

.register-benefits {
    margin-top: 25px;
    display: grid;
    gap: 13px;
}

.register-benefit {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 12px;
}

.register-benefit i {
    width: 25px;
    height: 25px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .16);
    font-size: 10px;
}

.register-side-footer {
    color: rgba(255, 255, 255, .72);
    font-size: 10px;
}

/* FORM PANEL */

.register-form-panel {
    padding: 36px 40px;
}

.register-form-heading {
    margin-bottom: 23px;
}

.register-form-heading h2 {
    margin: 0;
    font-size: 25px;
    font-weight: 750;
}

.register-form-heading p {
    margin: 7px 0 0;
    color: #6f7a8d;
    font-size: 12px;
}

.register-alert {
    margin-bottom: 18px;
    padding: 12px 14px;
    border: 1px solid #fecaca;
    border-radius: 11px;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    background: #fef2f2;
    color: #b91c1c;
    font-size: 12px;
}

.register-form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.register-full-field {
    grid-column: 1 / -1;
}

.register-field label {
    display: block;
    margin-bottom: 7px;
    color: #3f4b5e;
    font-size: 11px;
    font-weight: 650;
}

.required-symbol {
    color: #dc3545;
}

.register-input {
    min-height: 47px;
    padding: 0 13px;
    border: 1px solid #d9e0ea;
    border-radius: 11px;
    display: flex;
    align-items: center;
    gap: 9px;
    background: #ffffff;
    transition: .2s;
}

.register-input:focus-within {
    border-color: #2563eb;
    box-shadow:
        0 0 0 4px
        rgba(37, 99, 235, .09);
}

.register-input > i {
    width: 17px;
    color: #7f8a9b;
    text-align: center;
}

.register-input input,
.register-input select {
    width: 100%;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    color: #172033;
    font-size: 12px;
}

.register-textarea {
    padding: 11px 13px;
    align-items: flex-start;
}

.register-textarea i {
    margin-top: 4px;
}

.register-textarea textarea {
    width: 100%;
    min-height: 83px;
    border: none;
    outline: none;
    resize: vertical;
    background: transparent;
    color: #172033;
    font-size: 12px;
}

.password-button {
    border: none;
    background: transparent;
    color: #7f8a9b;
    cursor: pointer;
}

.field-error {
    min-height: 17px;
    margin-top: 4px;
    color: #dc3545;
    font-size: 10px;
}

.register-role-card {
    min-height: 47px;
    padding: 0 14px;
    border: 1px solid #cfe0ff;
    border-radius: 11px;
    display: flex;
    align-items: center;
    gap: 9px;
    background: #edf4ff;
    color: #2463f5;
    font-size: 12px;
    font-weight: 650;
}

.register-submit {
    width: 100%;
    min-height: 49px;
    margin-top: 7px;
    border: none;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background:
        linear-gradient(
            135deg,
            #2563eb,
            #1749de
        );
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: .2s;
}

.register-submit:hover {
    transform: translateY(-2px);
    box-shadow:
        0 10px 20px
        rgba(37, 99, 235, .23);
}

.register-login-text {
    margin: 19px 0 0;
    text-align: center;
    color: #6f7a8d;
    font-size: 12px;
}

.register-login-text a {
    color: #2563eb;
    font-weight: 700;
}

.register-home-link {
    margin-top: 13px;
    display: block;
    color: #7b8697;
    text-align: center;
    font-size: 11px;
}

.register-home-link:hover {
    color: #2563eb;
}

/* RESPONSIVE */

@media (max-width: 820px) {

    .register-card {
        grid-template-columns: 1fr;
    }

    .register-side-panel {
        min-height: auto;
        padding: 28px;
    }

    .register-side-content {
        margin: 35px 0 20px;
    }

    .register-side-content h1 {
        font-size: 25px;
    }

    .register-side-footer {
        display: none;
    }
}

@media (max-width: 570px) {

    .register-page {
        padding: 15px 10px;
        align-items: flex-start;
    }

    .register-form-panel {
        padding: 28px 20px;
    }

    .register-form-grid {
        grid-template-columns: 1fr;
    }

    .register-full-field {
        grid-column: auto;
    }

    .register-side-panel {
        padding: 24px 20px;
    }
}

/* ======================================================
HALAMAN LOGIN
====================================================== */

.login-page {
    min-height: 100vh;
    margin: 0;
    background:
        linear-gradient(
            rgba(15, 45, 90, .55),
            rgba(15, 45, 90, .55)
        ),
        url('images/klinik remedik.jpg')
        center / cover no-repeat;
    font-family: 'Segoe UI', sans-serif;
}

.login-wrapper {
    min-height: 100vh;
    padding: 30px 15px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.login-card {
    width: 100%;
    max-width: 430px;
    padding: 38px;
    border-radius: 22px;
    background: rgba(255, 255, 255, .97);
    box-shadow:
        0 20px 50px
        rgba(0, 0, 0, .24);
}

.login-logo {
    width: 66px;
    height: 66px;
    margin: 0 auto 14px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(
            135deg,
            #2563eb,
            #0ea5e9
        );
    color: #ffffff;
    font-size: 27px;
}

.login-card h1 {
    margin: 0;
    color: #172033;
    text-align: center;
    font-size: 28px;
    font-weight: 750;
}

.login-subtitle {
    margin: 7px 0 24px;
    color: #6b7280;
    text-align: center;
    font-size: 13px;
}

.login-error {
    margin-bottom: 17px;
    padding: 12px 14px;
    border: 1px solid #fecaca;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fef2f2;
    color: #b91c1c;
    font-size: 13px;
}

.login-field {
    margin-bottom: 16px;
}

.login-field label {
    display: block;
    margin-bottom: 7px;
    color: #374151;
    font-size: 13px;
    font-weight: 650;
}

.login-input-wrapper {
    min-height: 48px;
    padding: 0 13px;
    border: 1px solid #d8dfeb;
    border-radius: 11px;
    display: flex;
    align-items: center;
    gap: 10px;
    background: #ffffff;
    transition: .2s;
}

.login-input-wrapper:focus-within {
    border-color: #2563eb;
    box-shadow:
        0 0 0 4px
        rgba(37, 99, 235, .1);
}

.login-input-wrapper > i {
    color: #7b8798;
}

.login-input-wrapper input {
    width: 100%;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    color: #172033;
    font-size: 14px;
}

.login-password-toggle {
    border: none;
    background: transparent;
    color: #7b8798;
    cursor: pointer;
}

.login-submit {
    width: 100%;
    min-height: 48px;
    margin-top: 5px;
    border: none;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background:
        linear-gradient(
            135deg,
            #2563eb,
            #1d4ed8
        );
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: .2s;
}

.login-submit:hover {
    transform: translateY(-2px);
    box-shadow:
        0 10px 20px
        rgba(37, 99, 235, .25);
}

.login-footer {
    margin-top: 20px;
    text-align: center;
    color: #6b7280;
    font-size: 13px;
}

.login-footer a {
    margin-left: 4px;
    color: #2563eb;
    font-weight: 700;
    text-decoration: none;
}

.login-home-link {
    margin-top: 16px;
    display: block;
    color: #64748b;
    text-align: center;
    text-decoration: none;
    font-size: 12px;
}

.login-home-link:hover {
    color: #2563eb;
}

@media (max-width: 500px) {

    .login-card {
        padding: 28px 22px;
    }
}


/* =========================
BAHAGIAN NAVIGASI
========================= */

.navbar{
    padding:15px 0;
}


.navbar-brand{
    font-size:25px;
    letter-spacing:1px;
}


.nav-link{
    font-size:16px;
    margin-left:15px;
    transition:0.3s;
}


.nav-link:hover{
    color:#dff6ff !important;
    transform:translateY(-2px);
}



/* =========================
   HERO SECTION
========================= */

.hero{

    min-height:600px;
    display:flex;
    align-items:center;

    background:
    linear-gradient(
        rgba(255,255,255,0.45),
        rgba(255,255,255,0.45)
    );

}


.hero h1{

    color:#0d6efd;
    font-size:55px;

}


.hero p{

    color:#555;
    font-size:20px;
    line-height:1.7;

}



.hero img{

    animation:float 3s infinite ease-in-out;

}



@keyframes float{

    0%{
        transform:translateY(0px);
    }


    50%{
        transform:translateY(-20px);
    }


    100%{
        transform:translateY(0px);
    }

}



/* =========================
   BUTTON
========================= */


.btn{

    border-radius:30px;
    padding:12px 30px;
    font-weight:600;

}


.btn:hover{

    transform:scale(1.05);
    transition:0.3s;

}




/* =========================
   SERVICE CARD
========================= */


.feature-card{

    border:none;
    border-radius:20px;

    box-shadow:
    0 5px 20px rgba(0,0,0,0.1);

    transition:0.3s;

}



.feature-card:hover{

    transform:translateY(-10px);

    box-shadow:
    0 15px 30px rgba(0,0,0,0.15);

}



.feature-card i{

    margin-top:10px;

}



.feature-card h4{

    font-weight:700;
    margin-bottom:15px;

}



.feature-card p{

    color:#666;

}



/* =========================
   FOOTER
========================= */


footer{

    background:
    linear-gradient(
    135deg,
    #0d6efd,
    #003d99
    );

}


footer h5{

    font-weight:700;

}


footer p{

    opacity:0.9;

}



/* =========================
   RESPONSIVE
========================= */


@media(max-width:768px){


.hero h1{

    font-size:40px;

}


.hero{

    text-align:center;

}


.hero img{

    margin-top:40px;

}

}

/* ==========================
   Patient dashboard
========================== */

.patient-dashboard-page {
    background: linear-gradient(135deg, #eef7ff, #effff8) !important;
    min-height: 100vh;
}

.patient-header {
    background: white;
    border-top: 7px solid #292929;
    padding: 15px 0;
    box-shadow: 0 2px 10px rgba(0,0,0,.1);
}

.patient-header-content {
    width: 90%;
    max-width: 1340px;
    margin: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.patient-user-area {
    display: flex;
    align-items: center;
    gap: 12px;
}

.patient-user-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #2463f5;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
}

.patient-user-area h1 {
    font-size: 18px;
    margin: 0;
}

.patient-user-area p {
    margin: 0;
    font-size: 12px;
    color: #697386;
}

.patient-dashboard-container {
    width: 760px;
    max-width: calc(100% - 30px);
    margin: 26px auto 50px;
}

.patient-main-queue-card {
    background: linear-gradient(135deg, #2463f5, #1749de);
    color: white;
    border-radius: 15px;
    padding: 28px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.patient-queue-left h2 {
    font-size: 52px;
    margin: 8px 0;
}

.patient-queue-right {
    text-align: right;
}

.patient-queue-right h3 {
    font-size: 40px;
}

.patient-menu-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin-top: 27px;
}

.patient-action-card {
    background: white;
    color: #172033;
    padding: 22px;
    border-radius: 14px;
    min-height: 155px;
    box-shadow: 0 7px 16px rgba(0,0,0,.12);
    text-decoration: none;
}

.patient-action-card:hover {
    color: #172033;
    transform: translateY(-4px);
}

.patient-action-icon {
    width: 47px;
    height: 47px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}

.patient-blue-icon {
    background: #dfebff;
    color: #2463f5;
}

.patient-green-icon {
    background: #dff9e9;
    color: #00aa50;
}

.patient-purple-icon {
    background: #f3e3ff;
    color: #9c24f5;
}

.patient-orange-icon {
    background: #fff0d9;
    color: #f16b00;
}

.patient-action-card h3 {
    font-size: 17px;
    margin-top: 16px;
}

.patient-action-card p {
    font-size: 13px;
    color: #606c80;
}

.patient-white-section {
    background: white;
    margin-top: 26px;
    padding: 20px;
    border-radius: 14px;
    box-shadow: 0 7px 16px rgba(0,0,0,.1);
}

.patient-bottom-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

@media (max-width: 700px) {
    .patient-menu-grid,
    .patient-bottom-grid {
        grid-template-columns: 1fr;
    }
}
.patient-red-icon {
    background: #ffe2e5;
    color: #dc3545;
}

.patient-logout-link{

    display:flex;
    align-items:center;
    gap:8px;

    padding:10px 18px;

    background:#ffffff;

    color:#ef4444;

    border-radius:25px;

    text-decoration:none;

    font-weight:600;

    transition:.3s;
}

.patient-logout-link:hover{

    background:#ef4444;

    color:#ffffff;

}

.patient-mc-card {
    margin-top: 18px;
    padding: 18px;
    border: 1px solid #cfe0ff;
    border-radius: 14px;
    background: #f7faff;
}

.patient-mc-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 15px;
}

.patient-mc-card-header > div {
    display: flex;
    align-items: center;
    gap: 8px;
}

.patient-mc-card-header strong {
    color: #172033;
    font-size: 15px;
}

.patient-mc-status-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #22c55e;
}

.patient-mc-badge {
    padding: 5px 11px;
    border-radius: 999px;
    background: #dcfce7;
    color: #15803d;
    font-size: 9px;
    font-weight: 700;
}

.patient-mc-info-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.patient-mc-info-list > div {
    padding: 11px 12px;
    border-radius: 9px;
    background: #ffffff;
}

.patient-mc-info-list span,
.patient-mc-info-list strong {
    display: block;
}

.patient-mc-info-list span {
    color: #7b8799;
    font-size: 9px;
}

.patient-mc-info-list strong {
    margin-top: 4px;
    color: #172033;
    font-size: 11px;
}

.patient-mc-view-button {
    margin-top: 15px;
    padding: 10px 16px;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: #2563eb;
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
}

.patient-mc-view-button:hover {
    background: #1d4ed8;
    color: #ffffff;
}

@media (max-width: 600px) {
    .patient-mc-info-list {
        grid-template-columns: 1fr;
    }
}

/* ======================================================
HALAMAN TEMU JANJI PESAKIT
====================================================== */

.patient-appointment-page {
    min-height: 100vh;
    background:
        linear-gradient(
            135deg,
            #eef7ff,
            #f0fff8
        );
    color: #172033;
}

.appointment-back-button {
    width: 39px;
    height: 39px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e3edff;
    color: #2463f5;
    transition: 0.2s;
}

.appointment-back-button:hover {
    background: #2463f5;
    color: #ffffff;
}

.appointment-main-container {
    width: min(980px, calc(100% - 32px));
    margin: 28px auto 50px;
}

.appointment-page-heading {
    margin-bottom: 22px;
}

.appointment-page-heading > div {
    display: flex;
    align-items: center;
    gap: 14px;
}

.appointment-heading-icon {
    width: 55px;
    height: 55px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(
            135deg,
            #2463f5,
            #00bd72
        );
    color: #ffffff;
    font-size: 23px;
}

.appointment-page-heading h2 {
    margin: 0;
    font-size: 24px;
    font-weight: 700;
}

.appointment-page-heading p {
    margin: 4px 0 0;
    color: #6b7688;
    font-size: 13px;
}

.appointment-alert {
    margin-bottom: 20px;
    padding: 14px 17px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13px;
}

.appointment-alert-error {
    background: #ffe5e8;
    color: #a51d2a;
    border: 1px solid #ffbec5;
}

.appointment-alert-success {
    background: #e2f8ea;
    color: #157342;
    border: 1px solid #a9e5c1;
}

.appointment-layout {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr);
    gap: 22px;
}

.appointment-form-card,
.appointment-clinic-card {
    padding: 25px;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(35, 57, 82, 0.11);
}

.appointment-form-card h3 {
    margin: 0 0 22px;
    font-size: 18px;
    font-weight: 700;
}

.appointment-form-card h3 i {
    margin-right: 7px;
    color: #2463f5;
}

.appointment-field {
    margin-bottom: 18px;
}

.appointment-field label {
    display: block;
    margin-bottom: 7px;
    color: #313b4d;
    font-size: 13px;
    font-weight: 600;
}

.appointment-field small {
    display: block;
    margin-top: 6px;
    color: #7a8597;
    font-size: 11px;
}

.appointment-two-columns {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.appointment-information {
    margin: 4px 0 20px;
    padding: 13px;
    border-radius: 11px;
    display: flex;
    gap: 11px;
    background: #e9f2ff;
    color: #1d579f;
}

.appointment-information i {
    margin-top: 3px;
}

.appointment-information strong {
    display: block;
    font-size: 12px;
}

.appointment-information p {
    margin: 3px 0 0;
    font-size: 11px;
}

.appointment-submit-button {
    width: 100%;
    padding: 12px 20px;
    border: none;
    border-radius: 25px;
    background:
        linear-gradient(
            135deg,
            #2463f5,
            #1749de
        );
    color: #ffffff;
    font-size: 13px;
    font-weight: 600;
    transition: 0.2s;
}

.appointment-submit-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 16px rgba(36, 99, 245, 0.24);
}

.appointment-clinic-card {
    align-self: start;
    text-align: center;
}

.appointment-clinic-icon {
    width: 68px;
    height: 68px;
    margin: 0 auto 13px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #dfeaff;
    color: #2463f5;
    font-size: 28px;
}

.appointment-clinic-card h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.appointment-clinic-card > p {
    margin: 8px 0 23px;
    color: #707b8d;
    font-size: 12px;
}

.appointment-clinic-detail {
    padding: 13px 0;
    border-top: 1px solid #edf0f4;
    display: flex;
    gap: 12px;
    text-align: left;
}

.appointment-clinic-detail > i {
    width: 35px;
    height: 35px;
    flex-shrink: 0;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e8f8ef;
    color: #00a95c;
}

.appointment-clinic-detail strong,
.appointment-clinic-detail span {
    display: block;
}

.appointment-clinic-detail strong {
    font-size: 12px;
}

.appointment-clinic-detail span {
    margin-top: 2px;
    color: #707b8d;
    font-size: 11px;
}

/* APPOINTMENT HISTORY */

.appointment-history {
    margin-top: 24px;
}

.appointment-section-count {
    color: #758195;
    font-size: 11px;
}

.appointment-table-wrapper {
    overflow-x: auto;
}

.appointment-table {
    width: 100%;
    margin-top: 8px;
    border-collapse: collapse;
}

.appointment-table th,
.appointment-table td {
    padding: 13px 12px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: middle;
    text-align: left;
    font-size: 12px;
}

.appointment-table th {
    background: #edf4ff;
    color: #435066;
    font-weight: 600;
}

.appointment-table td {
    color: #556175;
}

.appointment-table td strong,
.appointment-table td small {
    display: block;
}

.appointment-table td strong {
    color: #253044;
    font-size: 12px;
}

.appointment-table td small {
    margin-top: 3px;
    color: #828c9c;
    font-size: 10px;
}

.appointment-status-pending,
.appointment-status-approved,
.appointment-status-completed,
.appointment-status-cancelled {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 20px;
    color: #ffffff;
    font-size: 10px;
    white-space: nowrap;
}

.appointment-status-pending {
    background: #f3a300;
}

.appointment-status-approved {
    background: #2463f5;
}

.appointment-status-completed {
    background: #00a85b;
}

.appointment-status-cancelled {
    background: #dc3545;
}

@media (max-width: 800px) {

    .appointment-layout {
        grid-template-columns: 1fr;
    }

    .appointment-clinic-card {
        text-align: left;
    }

    .appointment-clinic-icon {
        margin-left: 0;
    }
}

@media (max-width: 550px) {

    .appointment-main-container {
        width: calc(100% - 22px);
        margin-top: 20px;
    }

    .appointment-two-columns {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .appointment-form-card,
    .appointment-clinic-card {
        padding: 19px;
    }
}

.queue-appointment-date {
    margin: 14px 0 0;
    color: #64748b;
    font-size: 12px;
}

.queue-appointment-date strong {
    color: #172033;
}

.queue-future-message {
    max-width: 520px;
    margin: 16px auto 0;
    padding: 12px 15px;
    border: 1px solid #bfdbfe;
    border-radius: 11px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 12px;
    line-height: 1.6;
}
/* =====================================================
BUTANG DI HEADER PESAKIT
===================================================== */

.patient-header-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

/* =====================================================
   PATIENT NOTIFICATION BUTTON
===================================================== */

.patient-header-notification-wrapper {
    position: relative;
}

.patient-header-notification-button{

    position:relative;

    width:42px;
    height:42px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:none;

    border-radius:50%;

    background:#eef4ff;

    color:#2563eb;

    cursor:pointer;

    font-size:18px;

    transition:.3s;

}

.patient-header-notification-button:hover{

    background:#2563eb;

    color:white;

}

.patient-header-notification-badge{

position:absolute;

top:-5px;

right:-5px;

background:red;

color:white;

font-size:10px;

padding:2px 6px;

border-radius:20px;

}

/* =====================================================
   NOTIFICATION DROPDOWN
===================================================== */

.patient-header-notification-dropdown {
    position: absolute;
    top: calc(100% + 14px);
    right: 0;
    z-index: 1000;
    width: 390px;
    max-height: 520px;
    border: 1px solid #e5eaf2;
    border-radius: 18px;
    overflow: hidden;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px);
    background: #ffffff;
    box-shadow:
        0 20px 50px rgba(30, 45, 75, .2);
    transition:
        opacity .2s ease,
        transform .2s ease,
        visibility .2s ease;
}

.patient-notification-dropdown-show {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

.patient-notification-dropdown-heading {
    padding: 17px 18px;
    border-bottom: 1px solid #edf0f5;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.patient-notification-dropdown-heading h2 {
    margin: 0;
    color: #172033;
    font-size: 16px;
    font-weight: 700;
}

.patient-notification-dropdown-heading p {
    margin: 3px 0 0;
    color: #778397;
    font-size: 10px;
}

.patient-notification-dropdown-heading a {
    color: #2563eb;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
}

.patient-notification-dropdown-list {
    max-height: 360px;
    overflow-y: auto;
}

.patient-notification-dropdown-item {
    padding: 14px 16px;
    border-bottom: 1px solid #f0f2f6;
    display: flex;
    gap: 12px;
    color: inherit;
    text-decoration: none;
    transition: background .2s ease;
}

.patient-notification-dropdown-item:hover {
    background: #f8fafc;
}

.patient-notification-dropdown-unread {
    background: #f4f8ff;
}

.patient-notification-dropdown-icon {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
}

.patient-header-notification-appointment {
    background: #e7efff;
    color: #2563eb;
}

.patient-header-notification-queue {
    background: #dcfce7;
    color: #15803d;
}

.patient-header-notification-medical {
    background: #f3e8ff;
    color: #9333ea;
}

.patient-header-notification-general {
    background: #ffedd5;
    color: #ea580c;
}

.patient-notification-dropdown-content {
    min-width: 0;
    flex: 1;
}

.patient-notification-dropdown-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.patient-notification-dropdown-title h3 {
    margin: 0;
    color: #172033;
    font-size: 11px;
    font-weight: 700;
}

.patient-notification-dropdown-title span {
    padding: 2px 7px;
    border-radius: 999px;
    background: #ef4444;
    color: #ffffff;
    font-size: 7px;
    font-weight: 700;
}

.patient-notification-dropdown-content p {
    margin: 5px 0;
    overflow: hidden;
    color: #667085;
    font-size: 9px;
    line-height: 1.5;
}

.patient-notification-dropdown-content small {
    color: #98a2b3;
    font-size: 8px;
}

.patient-notification-dropdown-content small i {
    margin-right: 4px;
}

.patient-notification-dropdown-empty {
    padding: 40px 20px;
    text-align: center;
}

.patient-notification-dropdown-empty i {
    margin-bottom: 12px;
    color: #b8c1cf;
    font-size: 35px;
}

.patient-notification-dropdown-empty h3 {
    margin: 0;
    color: #344054;
    font-size: 13px;
}

.patient-notification-dropdown-empty p {
    margin: 5px 0 0;
    color: #98a2b3;
    font-size: 9px;
}

.patient-notification-dropdown-footer {
    padding: 13px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    background: #f8fafc;
    color: #2563eb;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
}

.patient-notification-dropdown-footer:hover {
    background: #eef4ff;
}

/* =====================================================
   NOTIFICATION BADGE ON DASHBOARD CARD
===================================================== */

.patient-action-icon {
    position: relative;
}

.patient-action-notification-badge {
    position: absolute;
    top: -7px;
    right: -8px;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    border: 2px solid #ffffff;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ef4444;
    color: #ffffff;
    font-size: 8px;
    font-weight: 700;
}

/* =====================================================
   LATEST NOTIFICATIONS SECTION
===================================================== */

.patient-dashboard-notice-item {
    margin-top: 10px;
    padding: 11px 12px;
    border: 1px solid #edf0f5;
    border-radius: 12px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #ffffff;
    color: inherit;
    text-decoration: none;
}

.patient-dashboard-notice-item:hover {
    border-color: #cfd9eb;
    background: #f8fafc;
}

.patient-dashboard-notice-unread {
    border-left: 4px solid #2563eb;
    background: #f5f8ff;
}

.patient-dashboard-notice-icon {
    width: 35px;
    height: 35px;
    flex-shrink: 0;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
}

.patient-dashboard-notice-item h3 {
    margin: 0;
    color: #172033;
    font-size: 10px;
    font-weight: 700;
}

.patient-dashboard-notice-item p {
    margin: 4px 0 0;
    color: #7b8799;
    font-size: 8px;
    line-height: 1.5;
}

/* =====================================================
   RESPONSIVE
===================================================== */

@media (max-width: 650px) {

    .patient-header-actions {
        gap: 8px;
    }

    .patient-header-notification-dropdown {
        position: fixed;
        top: 76px;
        right: 12px;
        left: 12px;
        width: auto;
    }

    .patient-logout-link {
        font-size: 0;
    }

    .patient-logout-link i {
        font-size: 15px;
    }
}

/* ======================================================
HALAMAN TEMU JANJI DOKTOR
====================================================== */

.doctor-appointment-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #effaf7, #eef6ff);
    color: #172033;
}

.doctor-page-header {
    background: #ffffff;
    border-top: 7px solid #168576;
    box-shadow: 0 2px 10px rgba(25, 50, 75, 0.1);
}

.doctor-page-header-content {
    width: min(94%, 1250px);
    min-height: 72px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-header-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.doctor-back-button,
.doctor-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.doctor-back-button {
    background: #e2f5f0;
    color: #168576;
}

.doctor-back-button:hover {
    background: #168576;
    color: #ffffff;
}

.doctor-header-icon {
    background: #168576;
    color: #ffffff;
}

.doctor-header-left h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.doctor-header-left p {
    margin: 3px 0 0;
    color: #6b7688;
    font-size: 12px;
}

.doctor-logout-link {
    color: #515b6b;
    font-size: 13px;
    font-weight: 600;
}

.doctor-logout-link:hover {
    color: #dc3545;
}

.doctor-appointment-container {
    width: min(94%, 1250px);
    margin: 27px auto 50px;
}

.doctor-alert {
    margin-bottom: 18px;
    padding: 14px 17px;
    border-radius: 12px;
    display: flex;
    gap: 9px;
    align-items: center;
    font-size: 13px;
}

.doctor-alert-error {
    background: #ffe5e8;
    border: 1px solid #ffbbc3;
    color: #a51d2a;
}

.doctor-alert-success {
    background: #e0f8e9;
    border: 1px solid #a4e5bd;
    color: #167344;
}

.doctor-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 17px;
}

.doctor-summary-card {
    min-height: 105px;
    padding: 20px;
    border-radius: 15px;
    background: #ffffff;
    display: flex;
    align-items: center;
    gap: 14px;
    box-shadow: 0 7px 18px rgba(35, 57, 82, 0.1);
}

.doctor-summary-icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}

.doctor-summary-icon.blue {
    background: #e2edff;
    color: #2463f5;
}

.doctor-summary-icon.orange {
    background: #fff0d9;
    color: #f16b00;
}

.doctor-summary-icon.green {
    background: #dcf8e8;
    color: #00a95b;
}

.doctor-summary-icon.purple {
    background: #f2e2ff;
    color: #9729db;
}

.doctor-summary-card span,
.doctor-summary-card strong {
    display: block;
}

.doctor-summary-card span {
    color: #6d788a;
    font-size: 11px;
}

.doctor-summary-card strong {
    margin-top: 4px;
    font-size: 25px;
}

.doctor-filter-card,
.doctor-appointment-card {
    margin-top: 22px;
    padding: 21px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, 0.1);
}

.doctor-filter-form {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 190px auto auto;
    gap: 12px;
}

.doctor-search-field {
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid #d9e0ea;
    border-radius: 11px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.doctor-search-field i {
    color: #7c8798;
}

.doctor-search-field input {
    width: 100%;
    border: none;
    outline: none;
    font-size: 12px;
}

.doctor-filter-button,
.doctor-clear-button {
    min-height: 44px;
    padding: 0 18px;
    border: none;
    border-radius: 23px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 600;
}

.doctor-filter-button {
    background: #168576;
    color: #ffffff;
}

.doctor-clear-button {
    background: #e9edf3;
    color: #566174;
}

.doctor-card-heading {
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-card-heading h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.doctor-card-heading p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 11px;
}

.doctor-card-heading > span {
    color: #707b8d;
    font-size: 11px;
}

.doctor-table-wrapper {
    overflow-x: auto;
}

.doctor-appointment-table {
    width: 100%;
    border-collapse: collapse;
}

.doctor-appointment-table th,
.doctor-appointment-table td {
    padding: 14px 12px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: middle;
    text-align: left;
    font-size: 12px;
}

.doctor-appointment-table th {
    background: #eaf7f4;
    color: #405064;
    font-weight: 600;
}

.doctor-patient-cell {
    min-width: 190px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.doctor-patient-avatar {
    width: 39px;
    height: 39px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #168576;
    color: #ffffff;
    font-weight: 700;
}

.doctor-patient-cell strong,
.doctor-patient-cell small,
.doctor-appointment-table td > strong,
.doctor-appointment-table td > small {
    display: block;
}

.doctor-patient-cell strong {
    color: #273246;
    font-size: 12px;
}

.doctor-patient-cell small,
.doctor-appointment-table td > small {
    margin-top: 3px;
    color: #7a8596;
    font-size: 10px;
}

.doctor-reason-cell {
    min-width: 180px;
    max-width: 260px;
}

.doctor-status-badge {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 20px;
    color: #ffffff;
    font-size: 10px;
    white-space: nowrap;
}

.doctor-status-pending {
    background: #f1a000;
}

.doctor-status-approved {
    background: #2463f5;
}

.doctor-status-completed {
    background: #00a85b;
}

.doctor-status-cancelled {
    background: #dc3545;
}

.doctor-action-buttons {
    min-width: 150px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.doctor-action-buttons form {
    margin: 0;
}

.doctor-action-approve,
.doctor-action-complete,
.doctor-action-cancel {
    padding: 7px 10px;
    border: none;
    border-radius: 18px;
    color: #ffffff;
    font-size: 10px;
}

.doctor-action-approve {
    background: #2463f5;
}

.doctor-action-complete {
    background: #00a85b;
}

.doctor-action-cancel {
    background: #dc3545;
}

.doctor-no-action {
    color: #8993a3;
    font-size: 10px;
}

.doctor-empty-state {
    padding: 45px 20px;
    text-align: center;
    color: #748093;
}

.doctor-empty-state i {
    margin-bottom: 12px;
    font-size: 38px;
    color: #99b5ae;
}

.doctor-empty-state h3 {
    font-size: 17px;
}

.doctor-empty-state p {
    font-size: 12px;
}

@media (max-width: 950px) {
    .doctor-summary-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .doctor-filter-form {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 600px) {
    .doctor-summary-grid,
    .doctor-filter-form {
        grid-template-columns: 1fr;
    }

    .doctor-page-header-content {
        width: calc(100% - 25px);
    }

    .doctor-appointment-container {
        width: calc(100% - 22px);
    }

    .doctor-header-icon {
        display: none;
    }

    .doctor-logout-link {
        font-size: 0;
    }

    .doctor-logout-link i {
        font-size: 17px;
    }
}

/* ======================================================
QUEUE, REKOD PERUBATAN DAN PROFIL PESAKIT
====================================================== */

.patient-subpage {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef7ff, #f0fff8);
    color: #172033;
}

.patient-subpage-container {
    width: min(780px, calc(100% - 30px));
    margin: 27px auto 50px;
}

.queue-detail-card {
    padding: 28px;
    border-radius: 16px;
    background: linear-gradient(135deg, #2463f5, #1749de);
    color: #ffffff;
    text-align: center;
    box-shadow: 0 12px 24px rgba(36, 99, 245, .2);
}

.queue-detail-card p {
    margin: 0;
    font-size: 13px;
}

.queue-detail-card h2 {
    margin: 9px 0 13px;
    font-size: 55px;
}

.queue-status-waiting,
.queue-status-serving,
.queue-status-completed {
    display: inline-block;
    padding: 6px 17px;
    border-radius: 20px;
    font-size: 11px;
}

.queue-status-waiting {
    background: #f3a300;
}

.queue-status-serving {
    background: #00b66a;
}

.queue-status-completed {
    background: #646f82;
}

.queue-stat-grid {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.queue-stat-card {
    padding: 20px;
    border-radius: 14px;
    background: #ffffff;
    text-align: center;
    box-shadow: 0 7px 16px rgba(35, 57, 82, .1);
}

.queue-stat-card i {
    margin-bottom: 11px;
    color: #2463f5;
    font-size: 24px;
}

.queue-stat-card span,
.queue-stat-card strong {
    display: block;
}

.queue-stat-card span {
    color: #6d788a;
    font-size: 11px;
}

.queue-stat-card strong {
    margin-top: 5px;
    font-size: 18px;
}

.queue-information-row {
    padding: 13px 0;
    border-bottom: 1px solid #edf0f4;
    display: flex;
    justify-content: space-between;
}

.queue-information-row:last-child {
    border-bottom: none;
}

.queue-information-row span {
    color: #707b8d;
    font-size: 12px;
}

.queue-information-row strong {
    font-size: 12px;
}

/* MEDICAL RECORD */

.medical-page-heading {
    margin-bottom: 22px;
    display: flex;
    align-items: center;
    gap: 14px;
}

.medical-heading-icon {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f0e2ff;
    color: #922bd1;
    font-size: 23px;
}

.medical-page-heading h2 {
    margin: 0;
    font-size: 23px;
    font-weight: 700;
}

.medical-page-heading p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 12px;
}

.medical-record-list {
    display: grid;
    gap: 18px;
}

.medical-record-card {
    padding: 22px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.medical-record-top {
    padding-bottom: 16px;
    border-bottom: 1px solid #edf0f4;
    display: flex;
    justify-content: space-between;
}

.medical-record-date {
    color: #2463f5;
    font-size: 11px;
}

.medical-record-top h3 {
    margin: 9px 0 3px;
    font-size: 16px;
    font-weight: 700;
}

.medical-record-top p {
    margin: 0;
    color: #707b8d;
    font-size: 11px;
}

.medical-record-icon {
    width: 47px;
    height: 47px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e1f7ea;
    color: #00a85b;
    font-size: 20px;
}

.medical-record-grid {
    margin-top: 17px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.medical-record-grid > div {
    padding: 13px;
    border-radius: 10px;
    background: #f6f9fc;
}

.medical-record-grid span {
    color: #657185;
    font-size: 10px;
    font-weight: 600;
}

.medical-record-grid p {
    margin: 6px 0 0;
    font-size: 12px;
}

/* =====================================================
   CLINICAL SEARCHABLE DROPDOWN
===================================================== */

.clinical-selection-section {
    margin: 20px 0;
    padding: 20px;
    border: 1px solid #dce4ef;
    border-radius: 15px;
    background: #f9fbfd;
}

.clinical-infectious-section {
    border-color: #fecaca;
    background: #fffafa;
}

.clinical-selection-heading {
    margin-bottom: 16px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
}

.clinical-selection-heading h3 {
    margin: 0;
    color: #172033;
    font-size: 15px;
    font-weight: 700;
}

.clinical-selection-heading h3 i {
    margin-right: 7px;
    color: #2563eb;
}

.clinical-infectious-section
.clinical-selection-heading h3 i {
    color: #dc2626;
}

.clinical-selection-heading p {
    margin: 5px 0 0;
    color: #748093;
    font-size: 10px;
}

.clinical-field-help {
    display: block;
    margin-top: 7px;
    color: #7b8799;
    font-size: 9px;
}

.clinical-infectious-badge {
    padding: 6px 11px;
    border-radius: 999px;
    display: none;
    align-items: center;
    gap: 6px;
    background: #fee2e2;
    color: #b91c1c;
    font-size: 9px;
    font-weight: 700;
}

.clinical-table-warning,
.clinical-table-safe {
    padding: 5px 9px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 8px;
    font-weight: 700;
}

.clinical-table-warning {
    background: #fee2e2;
    color: #b91c1c;
}

.clinical-table-safe {
    background: #dcfce7;
    color: #15803d;
}

/* SELECT2 */

.select2-container {
    width: 100% !important;
}

.select2-container
.select2-selection--multiple {
    min-height: 48px;
    padding: 5px 8px;
    border: 1px solid #dbe2ec;
    border-radius: 11px;
    background: #ffffff;
}

.select2-container--default
.select2-selection--multiple
.select2-selection__choice {
    margin-top: 5px;
    padding: 5px 10px 5px 26px;
    border: none;
    border-radius: 999px;
    background: #e8efff;
    color: #2456a6;
    font-size: 10px;
    font-weight: 600;
}

.select2-container--default
.select2-selection--multiple
.select2-selection__choice__remove {
    height: 100%;
    border-right: none;
    color: #2456a6;
}

.select2-container--default
.select2-selection--multiple
.select2-search__field {
    min-height: 30px;
    margin-top: 5px;
    font-size: 11px;
}

.select2-dropdown {
    z-index: 9999;
    border: 1px solid #cfd8e5;
    border-radius: 10px;
    overflow: hidden;
}

.select2-search--dropdown
.select2-search__field {
    border: 1px solid #cfd8e5 !important;
    border-radius: 8px;
    font-size: 11px;
}

.select2-results__option {
    padding: 9px 12px;
    font-size: 11px;
}

.select2-container--default
.select2-results__option--highlighted
.select2-results__option--selectable {
    background: #2563eb;
}

@media (max-width: 650px) {

    .clinical-selection-heading {
        flex-direction: column;
    }
}

/* PROFILE */

.profile-page-container {
    width: min(850px, calc(100% - 30px));
    margin: 27px auto 50px;
}

.profile-page-layout {
    display: grid;
    grid-template-columns: 270px 1fr;
    gap: 22px;
}

.profile-summary-card,
.profile-form-card {
    padding: 25px;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(35, 57, 82, .1);
}

.profile-summary-card {
    align-self: start;
    text-align: center;
}

.profile-large-avatar {
    width: 90px;
    height: 90px;
    margin: 0 auto 14px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #2463f5, #00bd72);
    color: #ffffff;
    font-size: 34px;
    font-weight: 700;
}

.profile-summary-card h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.profile-summary-card > p {
    color: #707b8d;
    font-size: 11px;
}

.profile-summary-row {
    padding: 12px 0;
    border-top: 1px solid #edf0f4;
    display: flex;
    justify-content: space-between;
    text-align: left;
}

.profile-summary-row span {
    color: #707b8d;
    font-size: 10px;
}

.profile-summary-row strong {
    font-size: 11px;
}

.profile-form-card h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
}

.profile-form-card > p {
    margin: 5px 0 21px;
    color: #707b8d;
    font-size: 12px;
}

@media (max-width: 700px) {

    .queue-stat-grid,
    .medical-record-grid,
    .profile-page-layout {
        grid-template-columns: 1fr;
    }

    .profile-summary-card {
        text-align: center;
    }
}

/* =====================================================
   PATIENT CLINICAL ASSESSMENT
===================================================== */

.patient-clinical-section {
    margin-top: 20px;
    padding: 18px;
    border: 1px solid #dce5f0;
    border-radius: 14px;
    background: #f8fafc;
}

.patient-clinical-heading {
    margin-bottom: 15px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
}

.patient-clinical-heading h4 {
    margin: 0;
    color: #172033;
    font-size: 15px;
    font-weight: 700;
}

.patient-clinical-heading h4 i {
    margin-right: 7px;
    color: #2563eb;
}

.patient-clinical-heading p {
    margin: 5px 0 0;
    color: #748093;
    font-size: 10px;
}

.patient-infectious-alert {
    padding: 6px 11px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #fee2e2;
    color: #b91c1c;
    font-size: 9px;
    font-weight: 700;
    white-space: nowrap;
}

.patient-clinical-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.patient-clinical-box {
    min-height: 125px;
    padding: 14px;
    border: 1px solid #e2e8f0;
    border-radius: 11px;
    background: #ffffff;
}

.patient-clinical-box h5 {
    margin: 0 0 12px;
    color: #334155;
    font-size: 11px;
    font-weight: 700;
}

.patient-clinical-box h5 i {
    margin-right: 6px;
    color: #2563eb;
}

.patient-clinical-infectious {
    border-color: #fecaca;
    background: #fffafa;
}

.patient-clinical-infectious h5,
.patient-clinical-infectious h5 i {
    color: #b91c1c;
}

.patient-clinical-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.patient-symptom-tag,
.patient-infectious-tag,
.patient-chronic-tag {
    padding: 5px 9px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    font-size: 8px;
    font-weight: 700;
    line-height: 1.35;
}

.patient-symptom-tag {
    background: #e8efff;
    color: #2456a6;
}

.patient-infectious-tag {
    background: #fee2e2;
    color: #b91c1c;
}

.patient-chronic-tag {
    background: #f3e8ff;
    color: #7e22ce;
}

.patient-none-disease {
    padding: 6px 10px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #dcfce7;
    color: #15803d;
    font-size: 8px;
    font-weight: 700;
}

.patient-clinical-empty {
    margin: 0;
    color: #94a3b8;
    font-size: 9px;
}

@media (max-width: 850px) {

    .patient-clinical-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {

    .patient-clinical-heading {
        flex-direction: column;
    }
}

/* ======================================================
HALAMAN NOTIFIKASI PESAKIT
====================================================== */

.notification-page-container {
    width: min(850px, calc(100% - 30px));
    margin: 27px auto 50px;
}

.notification-page-heading {
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.notification-page-heading > div:first-child {
    display: flex;
    align-items: center;
    gap: 13px;
}

.notification-heading-icon {
    position: relative;
    width: 55px;
    height: 55px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(
            135deg,
            #2463f5,
            #00bd72
        );
    color: #ffffff;
    font-size: 22px;
}

.notification-heading-icon span {
    position: absolute;
    top: -7px;
    right: -7px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border: 2px solid #ffffff;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #dc3545;
    color: #ffffff;
    font-size: 9px;
    font-weight: 700;
}

.notification-page-heading h2 {
    margin: 0;
    font-size: 23px;
    font-weight: 700;
}

.notification-page-heading p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 12px;
}

.notification-heading-actions {
    display: flex;
    gap: 8px;
}

.notification-heading-actions form {
    margin: 0;
}

.notification-read-all,
.notification-delete-all {
    min-height: 39px;
    padding: 0 14px;
    border: none;
    border-radius: 20px;
    font-size: 10px;
    font-weight: 600;
}

.notification-read-all {
    background: #e3edff;
    color: #2463f5;
}

.notification-delete-all {
    background: #ffe4e7;
    color: #c62838;
}

.notification-filter-card {
    padding: 10px;
    border-radius: 13px;
    display: flex;
    gap: 7px;
    overflow-x: auto;
    background: #ffffff;
    box-shadow: 0 7px 16px rgba(35, 57, 82, .09);
}

.notification-filter-card a {
    padding: 8px 15px;
    border-radius: 18px;
    color: #657185;
    font-size: 10px;
    font-weight: 600;
    white-space: nowrap;
}

.notification-filter-card a.active,
.notification-filter-card a:hover {
    background: #2463f5;
    color: #ffffff;
}

.notification-list {
    margin-top: 18px;
    display: grid;
    gap: 13px;
}

.notification-card {
    position: relative;
    padding: 17px;
    border: 1px solid transparent;
    border-radius: 14px;
    display: grid;
    grid-template-columns: 47px 1fr auto;
    gap: 13px;
    background: #ffffff;
    box-shadow: 0 7px 16px rgba(35, 57, 82, .09);
}

.notification-unread {
    border-color: #8eb0ff;
    background: #f8fbff;
}

.notification-unread::before {
    content: "";
    position: absolute;
    top: 15px;
    left: -4px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #2463f5;
}

.notification-type-icon {
    width: 47px;
    height: 47px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}

.notification-appointment {
    background: #e1ebff;
    color: #2463f5;
}

.notification-queue {
    background: #ddf8e8;
    color: #00a95b;
}

.notification-medical {
    background: #f2e2ff;
    color: #942bd4;
}

.notification-general {
    background: #fff0d9;
    color: #f16b00;
}

.notification-content {
    min-width: 0;
}

.notification-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.notification-title-row h3 {
    margin: 0;
    color: #293348;
    font-size: 14px;
    font-weight: 700;
}

.notification-new-badge {
    padding: 3px 8px;
    border-radius: 15px;
    background: #2463f5;
    color: #ffffff;
    font-size: 8px;
}

.notification-content > p {
    margin: 7px 0;
    color: #5f6b7e;
    font-size: 11px;
    line-height: 1.6;
}

.notification-meta {
    display: flex;
    gap: 14px;
    color: #8791a1;
    font-size: 9px;
}

.notification-actions {
    display: flex;
    gap: 5px;
}

.notification-actions form {
    margin: 0;
}

.notification-action-read,
.notification-action-delete {
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
}

.notification-action-read {
    background: #ddf8e8;
    color: #008f4d;
}

.notification-action-delete {
    background: #ffe5e8;
    color: #c92f3f;
}

@media (max-width: 700px) {

    .notification-page-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 15px;
    }

    .notification-heading-actions {
        width: 100%;
    }

    .notification-heading-actions form {
        flex: 1;
    }

    .notification-read-all,
    .notification-delete-all {
        width: 100%;
    }

    .notification-card {
        grid-template-columns: 43px 1fr;
    }

    .notification-actions {
        grid-column: 2;
    }
}

/* ======================================================
DASHBOARD DOKTOR
====================================================== */

.doctor-dashboard-page {
    min-height: 100vh;
    margin: 0;
    background: linear-gradient(135deg, #eef7ff, #effff8);
    color: #172033;
}

.doctor-dashboard-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(25, 50, 75, 0.12);
}

.doctor-dashboard-header-content {
    width: min(94%, 1250px);
    min-height: 67px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-dashboard-brand,
.doctor-dashboard-header-actions {
    display: flex;
    align-items: center;
}

.doctor-dashboard-brand {
    gap: 11px;
}

.doctor-dashboard-logo {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #168576;
    color: #ffffff;
    font-size: 18px;
}

.doctor-dashboard-brand h1 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.doctor-dashboard-brand p {
    margin: 2px 0 0;
    color: #697386;
    font-size: 11px;
}

.doctor-dashboard-header-actions {
    gap: 18px;
}

.doctor-dashboard-notification {
    position: relative;
    color: #586274;
    font-size: 16px;
}

.doctor-dashboard-notification span {
    position: absolute;
    top: -8px;
    right: -9px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #dc3545;
    color: #ffffff;
    font-size: 8px;
}

.doctor-dashboard-logout {
    color: #515b6b;
    font-size: 12px;
    font-weight: 600;
}

.doctor-dashboard-container {
    width: min(900px, calc(100% - 30px));
    margin: 25px auto 50px;
}

.doctor-dashboard-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.doctor-current-patient-card,
.doctor-stat-card,
.doctor-dashboard-panel,
.doctor-quick-card {
    border-radius: 14px;
    box-shadow: 0 8px 18px rgba(35, 57, 82, 0.11);
}

.doctor-current-patient-card {
    min-height: 145px;
    padding: 20px;
    background: linear-gradient(135deg, #168576, #00a864);
    color: #ffffff;
}

.doctor-current-patient-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-current-patient-top span {
    font-size: 11px;
}

.doctor-current-patient-card h2 {
    margin: 8px 0 2px;
    font-size: 31px;
}

.doctor-current-patient-card p {
    margin: 0 0 8px;
    font-size: 10px;
}

.doctor-current-patient-card button {
    width: 100%;
    min-height: 35px;
    margin-top: 7px;
    border: none;
    border-radius: 8px;
    background: #ffffff;
    color: #2463f5;
    font-size: 10px;
    font-weight: 600;
}

.doctor-stat-card {
    min-height: 145px;
    padding: 20px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    background: #ffffff;
}

.doctor-stat-card span,
.doctor-stat-card strong,
.doctor-stat-card p {
    display: block;
}

.doctor-stat-card span {
    color: #687487;
    font-size: 10px;
}

.doctor-stat-card strong {
    margin-top: 9px;
    font-size: 29px;
}

.doctor-stat-card p {
    margin: 3px 0 0;
    color: #7c8798;
    font-size: 9px;
}

.doctor-stat-icon {
    font-size: 17px;
}

.doctor-stat-green {
    color: #00a85b;
}

.doctor-stat-purple {
    color: #9627dc;
}

.doctor-dashboard-panel {
    margin-top: 22px;
    padding: 20px;
    background: #ffffff;
}

.doctor-panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-panel-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.doctor-manage-queue-button {
    padding: 9px 16px;
    border-radius: 8px;
    background: #2463f5;
    color: #ffffff;
    font-size: 10px;
    font-weight: 600;
}

.doctor-manage-queue-button:hover {
    color: #ffffff;
}

.doctor-patient-search {
    min-height: 42px;
    margin-top: 16px;
    padding: 0 13px;
    border: 1px solid #dce3ed;
    border-radius: 9px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.doctor-patient-search i {
    color: #8a94a5;
    font-size: 12px;
}

.doctor-patient-search input {
    width: 100%;
    border: none;
    outline: none;
    font-size: 10px;
}

.doctor-patient-list {
    margin-top: 14px;
    display: grid;
    gap: 9px;
}

.doctor-patient-row {
    min-height: 52px;
    padding: 9px 11px;
    border-radius: 9px;
    display: grid;
    grid-template-columns: 40px 1fr auto 30px;
    align-items: center;
    gap: 10px;
    background: #f7f9fc;
}

.doctor-patient-queue-number {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #2463f5;
    color: #ffffff;
    font-size: 9px;
}

.doctor-patient-information h3 {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
}

.doctor-patient-information p {
    margin: 2px 0 0;
    color: #738093;
    font-size: 9px;
}

.doctor-queue-status {
    padding: 5px 11px;
    border-radius: 15px;
    font-size: 8px;
}

.doctor-queue-waiting {
    background: #dff8e9;
    color: #009c51;
}

.doctor-queue-serving {
    background: #e2ebff;
    color: #2463f5;
}

.doctor-queue-completed {
    background: #e7eaf0;
    color: #687487;
}

.doctor-patient-view-button {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #2463f5;
    color: #ffffff;
    font-size: 9px;
}

.doctor-dashboard-empty {
    padding: 35px;
    text-align: center;
    color: #768194;
}

.doctor-dashboard-empty i {
    margin-bottom: 10px;
    font-size: 29px;
}

.doctor-dashboard-empty h3 {
    font-size: 14px;
}

.doctor-dashboard-empty p {
    font-size: 10px;
}

.doctor-dashboard-quick-grid {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.doctor-quick-card {
    min-height: 125px;
    padding: 20px;
    background: #ffffff;
    color: #172033;
    transition: 0.2s ease;
}

.doctor-quick-card:hover {
    color: #172033;
    transform: translateY(-4px);
}

.doctor-quick-icon {
    width: 43px;
    height: 43px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.doctor-quick-blue {
    background: #e2ebff;
    color: #2463f5;
}

.doctor-quick-green {
    background: #ddf8e8;
    color: #00a85b;
}

.doctor-quick-purple {
    background: #f2e2ff;
    color: #9627dc;
}

.doctor-quick-orange {
    background: #fff0d9;
    color: #f16b00;
}

.doctor-quick-card h3 {
    margin: 12px 0 5px;
    font-size: 13px;
    font-weight: 700;
}

.doctor-quick-card p {
    margin: 0;
    color: #657185;
    font-size: 10px;
}

@media (max-width: 780px) {
    .doctor-dashboard-stats {
        grid-template-columns: 1fr;
    }

    .doctor-dashboard-quick-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .doctor-dashboard-container {
        width: calc(100% - 20px);
    }

    .doctor-dashboard-header-content {
        width: calc(100% - 20px);
    }

    .doctor-dashboard-notification {
        display: none;
    }

    .doctor-dashboard-logout {
        font-size: 0;
    }

    .doctor-dashboard-logout i {
        font-size: 16px;
    }

    .doctor-patient-row {
        grid-template-columns: 36px 1fr 28px;
    }

    .doctor-queue-status {
        display: none;
    }
}

/* ======================================================
BUTIRAN PESAKIT UNTUK DOKTOR
====================================================== */

.doctor-patient-detail-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #effaf7, #eef6ff);
    color: #172033;
}

.doctor-detail-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(25, 50, 75, .11);
}

.doctor-detail-header-content {
    width: min(94%, 1050px);
    min-height: 68px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-detail-heading {
    display: flex;
    align-items: center;
    gap: 12px;
}

.doctor-detail-back {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2f5f0;
    color: #168576;
}

.doctor-detail-back:hover {
    background: #168576;
    color: #ffffff;
}

.doctor-detail-heading h1 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.doctor-detail-heading p {
    margin: 3px 0 0;
    color: #6b7688;
    font-size: 11px;
}

.doctor-detail-logout {
    color: #515b6b;
    font-size: 12px;
    font-weight: 600;
}

.doctor-detail-container {
    width: min(900px, calc(100% - 30px));
    margin: 25px auto 50px;
}

.doctor-patient-profile-card,
.doctor-detail-section {
    padding: 22px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.doctor-detail-section {
    margin-top: 20px;
}

.doctor-patient-profile-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-patient-main-info {
    display: flex;
    align-items: center;
    gap: 13px;
}

.doctor-patient-large-avatar {
    width: 66px;
    height: 66px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #2463f5, #00bd72);
    color: #ffffff;
    font-size: 25px;
    font-weight: 700;
}

.doctor-patient-main-info h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
}

.doctor-patient-main-info p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 11px;
}

.doctor-active-patient-badge {
    padding: 6px 13px;
    border-radius: 18px;
    background: #ddf8e8;
    color: #009b52;
    font-size: 9px;
    font-weight: 600;
}

.doctor-patient-info-grid,
.doctor-active-appointment-grid {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 13px;
}

.doctor-patient-info-grid > div,
.doctor-active-appointment-grid > div {
    padding: 13px;
    border-radius: 10px;
    background: #f6f9fc;
}

.doctor-patient-info-grid span,
.doctor-active-appointment-grid span {
    display: block;
    color: #707b8d;
    font-size: 9px;
}

.doctor-patient-info-grid span i {
    margin-right: 5px;
    color: #168576;
}

.doctor-patient-info-grid strong,
.doctor-active-appointment-grid strong {
    display: block;
    margin-top: 5px;
    font-size: 11px;
}

.doctor-info-full-width {
    grid-column: 1 / -1;
}

.doctor-detail-section-heading {
    margin-bottom: 17px;
}

.doctor-detail-section-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.doctor-detail-section-heading h2 i {
    margin-right: 7px;
    color: #168576;
}

.doctor-detail-section-heading p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 10px;
}

.doctor-record-form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0 15px;
}

.doctor-record-full-width {
    grid-column: 1 / -1;
}

.doctor-save-record-button {
    width: 100%;
    min-height: 43px;
    border: none;
    border-radius: 23px;
    background: linear-gradient(135deg, #168576, #00a864);
    color: #ffffff;
    font-size: 11px;
    font-weight: 600;
}

.doctor-detail-empty {
    padding: 30px;
    text-align: center;
    color: #748093;
}

.doctor-detail-empty i {
    margin-bottom: 9px;
    font-size: 30px;
}

.doctor-detail-empty p {
    margin: 0;
    font-size: 11px;
}

.doctor-medical-history-list {
    display: grid;
    gap: 15px;
}

.doctor-history-card {
    padding: 17px;
    border: 1px solid #edf0f4;
    border-radius: 12px;
}

.doctor-history-header {
    padding-bottom: 13px;
    border-bottom: 1px solid #edf0f4;
    display: flex;
    justify-content: space-between;
}

.doctor-history-header span {
    color: #168576;
    font-size: 9px;
}

.doctor-history-header h3 {
    margin: 6px 0 2px;
    font-size: 13px;
    font-weight: 700;
}

.doctor-history-header p {
    margin: 0;
    color: #707b8d;
    font-size: 9px;
}

.doctor-history-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e1f7ea;
    color: #00a85b;
}

.doctor-history-grid {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.doctor-history-grid > div {
    padding: 12px;
    border-radius: 9px;
    background: #f6f9fc;
}

.doctor-history-grid span {
    color: #657185;
    font-size: 9px;
    font-weight: 600;
}

.doctor-history-grid p {
    margin: 5px 0 0;
    font-size: 10px;
}

.doctor-detail-table-wrapper {
    overflow-x: auto;
}

.doctor-detail-table {
    width: 100%;
    border-collapse: collapse;
}

.doctor-detail-table th,
.doctor-detail-table td {
    padding: 12px;
    border-bottom: 1px solid #edf0f4;
    text-align: left;
    font-size: 10px;
}

.doctor-detail-table th {
    background: #eaf7f4;
    color: #405064;
}

.doctor-detail-status {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 18px;
    color: #ffffff;
    font-size: 8px;
}

.detail-status-pending {
    background: #f2a000;
}

.detail-status-approved {
    background: #2463f5;
}

.detail-status-completed {
    background: #00a85b;
}

.detail-status-cancelled {
    background: #dc3545;
}

@media (max-width: 700px) {

    .doctor-patient-info-grid,
    .doctor-active-appointment-grid,
    .doctor-record-form-grid,
    .doctor-history-grid {
        grid-template-columns: 1fr;
    }

    .doctor-info-full-width,
    .doctor-record-full-width {
        grid-column: auto;
    }

    .doctor-patient-profile-top {
        align-items: flex-start;
        flex-direction: column;
        gap: 13px;
    }
}
/* ======================================================
HALAMAN REKOD PERUBATAN DOKTOR
====================================================== */

.doctor-medical-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #effaf7, #eef6ff);
    color: #172033;
}

.doctor-medical-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(25, 50, 75, .11);
}

.doctor-medical-header-content {
    width: min(94%, 1150px);
    min-height: 70px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-medical-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.doctor-medical-back,
.doctor-medical-header-icon {
    width: 41px;
    height: 41px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.doctor-medical-back {
    background: #e2f5f0;
    color: #168576;
}

.doctor-medical-back:hover {
    background: #168576;
    color: #ffffff;
}

.doctor-medical-header-icon {
    background: #168576;
    color: #ffffff;
}

.doctor-medical-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.doctor-medical-heading p {
    margin: 3px 0 0;
    color: #6b7688;
    font-size: 11px;
}

.doctor-medical-logout {
    color: #515b6b;
    font-size: 12px;
    font-weight: 600;
}

.doctor-medical-container {
    width: min(94%, 1150px);
    margin: 25px auto 50px;
}

.medical-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 17px;
}

.medical-summary-card {
    min-height: 105px;
    padding: 20px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    gap: 14px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.medical-summary-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}

.medical-blue {
    background: #e2ebff;
    color: #2463f5;
}

.medical-green {
    background: #ddf8e8;
    color: #00a85b;
}

.medical-purple {
    background: #f2e2ff;
    color: #9627dc;
}

.medical-summary-card span,
.medical-summary-card strong {
    display: block;
}

.medical-summary-card span {
    color: #6d788a;
    font-size: 10px;
}

.medical-summary-card strong {
    margin-top: 4px;
    font-size: 25px;
}

.medical-search-card,
.medical-edit-card,
.medical-record-panel {
    margin-top: 21px;
    padding: 21px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.medical-search-card form {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 10px;
}

.medical-search-field {
    min-height: 43px;
    padding: 0 14px;
    border: 1px solid #dbe2ec;
    border-radius: 11px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.medical-search-field i {
    color: #7d8798;
}

.medical-search-field input {
    width: 100%;
    border: none;
    outline: none;
    font-size: 11px;
}

.medical-search-button,
.medical-reset-button {
    min-height: 43px;
    padding: 0 18px;
    border: none;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 600;
}

.medical-search-button {
    background: #168576;
    color: #ffffff;
}

.medical-reset-button {
    background: #e9edf3;
    color: #566174;
}

.medical-section-heading {
    margin-bottom: 17px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.medical-section-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.medical-section-heading h2 i {
    margin-right: 7px;
    color: #168576;
}

.medical-section-heading p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 10px;
}

.medical-section-heading > span {
    color: #707b8d;
    font-size: 10px;
}

.medical-close-edit {
    width: 33px;
    height: 33px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffe4e7;
    color: #c92f3f;
}

.medical-edit-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0 15px;
}

.medical-edit-full {
    grid-column: 1 / -1;
}

.medical-update-button {
    width: 100%;
    min-height: 43px;
    border: none;
    border-radius: 23px;
    background: linear-gradient(135deg, #168576, #00a864);
    color: #ffffff;
    font-size: 11px;
    font-weight: 600;
}

.medical-record-table-wrapper {
    overflow-x: auto;
}

.medical-record-table {
    width: 100%;
    border-collapse: collapse;
}

.medical-record-table th,
.medical-record-table td {
    padding: 13px 11px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: middle;
    text-align: left;
    font-size: 10px;
}

.medical-record-table th {
    background: #eaf7f4;
    color: #405064;
    font-weight: 600;
}

.medical-patient-cell {
    min-width: 180px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.medical-patient-avatar {
    width: 39px;
    height: 39px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #168576;
    color: #ffffff;
    font-weight: 700;
}

.medical-patient-cell strong,
.medical-patient-cell small,
.medical-record-table td > strong,
.medical-record-table td > small {
    display: block;
}

.medical-patient-cell strong {
    font-size: 11px;
}

.medical-patient-cell small,
.medical-record-table td > small {
    margin-top: 3px;
    color: #7a8596;
    font-size: 8px;
}

.medical-text-cell {
    min-width: 160px;
    max-width: 240px;
}

.medical-action-group {
    display: flex;
    align-items: center;
    gap: 5px;
}

.medical-action-group form {
    margin: 0;
}

.medical-view-button,
.medical-edit-button,
.medical-print-button,
.medical-delete-button {
    width: 31px;
    height: 31px;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
}

.medical-view-button {
    background: #e2ebff;
    color: #2463f5;
}

.medical-edit-button {
    background: #fff0d9;
    color: #e66a00;
}

.medical-print-button {
    background: #e3f5f1;
    color: #168576;
}

.medical-delete-button {
    background: #ffe4e7;
    color: #c92f3f;
}

/* =====================================================
SURAT CUTI SAKIT DOKTOR
===================================================== */

.medical-mc-section {
    margin: 25px 0;
    padding: 22px;
    border: 1px solid #cfe0ff;
    border-radius: 15px;
    background: #f6f9ff;
}

.medical-mc-heading {
    margin-bottom: 18px;
}

.medical-mc-heading h3 {
    margin: 0;
    color: #172033;
    font-size: 17px;
    font-weight: 700;
}

.medical-mc-heading h3 i {
    margin-right: 7px;
    color: #2563eb;
}

.medical-mc-heading p {
    margin: 5px 0 0;
    color: #6b7688;
    font-size: 11px;
}

.medical-mc-status {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 20px;
    color: #ffffff;
    font-size: 9px;
    font-weight: 700;
    white-space: nowrap;
}

.medical-mc-yes {
    background: #2563eb;
}

.medical-mc-no {
    background: #94a3b8;
}

.medical-mc-print-button {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8efff;
    color: #2563eb;
    text-decoration: none;
}

.medical-mc-print-button:hover {
    background: #2563eb;
    color: #ffffff;
}

@media print {

    .doctor-medical-header,
    .medical-summary-grid,
    .medical-search-card,
    .medical-edit-card,
    .medical-action-group {
        display: none !important;
    }

    .doctor-medical-page {
        background: #ffffff;
    }

    .medical-record-panel {
        box-shadow: none;
    }
}

@media (max-width: 750px) {

    .medical-summary-grid,
    .medical-edit-grid {
        grid-template-columns: 1fr;
    }

    .medical-edit-full {
        grid-column: auto;
    }

    .medical-search-card form {
        grid-template-columns: 1fr;
    }

    .doctor-medical-header-icon {
        display: none;
    }
}

/* ======================================================
PENGURUSAN QUEUE DOKTOR
====================================================== */

.doctor-queue-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #effaf7, #eef6ff);
    color: #172033;
}

.doctor-queue-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(25, 50, 75, .11);
}

.doctor-queue-header-content {
    width: min(94%, 1100px);
    min-height: 70px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-queue-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.doctor-queue-back,
.doctor-queue-header-icon {
    width: 41px;
    height: 41px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.doctor-queue-back {
    background: #e2f5f0;
    color: #168576;
}

.doctor-queue-back:hover {
    background: #168576;
    color: #ffffff;
}

.doctor-queue-header-icon {
    background: #168576;
    color: #ffffff;
}

.doctor-queue-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.doctor-queue-heading p {
    margin: 3px 0 0;
    color: #6b7688;
    font-size: 11px;
}

.doctor-queue-logout {
    color: #515b6b;
    font-size: 12px;
    font-weight: 600;
}

.doctor-queue-container {
    width: min(94%, 1100px);
    margin: 25px auto 50px;
}

.doctor-queue-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 17px;
}

.doctor-queue-stat-card {
    min-height: 102px;
    padding: 19px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.doctor-queue-stat-icon {
    width: 47px;
    height: 47px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}

.doctor-queue-stat-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.doctor-queue-stat-icon.green {
    background: #ddf8e8;
    color: #00a85b;
}

.doctor-queue-stat-icon.purple {
    background: #f2e2ff;
    color: #9627dc;
}

.doctor-queue-stat-card span,
.doctor-queue-stat-card strong {
    display: block;
}

.doctor-queue-stat-card span {
    color: #6d788a;
    font-size: 10px;
}

.doctor-queue-stat-card strong {
    margin-top: 4px;
    font-size: 24px;
}

.doctor-room-text {
    font-size: 14px !important;
}

.doctor-current-queue-section,
.doctor-waiting-panel {
    margin-top: 21px;
    padding: 21px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.doctor-queue-section-heading {
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-queue-section-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.doctor-queue-section-heading p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 10px;
}

.doctor-queue-section-heading > span {
    color: #707b8d;
    font-size: 10px;
}

.doctor-current-queue-card {
    padding: 20px;
    border-radius: 13px;
    display: grid;
    grid-template-columns: 145px 1fr auto;
    align-items: center;
    gap: 20px;
    background: linear-gradient(135deg, #2463f5, #1749de);
    color: #ffffff;
}

.doctor-current-number {
    text-align: center;
}

.doctor-current-number span,
.doctor-current-number small {
    display: block;
    font-size: 9px;
}

.doctor-current-number strong {
    display: block;
    margin: 6px 0;
    font-size: 37px;
}

.doctor-current-patient-info {
    display: flex;
    align-items: center;
    gap: 12px;
}

.doctor-current-avatar {
    width: 53px;
    height: 53px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .18);
    font-size: 20px;
    font-weight: 700;
}

.doctor-current-patient-info h3 {
    margin: 0 0 5px;
    font-size: 15px;
    font-weight: 700;
}

.doctor-current-patient-info p {
    margin: 2px 0;
    font-size: 9px;
}

.doctor-current-actions {
    display: grid;
    gap: 7px;
}

.doctor-current-actions form {
    margin: 0;
}

.doctor-view-current-button,
.doctor-complete-current-button,
.doctor-skip-current-button {
    width: 140px;
    min-height: 34px;
    border: none;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 9px;
    font-weight: 600;
}

.doctor-view-current-button {
    background: #ffffff;
    color: #2463f5;
}

.doctor-complete-current-button {
    background: #00b86b;
    color: #ffffff;
}

.doctor-skip-current-button {
    background: #f2a000;
    color: #ffffff;
}

.doctor-no-current-patient {
    padding: 27px;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f4f8fc;
}

.doctor-no-current-patient i {
    color: #91a3b8;
    font-size: 29px;
}

.doctor-no-current-patient h3 {
    margin: 8px 0 3px;
    font-size: 14px;
}

.doctor-no-current-patient p {
    margin: 0;
    color: #748093;
    font-size: 10px;
}

.doctor-call-next-button {
    min-height: 39px;
    padding: 0 18px;
    border: none;
    border-radius: 20px;
    background: #2463f5;
    color: #ffffff;
    font-size: 10px;
    font-weight: 600;
}

.doctor-call-next-button:disabled {
    background: #aeb8c7;
    cursor: not-allowed;
}

.doctor-queue-search {
    min-height: 42px;
    margin-bottom: 14px;
    padding: 0 13px;
    border: 1px solid #dce3ed;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.doctor-queue-search i {
    color: #8792a3;
}

.doctor-queue-search input {
    width: 100%;
    border: none;
    outline: none;
    font-size: 10px;
}

.doctor-queue-search a {
    color: #dc3545;
    font-size: 9px;
    font-weight: 600;
}

.doctor-waiting-list {
    display: grid;
    gap: 9px;
}

.doctor-waiting-row {
    min-height: 64px;
    padding: 10px 12px;
    border-radius: 10px;
    display: grid;
    grid-template-columns: 44px minmax(150px, 1fr)
        minmax(150px, 1fr) auto 30px;
    align-items: center;
    gap: 11px;
    background: #f7f9fc;
}

.doctor-waiting-number {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #2463f5;
    color: #ffffff;
    font-size: 9px;
}

.doctor-waiting-info h3 {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
}

.doctor-waiting-info p,
.doctor-waiting-info small {
    display: block;
    margin: 2px 0 0;
    color: #738093;
    font-size: 8px;
}

.doctor-waiting-reason span {
    color: #7c8798;
    font-size: 8px;
}

.doctor-waiting-reason p {
    margin: 3px 0 0;
    font-size: 9px;
}

.doctor-waiting-badge {
    padding: 5px 11px;
    border-radius: 15px;
    background: #ddf8e8;
    color: #009c51;
    font-size: 8px;
}

.doctor-waiting-view {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #2463f5;
    color: #ffffff;
    font-size: 8px;
}

@media (max-width: 800px) {

    .doctor-queue-stat-grid {
        grid-template-columns: 1fr;
    }

    .doctor-current-queue-card {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .doctor-current-patient-info {
        justify-content: center;
    }

    .doctor-current-actions {
        justify-items: center;
    }

    .doctor-no-current-patient {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }

    .doctor-waiting-row {
        grid-template-columns: 42px 1fr auto;
    }

    .doctor-waiting-reason,
    .doctor-waiting-badge {
        display: none;
    }
}

@media (max-width: 500px) {

    .doctor-queue-container {
        width: calc(100% - 20px);
    }

    .doctor-queue-header-content {
        width: calc(100% - 20px);
    }

    .doctor-queue-header-icon {
        display: none;
    }

    .doctor-queue-logout {
        font-size: 0;
    }

    .doctor-queue-logout i {
        font-size: 16px;
    }
}

/* ======================================================
PROFIL DOKTOR
====================================================== */

.doctor-profile-page {
    min-height: 100vh;
    background:
        linear-gradient(
            135deg,
            #effaf7,
            #eef6ff
        );
    color: #172033;
}

.doctor-profile-header {
    background: #ffffff;
    box-shadow:
        0 2px 9px
        rgba(25, 50, 75, .11);
}

.doctor-profile-header-content {
    width: min(94%, 1050px);
    min-height: 70px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-profile-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.doctor-profile-back,
.doctor-profile-header-icon {
    width: 41px;
    height: 41px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.doctor-profile-back {
    background: #e2f5f0;
    color: #168576;
}

.doctor-profile-back:hover {
    background: #168576;
    color: #ffffff;
}

.doctor-profile-header-icon {
    background: #168576;
    color: #ffffff;
}

.doctor-profile-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.doctor-profile-heading p {
    margin: 3px 0 0;
    color: #6b7688;
    font-size: 11px;
}

.doctor-profile-logout {
    color: #515b6b;
    font-size: 12px;
    font-weight: 600;
}

.doctor-profile-container {
    width: min(
        1000px,
        calc(100% - 30px)
    );
    margin: 25px auto 50px;
}

.doctor-profile-layout {
    display: grid;
    grid-template-columns:
        280px minmax(0, 1fr);
    gap: 22px;
}

.doctor-profile-summary,
.doctor-profile-form-card {
    padding: 24px;
    border-radius: 16px;
    background: #ffffff;
    box-shadow:
        0 8px 20px
        rgba(35, 57, 82, .1);
}

.doctor-profile-summary {
    align-self: start;
    text-align: center;
}

.doctor-profile-avatar {
    width: 92px;
    height: 92px;
    margin: 0 auto 14px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(
            135deg,
            #168576,
            #00bd72
        );
    color: #ffffff;
    font-size: 34px;
    font-weight: 700;
}

.doctor-profile-summary h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.doctor-profile-summary > p {
    margin: 5px 0 10px;
    color: #707b8d;
    font-size: 11px;
}

.doctor-profile-status {
    display: inline-block;
    margin-bottom: 17px;
    padding: 5px 14px;
    border-radius: 18px;
    background: #ddf8e8;
    color: #009a51;
    font-size: 9px;
    font-weight: 600;
}

.doctor-profile-summary-row {
    padding: 12px 0;
    border-top:
        1px solid #edf0f4;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    text-align: left;
}

.doctor-profile-summary-row span {
    color: #707b8d;
    font-size: 9px;
}

.doctor-profile-summary-row strong {
    font-size: 10px;
    text-align: right;
}

.doctor-profile-form-heading {
    margin-bottom: 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-profile-form-heading h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
}

.doctor-profile-form-heading p {
    margin: 5px 0 0;
    color: #707b8d;
    font-size: 11px;
}

.doctor-profile-form-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2f5f0;
    color: #168576;
    font-size: 20px;
}

.doctor-profile-form-grid {
    display: grid;
    grid-template-columns:
        repeat(2, 1fr);
    gap: 0 16px;
}

.doctor-profile-full {
    grid-column: 1 / -1;
}

.doctor-password-section {
    margin: 7px 0 21px;
    padding: 18px;
    border-radius: 13px;
    background: #f5f8fc;
}

.doctor-password-heading {
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 11px;
}

.doctor-password-icon {
    width: 39px;
    height: 39px;
    flex-shrink: 0;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff0d9;
    color: #f16b00;
}

.doctor-password-heading h3 {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
}

.doctor-password-heading p {
    margin: 3px 0 0;
    color: #747f91;
    font-size: 9px;
}

.doctor-password-input {
    position: relative;
}

.doctor-password-input .form-control {
    padding-right: 45px;
}

.doctor-password-toggle {
    position: absolute;
    top: 50%;
    right: 13px;
    border: none;
    background: transparent;
    color: #6c7788;
    transform: translateY(-50%);
}

.doctor-profile-save {
    width: 100%;
    min-height: 44px;
    border: none;
    border-radius: 24px;
    background:
        linear-gradient(
            135deg,
            #168576,
            #00a864
        );
    color: #ffffff;
    font-size: 11px;
    font-weight: 600;
    transition: .2s;
}

.doctor-profile-save:hover {
    transform: translateY(-2px);
    box-shadow:
        0 8px 17px
        rgba(22, 133, 118, .22);
}

@media (max-width: 760px) {

    .doctor-profile-layout,
    .doctor-profile-form-grid {
        grid-template-columns: 1fr;
    }

    .doctor-profile-full {
        grid-column: auto;
    }
}

@media (max-width: 500px) {

    .doctor-profile-container {
        width: calc(100% - 20px);
    }

    .doctor-profile-header-content {
        width: calc(100% - 20px);
    }

    .doctor-profile-header-icon {
        display: none;
    }

    .doctor-profile-logout {
        font-size: 0;
    }

    .doctor-profile-logout i {
        font-size: 16px;
    }

    .doctor-profile-form-card,
    .doctor-profile-summary {
        padding: 19px;
    }
}
/* ======================================================
NOTIFIKASI DOKTOR
====================================================== */

.doctor-notification-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #effaf7, #eef6ff);
    color: #172033;
}

.doctor-notification-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(25, 50, 75, .11);
}

.doctor-notification-header-content {
    width: min(94%, 950px);
    min-height: 70px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-notification-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.doctor-notification-back,
.doctor-notification-header-icon {
    width: 41px;
    height: 41px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.doctor-notification-back {
    background: #e2f5f0;
    color: #168576;
}

.doctor-notification-back:hover {
    background: #168576;
    color: #ffffff;
}

.doctor-notification-header-icon {
    background: #168576;
    color: #ffffff;
}

.doctor-notification-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.doctor-notification-heading p {
    margin: 3px 0 0;
    color: #6b7688;
    font-size: 11px;
}

.doctor-notification-logout {
    color: #515b6b;
    font-size: 12px;
    font-weight: 600;
}

.doctor-notification-container {
    width: min(850px, calc(100% - 30px));
    margin: 25px auto 50px;
}

.doctor-notification-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-notification-title {
    display: flex;
    align-items: center;
    gap: 13px;
}

.doctor-notification-main-icon {
    position: relative;
    width: 55px;
    height: 55px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #168576, #00bd72);
    color: #ffffff;
    font-size: 22px;
}

.doctor-notification-main-icon span {
    position: absolute;
    top: -7px;
    right: -7px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border: 2px solid #ffffff;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #dc3545;
    color: #ffffff;
    font-size: 9px;
    font-weight: 700;
}

.doctor-notification-title h2 {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
}

.doctor-notification-title p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 11px;
}

.doctor-notification-top-actions {
    display: flex;
    gap: 8px;
}

.doctor-notification-top-actions form {
    margin: 0;
}

.doctor-notification-read-all,
.doctor-notification-delete-all {
    min-height: 38px;
    padding: 0 14px;
    border: none;
    border-radius: 20px;
    font-size: 9px;
    font-weight: 600;
}

.doctor-notification-read-all {
    background: #e2f5f0;
    color: #168576;
}

.doctor-notification-delete-all {
    background: #ffe4e7;
    color: #c92f3f;
}

.doctor-notification-filter {
    margin-top: 20px;
    padding: 9px;
    border-radius: 13px;
    display: flex;
    gap: 6px;
    overflow-x: auto;
    background: #ffffff;
    box-shadow: 0 7px 16px rgba(35, 57, 82, .09);
}

.doctor-notification-filter a {
    padding: 8px 14px;
    border-radius: 18px;
    color: #657185;
    font-size: 9px;
    font-weight: 600;
    white-space: nowrap;
}

.doctor-notification-filter a.active,
.doctor-notification-filter a:hover {
    background: #168576;
    color: #ffffff;
}

.doctor-notification-list {
    margin-top: 18px;
    display: grid;
    gap: 13px;
}

.doctor-notification-card {
    position: relative;
    padding: 17px;
    border: 1px solid transparent;
    border-radius: 14px;
    display: grid;
    grid-template-columns: 47px 1fr auto;
    gap: 13px;
    background: #ffffff;
    box-shadow: 0 7px 16px rgba(35, 57, 82, .09);
}

.doctor-notification-unread {
    border-color: #7fd3bd;
    background: #f8fffc;
}

.doctor-notification-unread::before {
    content: "";
    position: absolute;
    top: 15px;
    left: -4px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #168576;
}

.doctor-notification-type-icon {
    width: 47px;
    height: 47px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.doctor-notification-appointment {
    background: #e1ebff;
    color: #2463f5;
}

.doctor-notification-queue {
    background: #ddf8e8;
    color: #00a95b;
}

.doctor-notification-medical {
    background: #f2e2ff;
    color: #942bd4;
}

.doctor-notification-general {
    background: #fff0d9;
    color: #f16b00;
}

.doctor-notification-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.doctor-notification-title-row h3 {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
}

.doctor-notification-title-row span {
    padding: 3px 8px;
    border-radius: 15px;
    background: #168576;
    color: #ffffff;
    font-size: 8px;
}

.doctor-notification-content > p {
    margin: 7px 0;
    color: #5f6b7e;
    font-size: 10px;
    line-height: 1.6;
}

.doctor-notification-meta {
    display: flex;
    gap: 14px;
    color: #8791a1;
    font-size: 8px;
}

.doctor-notification-actions {
    display: flex;
    gap: 5px;
}

.doctor-notification-actions form {
    margin: 0;
}

.doctor-notification-read-button,
.doctor-notification-delete-button {
    width: 31px;
    height: 31px;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
}

.doctor-notification-read-button {
    background: #ddf8e8;
    color: #008f4d;
}

.doctor-notification-delete-button {
    background: #ffe5e8;
    color: #c92f3f;
}

.doctor-notification-empty {
    margin-top: 20px;
    padding: 45px 20px;
    border-radius: 15px;
    background: #ffffff;
    text-align: center;
    color: #748093;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.doctor-notification-empty i {
    margin-bottom: 12px;
    font-size: 37px;
    color: #9aaca8;
}

.doctor-notification-empty h3 {
    font-size: 16px;
}

.doctor-notification-empty p {
    font-size: 10px;
}

@media (max-width: 700px) {

    .doctor-notification-top {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }

    .doctor-notification-top-actions {
        width: 100%;
    }

    .doctor-notification-top-actions form {
        flex: 1;
    }

    .doctor-notification-read-all,
    .doctor-notification-delete-all {
        width: 100%;
    }

    .doctor-notification-card {
        grid-template-columns: 43px 1fr;
    }

    .doctor-notification-actions {
        grid-column: 2;
    }
}

/* ======================================================
DASHBOARD ADMIN
====================================================== */

.admin-dashboard-page {
    min-height: 100vh;
    margin: 0;
    background:
        linear-gradient(
            135deg,
            #eef6ff,
            #f1fff9
        );
    color: #172033;
}

.admin-dashboard-header {
    background: #ffffff;
    box-shadow:
        0 2px 10px
        rgba(30, 55, 90, .1);
}

.admin-dashboard-header-content {
    width: min(94%, 1150px);
    min-height: 72px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-dashboard-brand,
.admin-dashboard-header-right,
.admin-dashboard-user {
    display: flex;
    align-items: center;
}

.admin-dashboard-brand {
    gap: 12px;
}

.admin-dashboard-logo {
    width: 46px;
    height: 46px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(
            135deg,
            #6f42c1,
            #1648d8
             );
    color: #ffffff;
    font-size: 21px;
}

.admin-dashboard-brand h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-dashboard-brand p {
    margin: 3px 0 0;
    color: #718096;
    font-size: 11px;
}

.admin-dashboard-header-right {
    gap: 22px;
}

.admin-dashboard-user {
    gap: 9px;
}

.admin-dashboard-avatar {
    width: 39px;
    height: 39px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e1ebff;
    color: #2463f5;
    font-weight: 700;
}

.admin-dashboard-user strong,
.admin-dashboard-user span {
    display: block;
}

.admin-dashboard-user strong {
    font-size: 11px;
}

.admin-dashboard-user span {
    color: #7a8597;
    font-size: 9px;
}

.admin-dashboard-logout {
    color: #556174;
    font-size: 11px;
    font-weight: 600;
}

.admin-dashboard-logout:hover {
    color: #dc3545;
}

.admin-dashboard-container {
    width: min(94%, 1150px);
    margin: 26px auto 50px;
}

.admin-welcome-section {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-welcome-section h2 {
    margin: 0;
    font-size: 24px;
    font-weight: 700;
}

.admin-welcome-section p {
    margin: 5px 0 0;
    color: #707b8d;
    font-size: 11px;
}

.admin-dashboard-date {
    padding: 9px 15px;
    border-radius: 20px;
    background: #ffffff;
    color: #647084;
    box-shadow:
        0 5px 14px
        rgba(35, 57, 82, .08);
    font-size: 10px;
}

.admin-dashboard-date i {
    margin-right: 5px;
    color: #2463f5;
}

.admin-stat-grid {
    margin-top: 22px;
    display: grid;
    grid-template-columns:
        repeat(4, 1fr);
    gap: 16px;
}

.admin-stat-card {
    min-height: 118px;
    padding: 20px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    gap: 14px;
    background: #ffffff;
    box-shadow:
        0 8px 20px
        rgba(35, 57, 82, .1);
    transition: .2s;
}

.admin-stat-card:hover {
    transform: translateY(-4px);
}

.admin-stat-icon {
    width: 49px;
    height: 49px;
    flex-shrink: 0;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}

.admin-stat-blue {
    background: #e1ebff;
    color: #2463f5;
}

.admin-stat-green {
    background: #ddf8e8;
    color: #00a85b;
}

.admin-stat-orange {
    background: #fff0d9;
    color: #f16b00;
}

.admin-stat-purple {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-stat-card span,
.admin-stat-card strong,
.admin-stat-card p {
    display: block;
}

.admin-stat-card span {
    color: #6f7a8d;
    font-size: 10px;
}

.admin-stat-card strong {
    margin-top: 4px;
    font-size: 25px;
}

.admin-stat-card p {
    margin: 3px 0 0;
    color: #8a94a5;
    font-size: 8px;
}

.admin-appointment-summary {
    margin-top: 16px;
    padding: 16px 20px;
    border-radius: 14px;
    display: grid;
    grid-template-columns:
        repeat(3, 1fr);
    gap: 15px;
    background:
        linear-gradient(
        135deg,
        #6f42c1,
        #5630a5

        );
    color: #ffffff;
    box-shadow:
        0 9px 20px
        rgba(36, 99, 245, .18);
}

.admin-appointment-item {
    padding: 8px 15px;
    border-right:
        1px solid
        rgba(255, 255, 255, .2);
}

.admin-appointment-item:last-child {
    border-right: none;
}

.admin-appointment-item span,
.admin-appointment-item strong {
    display: block;
}

.admin-appointment-item span {
    font-size: 9px;
    opacity: .85;
}

.admin-appointment-item strong {
    margin-top: 4px;
    font-size: 22px;
}

.admin-dashboard-section {
    margin-top: 22px;
    padding: 21px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow:
        0 8px 20px
        rgba(35, 57, 82, .1);
}

.admin-section-heading {
    margin-bottom: 17px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-section-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.admin-section-heading p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 10px;
}

.admin-section-heading > a {
    color: #2463f5;
    font-size: 9px;
    font-weight: 600;
}

.admin-menu-grid {
    display: grid;
    grid-template-columns:
        repeat(2, 1fr);
    gap: 13px;
}

.admin-menu-card {
    min-height: 87px;
    padding: 15px;
    border: 1px solid #edf0f4;
    border-radius: 12px;
    display: grid;
    grid-template-columns:
        46px 1fr auto;
    align-items: center;
    gap: 12px;
    color: #172033;
    transition: .2s;
}

.admin-menu-card:hover {
    color: #172033;
    border-color: #a9c0ff;
    transform: translateY(-3px);
    box-shadow:
        0 8px 16px
        rgba(35, 57, 82, .1);
}

.admin-menu-icon {
    width: 46px;
    height: 46px;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}

.menu-blue {
    background: #e1ebff;
    color: #2463f5;
}

.menu-green {
    background: #ddf8e8;
    color: #00a85b;
}

.menu-purple {
    background: #f2e2ff;
    color: #9627dc;
}

.menu-orange {
    background: #fff0d9;
    color: #f16b00;
}

.menu-red {
    background: #ffe3e6;
    color: #dc3545;
}

.menu-gray {
    background: #e9edf3;
    color: #5f6b7e;
}

.admin-menu-card h3 {
    margin: 0;
    font-size: 12px;
    font-weight: 700;
}

.admin-menu-card p {
    margin: 4px 0 0;
    color: #748093;
    font-size: 9px;
}

.admin-menu-card > i {
    color: #9aa4b4;
    font-size: 10px;
}

.admin-activity-list {
    display: grid;
    gap: 10px;
}

.admin-activity-item {
    min-height: 60px;
    padding: 11px 13px;
    border-radius: 10px;
    display: grid;
    grid-template-columns:
        39px 1fr auto;
    align-items: center;
    gap: 11px;
    background: #f7f9fc;
}

.admin-activity-icon {
    width: 39px;
    height: 39px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
}

.activity-blue {
    background: #e1ebff;
    color: #2463f5;
}

.activity-green {
    background: #ddf8e8;
    color: #00a85b;
}

.activity-purple {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-activity-content h3 {
    margin: 0;
    font-size: 10px;
    font-weight: 700;
}

.admin-activity-content p {
    margin: 3px 0 0;
    color: #748093;
    font-size: 9px;
}

.admin-activity-time {
    color: #8b95a5;
    font-size: 8px;
}

.admin-empty-activity {
    padding: 32px;
    text-align: center;
    color: #748093;
}

.admin-empty-activity i {
    margin-bottom: 9px;
    font-size: 28px;
}

.admin-empty-activity p {
    margin: 0;
    font-size: 10px;
}

@media (max-width: 900px) {

    .admin-stat-grid {
        grid-template-columns:
            repeat(2, 1fr);
    }
}

@media (max-width: 700px) {

    .admin-menu-grid,
    .admin-appointment-summary {
        grid-template-columns: 1fr;
    }

    .admin-appointment-item {
        border-right: none;
        border-bottom:
            1px solid
            rgba(255, 255, 255, .2);
    }

    .admin-appointment-item:last-child {
        border-bottom: none;
    }

    .admin-welcome-section {
        align-items: flex-start;
        flex-direction: column;
        gap: 13px;
    }
}

@media (max-width: 520px) {

    .admin-dashboard-container {
        width: calc(100% - 20px);
    }

    .admin-dashboard-header-content {
        width: calc(100% - 20px);
    }

    .admin-stat-grid {
        grid-template-columns: 1fr;
    }

    .admin-dashboard-user {
        display: none;
    }

    .admin-dashboard-logout {
        font-size: 0;
    }

    .admin-dashboard-logout i {
        font-size: 16px;
    }

    .admin-menu-card {
        grid-template-columns:
            42px 1fr;
    }

    .admin-menu-card > i {
        display: none;
    }

    .admin-activity-item {
        grid-template-columns:
            38px 1fr;
    }

    .admin-activity-time {
        grid-column: 2;
    }
}

/* =========================
   BAHAGIAN WALK-IN PATIENT
========================= */

.walkin-page-container {
    max-width: 1100px;
    margin: 35px auto;
    padding: 0 20px;
}

.walkin-header {
    display: flex;
    align-items: center;
    gap: 18px;
    background: #ffffff;
    padding: 25px 30px;
    border-radius: 20px;
    margin-bottom: 22px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.05);
}

.walkin-header h1 {
    margin: 0;
    color: #102a43;
    font-size: 30px;
    font-weight: 700;
}

.walkin-header p {
    margin: 5px 0 0;
    color: #64748b;
}

.walkin-back {
    width: 55px;
    height: 55px;
    border-radius: 50%;
    background: #f8fafc;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #102a43;
    text-decoration: none;
    font-size: 20px;
}

.walkin-back:hover {
    background: #e0f2fe;
    color: #0284c7;
}

.walkin-card {
    background: #ffffff;
    padding: 30px;
    border-radius: 20px;
    box-shadow: 0 8px 25px rgba(0,0,0,0.05);
}

.walkin-card h2 {
    color: #102a43;
    font-size: 21px;
    margin-bottom: 25px;
    font-weight: 700;
}

.walkin-info {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    color: #166534;
    padding: 15px 18px;
    border-radius: 12px;
    margin-bottom: 28px;
}

.patient-type-buttons {
    display: flex;
    gap: 10px;
    margin-top: 8px;
}

.patient-type-btn {
    border: 1px solid #dbe4ee;
    background: #f8fafc;
    color: #475569;
    padding: 11px 18px;
    border-radius: 10px;
    cursor: pointer;
    font-weight: 600;
}

.patient-type-btn.active {
    background: #e0f2fe;
    border-color: #38bdf8;
    color: #0369a1;
}

.patient-section {
    margin-top: 10px;
}

.new-patient-box {
    background: #f8fbfd;
    border: 1px solid #e2e8f0;
    border-radius: 15px;
    padding: 22px;
}

.new-patient-box h3 {
    color: #102a43;
    font-size: 18px;
    margin-bottom: 20px;
}

.form-label {
    color: #102a43;
    font-weight: 600;
}

.form-control,
.form-select {
    border-radius: 10px;
    border: 1px solid #d7e0ea;
    min-height: 47px;
}

.form-control:focus,
.form-select:focus {
    border-color: #60a5fa;
    box-shadow: 0 0 0 3px rgba(96,165,250,0.15);
}

.walkin-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #e0f2fe;
    color: #0369a1;
    padding: 9px 16px;
    border-radius: 25px;
    font-weight: 700;
}

.walkin-buttons {
    display: flex;
    gap: 12px;
    margin-top: 30px;
}

.walkin-submit {
    border: none;
    background: #16a34a;
    color: #ffffff;
    padding: 12px 22px;
    border-radius: 10px;
    font-weight: 700;
    cursor: pointer;
}

.walkin-submit:hover {
    background: #15803d;
}

.walkin-cancel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 22px;
    border-radius: 10px;
    background: #f1f5f9;
    color: #334155;
    text-decoration: none;
    font-weight: 600;
}

.walkin-cancel:hover {
    background: #e2e8f0;
    color: #334155;
}

.walkin-alert {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 20px;
    border-radius: 12px;
    margin-bottom: 20px;
}

.walkin-success {
    background: #f0fdf4;
    border: 1px solid #86efac;
    color: #166534;
}

.walkin-error {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
}

.walkin-queue-result {
    margin-top: 8px;
    font-size: 18px;
}

.walkin-queue-result strong {
    font-size: 24px;
}

@media (max-width: 768px) {

    .walkin-page-container {
        margin: 20px auto;
        padding: 0 12px;
    }

    .walkin-header {
        padding: 20px;
    }

    .walkin-header h1 {
        font-size: 24px;
    }

    .walkin-card {
        padding: 20px;
    }

    .patient-type-buttons {
        flex-direction: column;
    }

    .patient-type-btn {
        width: 100%;
    }

    .walkin-buttons {
        flex-direction: column;
    }

    .walkin-submit,
    .walkin-cancel {
        width: 100%;
    }
}

/* BUTANG WALK-IN DALAM DASHBOARD ADMIN */

.walkin-icon {
    background: #e0f2fe;
    color: #0284c7;
}

/* ======================================================
PENGURUSAN PENGGUNA ADMIN
====================================================== */

.manage-users-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.manage-users-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(30, 55, 90, .1);
}

.manage-users-header-content {
    width: min(94%, 1200px);
    min-height: 71px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.manage-users-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.manage-users-back,
.manage-users-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.manage-users-back {
    background: #e2ebff;
    color: #2463f5;
}

.manage-users-back:hover {
    background: #2463f5;
    color: #ffffff;
}

.manage-users-header-icon {
    background: #2463f5;
    color: #ffffff;
}

.manage-users-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.manage-users-heading p {
    margin: 3px 0 0;
    color: #6f7a8d;
    font-size: 10px;
}

.manage-users-logout {
    color: #556174;
    font-size: 11px;
    font-weight: 600;
}

.manage-users-container {
    width: min(94%, 1200px);
    margin: 25px auto 50px;
}

.manage-user-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.manage-user-stat-card {
    min-height: 105px;
    padding: 19px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.manage-user-stat-icon {
    width: 47px;
    height: 47px;
    flex-shrink: 0;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}

.manage-user-stat-icon.total {
    background: #e2ebff;
    color: #2463f5;
}

.manage-user-stat-icon.patient {
    background: #ddf8e8;
    color: #00a85b;
}

.manage-user-stat-icon.doctor {
    background: #f2e2ff;
    color: #9627dc;
}

.manage-user-stat-icon.admin {
    background: #fff0d9;
    color: #f16b00;
}

.manage-user-stat-card span,
.manage-user-stat-card strong {
    display: block;
}

.manage-user-stat-card span {
    color: #707b8d;
    font-size: 10px;
}

.manage-user-stat-card strong {
    margin-top: 4px;
    font-size: 25px;
}

.manage-user-action-bar {
    margin-top: 20px;
    padding: 20px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(135deg, #2463f5, #1749de);
    color: #ffffff;
    box-shadow: 0 9px 20px rgba(36, 99, 245, .18);
}

.manage-user-action-bar h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.manage-user-action-bar p {
    margin: 4px 0 0;
    font-size: 10px;
    opacity: .85;
}

.manage-user-top-buttons {
    display: flex;
    gap: 9px;
}

.manage-add-doctor,
.manage-add-patient {
    min-height: 39px;
    padding: 0 15px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 9px;
    font-weight: 600;
}

.manage-add-doctor {
    background: #ffffff;
    color: #2463f5;
}

.manage-add-patient {
    background: #00b86b;
    color: #ffffff;
}

.manage-add-patient:hover {
    color: #ffffff;
}

.manage-users-filter-card,
.manage-users-panel {
    margin-top: 20px;
    padding: 20px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.manage-users-filter-card form {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 180px auto auto;
    gap: 10px;
}

.manage-users-search {
    min-height: 43px;
    padding: 0 13px;
    border: 1px solid #dbe2ec;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.manage-users-search i {
    color: #8490a1;
}

.manage-users-search input {
    width: 100%;
    border: none;
    outline: none;
    font-size: 10px;
}

.manage-users-filter-button,
.manage-users-reset-button {
    min-height: 43px;
    padding: 0 17px;
    border: none;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 9px;
    font-weight: 600;
}

.manage-users-filter-button {
    background: #2463f5;
    color: #ffffff;
}

.manage-users-reset-button {
    background: #e9edf3;
    color: #566174;
}

.manage-users-panel-heading {
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.manage-users-panel-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.manage-users-panel-heading p,
.manage-users-panel-heading > span {
    margin: 3px 0 0;
    color: #707b8d;
    font-size: 9px;
}

.manage-users-table-wrapper {
    overflow-x: auto;
}

.manage-users-table {
    width: 100%;
    border-collapse: collapse;
}

.manage-users-table th,
.manage-users-table td {
    padding: 13px 11px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: middle;
    text-align: left;
    font-size: 9px;
}

.manage-users-table th {
    background: #edf4ff;
    color: #405064;
    font-weight: 600;
}

.manage-user-cell {
    min-width: 170px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.manage-user-avatar {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.manage-user-cell strong,
.manage-user-cell small {
    display: block;
}

.manage-user-cell strong {
    font-size: 10px;
}

.manage-user-cell small {
    margin-top: 2px;
    color: #7b8697;
    font-size: 8px;
}

.manage-role-badge {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 16px;
    font-size: 8px;
    font-weight: 600;
}

.manage-role-patient {
    background: #ddf8e8;
    color: #009b52;
}

.manage-role-doctor {
    background: #e2ebff;
    color: #2463f5;
}

.manage-role-admin {
    background: #f2e2ff;
    color: #9627dc;
}

.manage-user-avatar.manage-role-patient {
    background: #ddf8e8;
    color: #009b52;
}

.manage-user-avatar.manage-role-doctor {
    background: #e2ebff;
    color: #2463f5;
}

.manage-user-avatar.manage-role-admin {
    background: #f2e2ff;
    color: #9627dc;
}

.manage-contact-data {
    min-width: 150px;
}

.manage-contact-data span {
    display: block;
    margin: 3px 0;
    color: #657185;
    font-size: 8px;
}

.manage-contact-data i {
    width: 13px;
    color: #2463f5;
}

.manage-user-info-text {
    color: #657185;
    font-size: 9px;
}

.manage-status-active,
.manage-status-inactive {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 16px;
    font-size: 8px;
}

.manage-status-active {
    background: #ddf8e8;
    color: #009b52;
}

.manage-status-inactive {
    background: #ffe3e6;
    color: #c92f3f;
}

.manage-user-actions {
    display: flex;
    align-items: center;
    gap: 5px;
}

.manage-user-actions form {
    margin: 0;
}

.manage-user-view,
.manage-user-edit,
.manage-user-delete,
.manage-current-admin {
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 8px;
}

.manage-user-view {
    background: #e2ebff;
    color: #2463f5;
}

.manage-user-edit {
    background: #fff0d9;
    color: #e66a00;
}

.manage-user-delete {
    background: #ffe3e6;
    color: #c92f3f;
}

.manage-current-admin {
    background: #f2e2ff;
    color: #9627dc;
}

.manage-users-pagination {
    margin-top: 18px;
    display: flex;
    justify-content: center;
    gap: 6px;
}

.manage-users-pagination a {
    min-width: 32px;
    height: 32px;
    padding: 0 9px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #edf1f6;
    color: #596579;
    font-size: 9px;
}

.manage-users-pagination a.active,
.manage-users-pagination a:hover {
    background: #2463f5;
    color: #ffffff;
}

.manage-users-empty {
    padding: 45px 20px;
    text-align: center;
    color: #748093;
}

.manage-users-empty i {
    margin-bottom: 11px;
    font-size: 36px;
}

.manage-users-empty h3 {
    font-size: 15px;
}

.manage-users-empty p {
    font-size: 9px;
}

@media (max-width: 950px) {

    .manage-user-stat-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .manage-users-filter-card form {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 700px) {

    .manage-user-action-bar {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }

    .manage-user-top-buttons {
        width: 100%;
    }

    .manage-add-doctor,
    .manage-add-patient {
        flex: 1;
        justify-content: center;
    }
}

@media (max-width: 520px) {

    .manage-users-container,
    .manage-users-header-content {
        width: calc(100% - 20px);
    }

    .manage-user-stat-grid,
    .manage-users-filter-card form {
        grid-template-columns: 1fr;
    }

    .manage-users-header-icon {
        display: none;
    }

    .manage-users-logout {
        font-size: 0;
    }

    .manage-users-logout i {
        font-size: 16px;
    }

    .manage-user-top-buttons {
        flex-direction: column;
    }
}

/* ======================================================
PENGURUSAN PESAKIT
====================================================== */

.admin-patient-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.admin-patient-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(30, 55, 90, .1);
}

.admin-patient-header-content {
    width: min(94%, 1150px);
    min-height: 71px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-patient-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.admin-patient-back,
.admin-patient-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-patient-back {
    background: #e2ebff;
    color: #2463f5;
}

.admin-patient-back:hover {
    background: #2463f5;
    color: #ffffff;
}

.admin-patient-header-icon {
    background: #2463f5;
    color: #ffffff;
}

.admin-patient-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-patient-heading p {
    margin: 3px 0 0;
    color: #6f7a8d;
    font-size: 10px;
}

.admin-patient-logout {
    color: #556174;
    font-size: 11px;
    font-weight: 600;
}

.admin-patient-container {
    width: min(94%, 1150px);
    margin: 25px auto 50px;
}

.admin-patient-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.admin-patient-stat-card {
    min-height: 104px;
    padding: 19px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-patient-stat-icon {
    width: 47px;
    height: 47px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}

.admin-patient-stat-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.admin-patient-stat-icon.green {
    background: #ddf8e8;
    color: #00a85b;
}

.admin-patient-stat-icon.purple {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-patient-stat-icon.orange {
    background: #fff0d9;
    color: #f16b00;
}

.admin-patient-stat-card span,
.admin-patient-stat-card strong {
    display: block;
}

.admin-patient-stat-card span {
    color: #707b8d;
    font-size: 10px;
}

.admin-patient-stat-card strong {
    margin-top: 4px;
    font-size: 25px;
}

.admin-patient-detail-card,
.admin-patient-edit-card,
.admin-patient-filter-card,
.admin-patient-panel {
    margin-top: 20px;
    padding: 21px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-patient-section-heading {
    margin-bottom: 17px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-patient-section-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.admin-patient-section-heading p,
.admin-patient-section-heading > span {
    margin: 3px 0 0;
    color: #707b8d;
    font-size: 9px;
}

.admin-patient-close {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffe3e6;
    color: #c92f3f;
}

.admin-patient-profile-top {
    display: flex;
    align-items: center;
    gap: 13px;
}

.admin-patient-large-avatar {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #2463f5, #00bd72);
    color: #ffffff;
    font-size: 23px;
    font-weight: 700;
}

.admin-patient-profile-top h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-patient-profile-top p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 10px;
}

.admin-patient-info-grid,
.admin-patient-form-grid {
    margin-top: 18px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 13px;
}

.admin-patient-info-grid > div {
    padding: 12px;
    border-radius: 9px;
    background: #f6f9fc;
}

.admin-patient-info-grid span,
.admin-patient-info-grid strong {
    display: block;
}

.admin-patient-info-grid span {
    color: #707b8d;
    font-size: 8px;
}

.admin-patient-info-grid strong {
    margin-top: 5px;
    font-size: 10px;
}

.admin-patient-full {
    grid-column: 1 / -1;
}

.admin-patient-history-grid {
    margin-top: 18px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

.admin-patient-history-grid > div {
    padding: 15px;
    border-radius: 11px;
    background: #f7f9fc;
}

.admin-patient-history-grid h3 {
    margin: 0 0 11px;
    font-size: 12px;
    font-weight: 700;
}

.admin-history-item {
    padding: 10px 0;
    border-bottom: 1px solid #e6ebf2;
}

.admin-history-item:last-child {
    border-bottom: none;
}

.admin-history-item strong,
.admin-history-item span,
.admin-history-item small {
    display: block;
}

.admin-history-item strong {
    font-size: 9px;
}

.admin-history-item span,
.admin-history-item small {
    margin-top: 3px;
    color: #748093;
    font-size: 8px;
}

.admin-patient-empty-text {
    margin: 0;
    color: #748093;
    font-size: 9px;
}

.admin-patient-save {
    width: 100%;
    min-height: 43px;
    margin-top: 5px;
    border: none;
    border-radius: 23px;
    background: linear-gradient(135deg, #2463f5, #1749de);
    color: #ffffff;
    font-size: 10px;
    font-weight: 600;
}

.admin-patient-filter-card form {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 170px auto auto;
    gap: 10px;
}

.admin-patient-search {
    min-height: 43px;
    padding: 0 13px;
    border: 1px solid #dbe2ec;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.admin-patient-search i {
    color: #8490a1;
}

.admin-patient-search input {
    width: 100%;
    border: none;
    outline: none;
    font-size: 10px;
}

.admin-patient-filter-button,
.admin-patient-reset {
    min-height: 43px;
    padding: 0 17px;
    border: none;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 9px;
    font-weight: 600;
}

.admin-patient-filter-button {
    background: #2463f5;
    color: #ffffff;
}

.admin-patient-reset {
    background: #e9edf3;
    color: #566174;
}

.admin-patient-table-wrapper {
    overflow-x: auto;
}

.admin-patient-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-patient-table th,
.admin-patient-table td {
    padding: 13px 10px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: middle;
    text-align: left;
    font-size: 9px;
}

.admin-patient-table th {
    background: #edf4ff;
    color: #405064;
}

.admin-patient-cell {
    min-width: 165px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.admin-patient-avatar {
    width: 39px;
    height: 39px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #2463f5;
    color: #ffffff;
    font-weight: 700;
}

.admin-patient-cell strong,
.admin-patient-cell small {
    display: block;
}

.admin-patient-cell strong {
    font-size: 10px;
}

.admin-patient-cell small {
    margin-top: 2px;
    color: #7b8697;
    font-size: 8px;
}

.admin-gender-male,
.admin-gender-female {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 16px;
    font-size: 8px;
}

.admin-gender-male {
    background: #e2ebff;
    color: #2463f5;
}

.admin-gender-female {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-patient-actions {
    display: flex;
    gap: 5px;
}

.admin-patient-actions form {
    margin: 0;
}

.admin-patient-view,
.admin-patient-edit,
.admin-patient-delete {
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 8px;
}

.admin-patient-view {
    background: #e2ebff;
    color: #2463f5;
}

.admin-patient-edit {
    background: #fff0d9;
    color: #e66a00;
}

.admin-patient-delete {
    background: #ffe3e6;
    color: #c92f3f;
}

@media (max-width: 900px) {

    .admin-patient-stat-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .admin-patient-filter-card form {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 650px) {

    .admin-patient-stat-grid,
    .admin-patient-info-grid,
    .admin-patient-form-grid,
    .admin-patient-history-grid,
    .admin-patient-filter-card form {
        grid-template-columns: 1fr;
    }

    .admin-patient-full {
        grid-column: auto;
    }

    .admin-patient-container,
    .admin-patient-header-content {
        width: calc(100% - 20px);
    }
}

/* ======================================================
PAPARAN MAKLUMAT DOKTOR
====================================================== */

.view-doctor-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.view-doctor-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(30, 55, 90, .1);
}

.view-doctor-header-content {
    width: min(94%, 1050px);
    min-height: 71px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.view-doctor-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.view-doctor-back,
.view-doctor-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.view-doctor-back {
    background: #e2ebff;
    color: #2463f5;
}

.view-doctor-back:hover {
    background: #2463f5;
    color: #ffffff;
}

.view-doctor-header-icon {
    background: #2463f5;
    color: #ffffff;
}

.view-doctor-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.view-doctor-heading p {
    margin: 3px 0 0;
    color: #6f7a8d;
    font-size: 10px;
}

.view-doctor-logout {
    color: #556174;
    font-size: 11px;
    font-weight: 600;
}

.view-doctor-container {
    width: min(94%, 1050px);
    margin: 25px auto 50px;
}

.view-doctor-profile-card,
.view-doctor-section {
    padding: 21px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.view-doctor-profile-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.view-doctor-profile-main {
    display: flex;
    align-items: center;
    gap: 14px;
}

.view-doctor-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #2463f5, #00bd72);
    color: #ffffff;
    font-size: 28px;
    font-weight: 700;
}

.view-doctor-profile-main h2 {
    margin: 0;
    font-size: 21px;
    font-weight: 700;
}

.view-doctor-profile-main p {
    margin: 4px 0 8px;
    color: #707b8d;
    font-size: 10px;
}

.view-doctor-active,
.view-doctor-inactive {
    display: inline-block;
    padding: 5px 12px;
    border-radius: 17px;
    font-size: 8px;
    font-weight: 600;
}

.view-doctor-active {
    background: #ddf8e8;
    color: #009b52;
}

.view-doctor-inactive {
    background: #ffe3e6;
    color: #c92f3f;
}

.view-doctor-profile-actions {
    display: flex;
    gap: 8px;
}

.view-doctor-edit-button,
.view-doctor-list-button {
    min-height: 39px;
    padding: 0 15px;
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 9px;
    font-weight: 600;
}

.view-doctor-edit-button {
    background: #2463f5;
    color: #ffffff;
}

.view-doctor-edit-button:hover {
    color: #ffffff;
}

.view-doctor-list-button {
    background: #e9edf3;
    color: #566174;
}

.view-doctor-stat-grid {
    margin-top: 19px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.view-doctor-stat-card {
    min-height: 102px;
    padding: 18px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.view-doctor-stat-icon {
    width: 45px;
    height: 45px;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.view-doctor-stat-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.view-doctor-stat-icon.green {
    background: #ddf8e8;
    color: #00a85b;
}

.view-doctor-stat-icon.purple {
    background: #f2e2ff;
    color: #9627dc;
}

.view-doctor-stat-icon.orange {
    background: #fff0d9;
    color: #f16b00;
}

.view-doctor-stat-card span,
.view-doctor-stat-card strong {
    display: block;
}

.view-doctor-stat-card span {
    color: #707b8d;
    font-size: 9px;
}

.view-doctor-stat-card strong {
    margin-top: 4px;
    font-size: 23px;
}

.view-doctor-section {
    margin-top: 19px;
}

.view-doctor-section-heading {
    margin-bottom: 16px;
}

.view-doctor-section-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.view-doctor-section-heading h2 i {
    margin-right: 7px;
    color: #2463f5;
}

.view-doctor-section-heading p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 9px;
}

.view-doctor-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.view-doctor-info-grid > div {
    padding: 12px;
    border-radius: 9px;
    background: #f6f9fc;
}

.view-doctor-info-grid span,
.view-doctor-info-grid strong {
    display: block;
}

.view-doctor-info-grid span {
    color: #707b8d;
    font-size: 8px;
}

.view-doctor-info-grid strong {
    margin-top: 5px;
    font-size: 10px;
}

.view-doctor-full {
    grid-column: 1 / -1;
}

.view-doctor-table-wrapper {
    overflow-x: auto;
}

.view-doctor-table {
    width: 100%;
    border-collapse: collapse;
}

.view-doctor-table th,
.view-doctor-table td {
    padding: 12px 10px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: middle;
    text-align: left;
    font-size: 9px;
}

.view-doctor-table th {
    background: #edf4ff;
    color: #405064;
}

.view-doctor-patient-cell {
    min-width: 160px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.view-doctor-patient-avatar {
    width: 37px;
    height: 37px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #2463f5;
    color: #ffffff;
    font-weight: 700;
}

.view-doctor-patient-cell strong,
.view-doctor-patient-cell small {
    display: block;
}

.view-doctor-patient-cell strong {
    font-size: 10px;
}

.view-doctor-patient-cell small {
    margin-top: 2px;
    color: #7a8596;
    font-size: 8px;
}

.view-doctor-status-pending,
.view-doctor-status-approved,
.view-doctor-status-completed,
.view-doctor-status-cancelled {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 16px;
    color: #ffffff;
    font-size: 8px;
}

.view-doctor-status-pending {
    background: #f2a000;
}

.view-doctor-status-approved {
    background: #2463f5;
}

.view-doctor-status-completed {
    background: #00a85b;
}

.view-doctor-status-cancelled {
    background: #dc3545;
}

.view-doctor-empty {
    padding: 40px;
    text-align: center;
    color: #748093;
}

.view-doctor-empty i {
    margin-bottom: 10px;
    font-size: 33px;
}

.view-doctor-empty h3 {
    font-size: 14px;
}

.view-doctor-empty p {
    font-size: 9px;
}

@media (max-width: 850px) {

    .view-doctor-stat-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .view-doctor-info-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {

    .view-doctor-profile-card {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
    }

    .view-doctor-profile-actions {
        width: 100%;
    }

    .view-doctor-edit-button,
    .view-doctor-list-button {
        flex: 1;
        justify-content: center;
    }

    .view-doctor-stat-grid,
    .view-doctor-info-grid {
        grid-template-columns: 1fr;
    }

    .view-doctor-full {
        grid-column: auto;
    }

    .view-doctor-container,
    .view-doctor-header-content {
        width: calc(100% - 20px);
    }
}
/* ======================================================
PENGURUSAN DOKTOR
====================================================== */

.menu-doctor {
    background: #ddf8e8;
    color: #00a85b;
}

.admin-doctor-manage-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.admin-doctor-manage-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(30, 55, 90, .1);
}

.admin-doctor-manage-header-content {
    width: min(94%, 1200px);
    min-height: 71px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-doctor-manage-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.admin-doctor-manage-back,
.admin-doctor-manage-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-doctor-manage-back {
    background: #e2ebff;
    color: #2463f5;
}

.admin-doctor-manage-back:hover {
    background: #2463f5;
    color: #ffffff;
}

.admin-doctor-manage-header-icon {
    background: #2463f5;
    color: #ffffff;
}

.admin-doctor-manage-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-doctor-manage-heading p {
    margin: 3px 0 0;
    color: #6f7a8d;
    font-size: 10px;
}

.admin-doctor-manage-logout {
    color: #556174;
    font-size: 11px;
    font-weight: 600;
}

.admin-doctor-manage-container {
    width: min(94%, 1200px);
    margin: 25px auto 50px;
}

.admin-doctor-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.admin-doctor-stat-card {
    min-height: 105px;
    padding: 19px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-doctor-stat-icon {
    width: 47px;
    height: 47px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}

.admin-doctor-stat-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.admin-doctor-stat-icon.green {
    background: #ddf8e8;
    color: #00a85b;
}

.admin-doctor-stat-icon.red {
    background: #ffe3e6;
    color: #dc3545;
}

.admin-doctor-stat-icon.orange {
    background: #fff0d9;
    color: #f16b00;
}

.admin-doctor-stat-card span,
.admin-doctor-stat-card strong {
    display: block;
}

.admin-doctor-stat-card span {
    color: #707b8d;
    font-size: 10px;
}

.admin-doctor-stat-card strong {
    margin-top: 4px;
    font-size: 25px;
}

.admin-doctor-action-bar {
    margin-top: 20px;
    padding: 20px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(135deg, #2463f5, #1749de);
    color: #ffffff;
    box-shadow: 0 9px 20px rgba(36, 99, 245, .18);
}

.admin-doctor-action-bar h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-doctor-action-bar p {
    margin: 4px 0 0;
    font-size: 10px;
    opacity: .85;
}

.admin-doctor-add-button {
    min-height: 40px;
    padding: 0 16px;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: #ffffff;
    color: #2463f5;
    font-size: 9px;
    font-weight: 600;
}

.admin-doctor-filter-card,
.admin-doctor-panel {
    margin-top: 20px;
    padding: 20px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-doctor-filter-card form {
    display: grid;
    grid-template-columns: minmax(300px, 1fr) 180px auto auto;
    gap: 10px;
}

.admin-doctor-search {
    min-height: 43px;
    padding: 0 13px;
    border: 1px solid #dbe2ec;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.admin-doctor-search i {
    color: #8490a1;
}

.admin-doctor-search input {
    width: 100%;
    border: none;
    outline: none;
    font-size: 10px;
}

.admin-doctor-filter-button,
.admin-doctor-reset-button {
    min-height: 43px;
    padding: 0 17px;
    border: none;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 9px;
    font-weight: 600;
}

.admin-doctor-filter-button {
    background: #2463f5;
    color: #ffffff;
}

.admin-doctor-reset-button {
    background: #e9edf3;
    color: #566174;
}

.admin-doctor-panel-heading {
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-doctor-panel-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.admin-doctor-panel-heading p,
.admin-doctor-panel-heading > span {
    margin: 3px 0 0;
    color: #707b8d;
    font-size: 9px;
}

.admin-doctor-table-wrapper {
    overflow-x: auto;
}

.admin-doctor-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-doctor-table th,
.admin-doctor-table td {
    padding: 13px 10px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: middle;
    text-align: left;
    font-size: 9px;
}

.admin-doctor-table th {
    background: #edf4ff;
    color: #405064;
}

.admin-doctor-cell {
    min-width: 170px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.admin-doctor-avatar {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #2463f5;
    color: #ffffff;
    font-weight: 700;
}

.admin-doctor-cell strong,
.admin-doctor-cell small {
    display: block;
}

.admin-doctor-cell strong {
    font-size: 10px;
}

.admin-doctor-cell small {
    margin-top: 2px;
    color: #7b8697;
    font-size: 8px;
}

.admin-doctor-contact {
    min-width: 170px;
}

.admin-doctor-contact span {
    display: block;
    margin: 3px 0;
    color: #657185;
    font-size: 8px;
}

.admin-doctor-contact i {
    width: 14px;
    color: #2463f5;
}

.admin-doctor-status-active,
.admin-doctor-status-inactive {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 16px;
    font-size: 8px;
}

.admin-doctor-status-active {
    background: #ddf8e8;
    color: #009b52;
}

.admin-doctor-status-inactive {
    background: #ffe3e6;
    color: #c92f3f;
}

.admin-doctor-actions {
    display: flex;
    align-items: center;
    gap: 5px;
}

.admin-doctor-actions form {
    margin: 0;
}

.admin-doctor-view,
.admin-doctor-edit,
.admin-doctor-status-button,
.admin-doctor-delete {
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 8px;
}

.admin-doctor-view {
    background: #e2ebff;
    color: #2463f5;
}

.admin-doctor-edit {
    background: #fff0d9;
    color: #e66a00;
}

.admin-doctor-status-button {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-doctor-delete {
    background: #ffe3e6;
    color: #c92f3f;
}

@media (max-width: 950px) {

    .admin-doctor-stat-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .admin-doctor-filter-card form {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 650px) {

    .admin-doctor-stat-grid,
    .admin-doctor-filter-card form {
        grid-template-columns: 1fr;
    }

    .admin-doctor-action-bar {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }

    .admin-doctor-add-button {
        width: 100%;
        justify-content: center;
    }

    .admin-doctor-manage-container,
    .admin-doctor-manage-header-content {
        width: calc(100% - 20px);
    }
}

/* ===========================================================
EDIT MAKLUMAT DOKTOR
=========================================================== */

.edit-doctor-page{
    background:#f5f7fb;
    min-height:100vh;
}

.edit-doctor-header{
    background:#fff;
    box-shadow:0 3px 12px rgba(0,0,0,.08);
}

.edit-doctor-header-content{

    width:95%;
    max-width:1200px;

    margin:auto;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:15px 0;

}

.edit-header-left{

    display:flex;

    align-items:center;

    gap:15px;

}

.edit-back{

    width:45px;
    height:45px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#edf4ff;

    color:#2563eb;

    text-decoration:none;

    transition:.3s;

}

.edit-back:hover{

    background:#2563eb;
    color:#fff;

}

.edit-avatar{

    width:70px;
    height:70px;

    border-radius:50%;

    background:linear-gradient(135deg,#2563eb,#00c853);

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:28px;

    font-weight:bold;

}

.edit-header-left h2{

    margin:0;

    font-size:24px;

    font-weight:700;

}

.edit-header-left p{

    margin:0;

    color:#6b7280;

}

.logout-btn{

    background:#ef4444;

    color:#fff;

    padding:10px 18px;

    border-radius:10px;

    text-decoration:none;

    transition:.3s;

}

.logout-btn:hover{

    background:#dc2626;

    color:#fff;

}

.card{

    border:none;

    border-radius:18px;

}

.card-header{

    border-radius:18px 18px 0 0 !important;

    padding:18px;

}

.card-header h5{

    margin:0;

    font-weight:600;

}

.card-body{

    padding:25px;

}

.form-control,
.form-select{

    border-radius:10px;

    min-height:45px;

}

textarea.form-control{

    min-height:120px;

}

label{

    font-weight:600;

    margin-bottom:6px;

}

.btn-primary{

    background:#2563eb;

    border:none;

    border-radius:10px;

    min-height:45px;

}

.btn-primary:hover{

    background:#1d4ed8;

}

.btn-secondary{

    border-radius:10px;

    min-height:45px;

}

.alert{

    border-radius:12px;

}

@media(max-width:992px){

.edit-doctor-header-content{

flex-direction:column;

gap:20px;

}

.edit-header-left{

width:100%;

}

.logout-btn{

width:100%;

text-align:center;

}

}

@media(max-width:768px){

.edit-header-left{

flex-direction:column;

align-items:flex-start;

}

.edit-avatar{

width:60px;

height:60px;

font-size:22px;

}

.edit-header-left h2{

font-size:20px;

}

}

/* ======================================================
PENGURUSAN TEMU JANJI
====================================================== */

.menu-appointment {
    background: #e2ebff;
    color: #2463f5;
}

.admin-appointment-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.admin-appointment-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(30, 55, 90, .1);
}

.admin-appointment-header-content {
    width: min(94%, 1250px);
    min-height: 71px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-appointment-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.admin-appointment-back,
.admin-appointment-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-appointment-back {
    background: #e2ebff;
    color: #2463f5;
}

.admin-appointment-back:hover {
    background: #2463f5;
    color: #ffffff;
}

.admin-appointment-header-icon {
    background: #2463f5;
    color: #ffffff;
}

.admin-appointment-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-appointment-heading p {
    margin: 3px 0 0;
    color: #6f7a8d;
    font-size: 10px;
}

.admin-appointment-logout {
    color: #556174;
    font-size: 11px;
    font-weight: 600;
}

.admin-appointment-container {
    width: min(94%, 1250px);
    margin: 25px auto 50px;
}

.admin-appointment-stat-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
}

.admin-appointment-stat-card {
    min-height: 100px;
    padding: 17px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    gap: 12px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-appointment-stat-icon {
    width: 45px;
    height: 45px;
    flex-shrink: 0;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.admin-appointment-stat-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.admin-appointment-stat-icon.orange {
    background: #fff0d9;
    color: #f16b00;
}

.admin-appointment-stat-icon.purple {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-appointment-stat-icon.green {
    background: #ddf8e8;
    color: #00a85b;
}

.admin-appointment-stat-icon.red {
    background: #ffe3e6;
    color: #dc3545;
}

.admin-appointment-stat-card span,
.admin-appointment-stat-card strong {
    display: block;
}

.admin-appointment-stat-card span {
    color: #707b8d;
    font-size: 9px;
}

.admin-appointment-stat-card strong {
    margin-top: 4px;
    font-size: 23px;
}

.admin-appointment-detail-card,
.admin-appointment-filter-card,
.admin-appointment-panel {
    margin-top: 20px;
    padding: 20px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-appointment-section-heading {
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-appointment-section-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.admin-appointment-section-heading p,
.admin-appointment-section-heading > span {
    margin: 3px 0 0;
    color: #707b8d;
    font-size: 9px;
}

.admin-appointment-close {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffe3e6;
    color: #c92f3f;
}

.admin-appointment-detail-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.admin-appointment-detail-grid > div {
    padding: 13px;
    border-radius: 10px;
    background: #f6f9fc;
}

.admin-appointment-detail-grid span,
.admin-appointment-detail-grid strong,
.admin-appointment-detail-grid small {
    display: block;
}

.admin-appointment-detail-grid span {
    color: #707b8d;
    font-size: 8px;
}

.admin-appointment-detail-grid strong {
    margin-top: 5px;
    font-size: 10px;
}

.admin-appointment-detail-grid small {
    margin-top: 3px;
    color: #7d8798;
    font-size: 8px;
}

.admin-appointment-full {
    grid-column: 1 / -1;
}

.admin-appointment-filter-card form {
    display: grid;
    grid-template-columns:
        minmax(250px, 1fr)
        180px
        150px
        150px
        auto
        auto;
    gap: 9px;
}

.admin-appointment-search {
    min-height: 43px;
    padding: 0 13px;
    border: 1px solid #dbe2ec;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.admin-appointment-search i {
    color: #8490a1;
}

.admin-appointment-search input {
    width: 100%;
    border: none;
    outline: none;
    font-size: 9px;
}

.admin-appointment-filter-button,
.admin-appointment-reset {
    min-height: 43px;
    padding: 0 15px;
    border: none;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 9px;
    font-weight: 600;
}

.admin-appointment-filter-button {
    background: #2463f5;
    color: #ffffff;
}

.admin-appointment-reset {
    background: #e9edf3;
    color: #566174;
}

.admin-appointment-table-wrapper {
    overflow-x: auto;
}

.admin-appointment-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-appointment-table th,
.admin-appointment-table td {
    padding: 12px 10px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: middle;
    text-align: left;
    font-size: 9px;
}

.admin-appointment-table th {
    background: #edf4ff;
    color: #405064;
}

.admin-appointment-person {
    min-width: 160px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.admin-appointment-avatar {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #2463f5;
    color: #ffffff;
    font-weight: 700;
}

.admin-appointment-person strong,
.admin-appointment-person small {
    display: block;
}

.admin-appointment-person strong {
    font-size: 10px;
}

.admin-appointment-person small {
    margin-top: 2px;
    color: #7b8697;
    font-size: 8px;
}

.admin-appointment-reason {
    min-width: 140px;
    max-width: 210px;
}

.admin-appointment-pending,
.admin-appointment-approved,
.admin-appointment-completed,
.admin-appointment-cancelled {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 16px;
    color: #ffffff;
    font-size: 8px;
}

.admin-appointment-pending {
    background: #f2a000;
}

.admin-appointment-approved {
    background: #2463f5;
}

.admin-appointment-completed {
    background: #00a85b;
}

.admin-appointment-cancelled {
    background: #dc3545;
}

.admin-appointment-actions {
    display: flex;
    align-items: center;
    gap: 5px;
}

.admin-appointment-actions form {
    margin: 0;
}

.admin-appointment-view,
.admin-appointment-approve,
.admin-appointment-complete,
.admin-appointment-cancel,
.admin-appointment-delete {
    width: 29px;
    height: 29px;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 8px;
}

.admin-appointment-view {
    background: #e2ebff;
    color: #2463f5;
}

.admin-appointment-approve {
    background: #ddf8e8;
    color: #009b52;
}

.admin-appointment-complete {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-appointment-cancel,
.admin-appointment-delete {
    background: #ffe3e6;
    color: #c92f3f;
}

@media (max-width: 1050px) {

    .admin-appointment-stat-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .admin-appointment-filter-card form {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 650px) {

    .admin-appointment-stat-grid,
    .admin-appointment-detail-grid,
    .admin-appointment-filter-card form {
        grid-template-columns: 1fr;
    }

    .admin-appointment-full {
        grid-column: auto;
    }

    .admin-appointment-container,
    .admin-appointment-header-content {
        width: calc(100% - 20px);
    }
}

/* ======================================================
PENGURUSAN QUEUE ADMIN
====================================================== */

.admin-queue-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.admin-queue-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(30, 55, 90, .1);
}

.admin-queue-header-content {
    width: min(94%, 1250px);
    min-height: 71px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-queue-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.admin-queue-back,
.admin-queue-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-queue-back {
    background: #e2ebff;
    color: #2463f5;
}

.admin-queue-back:hover {
    background: #2463f5;
    color: #ffffff;
}

.admin-queue-header-icon {
    background: #2463f5;
    color: #ffffff;
}

.admin-queue-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-queue-heading p {
    margin: 3px 0 0;
    color: #6f7a8d;
    font-size: 10px;
}

.admin-queue-logout {
    color: #556174;
    font-size: 11px;
    font-weight: 600;
}

.admin-queue-container {
    width: min(94%, 1250px);
    margin: 25px auto 50px;
}

.admin-queue-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.admin-queue-stat-card {
    min-height: 104px;
    padding: 18px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-queue-stat-icon {
    width: 47px;
    height: 47px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}

.admin-queue-stat-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.admin-queue-stat-icon.orange {
    background: #fff0d9;
    color: #f16b00;
}

.admin-queue-stat-icon.purple {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-queue-stat-icon.green {
    background: #ddf8e8;
    color: #00a85b;
}

.admin-queue-stat-card span,
.admin-queue-stat-card strong {
    display: block;
}

.admin-queue-stat-card span {
    color: #707b8d;
    font-size: 10px;
}

.admin-queue-stat-card strong {
    margin-top: 4px;
    font-size: 25px;
}

.admin-queue-filter-card,
.admin-queue-panel {
    margin-top: 20px;
    padding: 20px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-queue-filter-card form {
    display: grid;
    grid-template-columns:
        minmax(260px, 1fr)
        180px
        150px
        150px
        auto
        auto;
    gap: 9px;
}

.admin-queue-search {
    min-height: 43px;
    padding: 0 13px;
    border: 1px solid #dbe2ec;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.admin-queue-search i {
    color: #8490a1;
}

.admin-queue-search input {
    width: 100%;
    border: none;
    outline: none;
    font-size: 9px;
}

.admin-queue-filter-button,
.admin-queue-reset {
    min-height: 43px;
    padding: 0 15px;
    border: none;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 9px;
    font-weight: 600;
}

.admin-queue-filter-button {
    background: #2463f5;
    color: #ffffff;
}

.admin-queue-reset {
    background: #e9edf3;
    color: #566174;
}

.admin-queue-panel-heading {
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-queue-panel-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.admin-queue-panel-heading p {
    margin: 3px 0 0;
    color: #707b8d;
    font-size: 9px;
}

.admin-queue-clear-button {
    min-height: 36px;
    padding: 0 14px;
    border: none;
    border-radius: 19px;
    background: #ffe3e6;
    color: #c92f3f;
    font-size: 9px;
    font-weight: 600;
}

.admin-queue-table-wrapper {
    overflow-x: auto;
}

.admin-queue-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-queue-table th,
.admin-queue-table td {
    padding: 12px 10px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: middle;
    text-align: left;
    font-size: 9px;
}

.admin-queue-table th {
    background: #edf4ff;
    color: #405064;
}

.admin-queue-number {
    width: 43px;
    height: 43px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #2463f5;
    color: #ffffff;
    font-size: 9px;
    font-weight: 700;
}

.admin-queue-person {
    min-width: 165px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.admin-queue-avatar {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #00a85b;
    color: #ffffff;
    font-weight: 700;
}

.admin-queue-person strong,
.admin-queue-person small {
    display: block;
}

.admin-queue-person strong {
    font-size: 10px;
}

.admin-queue-person small {
    margin-top: 2px;
    color: #7b8697;
    font-size: 8px;
}

.admin-queue-reason {
    min-width: 130px;
    max-width: 200px;
}

.admin-queue-waiting,
.admin-queue-serving,
.admin-queue-completed {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 16px;
    color: #ffffff;
    font-size: 8px;
}

.admin-queue-waiting {
    background: #f2a000;
}

.admin-queue-serving {
    background: #2463f5;
}

.admin-queue-completed {
    background: #00a85b;
}

.admin-queue-actions {
    display: flex;
    align-items: center;
    gap: 5px;
}

.admin-queue-actions form {
    margin: 0;
}

.admin-queue-view,
.admin-queue-call,
.admin-queue-complete,
.admin-queue-skip,
.admin-queue-delete {
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 8px;
}

.admin-queue-view {
    background: #e2ebff;
    color: #2463f5;
}

.admin-queue-call {
    background: #ddf8e8;
    color: #009b52;
}

.admin-queue-complete {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-queue-skip {
    background: #fff0d9;
    color: #e66a00;
}

.admin-queue-delete {
    background: #ffe3e6;
    color: #c92f3f;
}

@media (max-width: 1050px) {

    .admin-queue-filter-card form {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 700px) {

    .admin-queue-stat-grid,
    .admin-queue-filter-card form {
        grid-template-columns: 1fr;
    }

    .admin-queue-container,
    .admin-queue-header-content {
        width: calc(100% - 20px);
    }
}

/* ======================================================
LAPORAN ADMIN
====================================================== */

.admin-report-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.admin-report-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(30, 55, 90, .1);
}

.admin-report-header-content {
    width: min(94%, 1200px);
    min-height: 71px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-report-heading,
.admin-report-header-actions {
    display: flex;
    align-items: center;
}

.admin-report-heading {
    gap: 11px;
}

.admin-report-header-actions {
    gap: 9px;
}

.admin-report-back,
.admin-report-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-report-back {
    background: #e2ebff;
    color: #2463f5;
}

.admin-report-back:hover {
    background: #2463f5;
    color: #ffffff;
}

.admin-report-header-icon {
    background: #2463f5;
    color: #ffffff;
}

.admin-report-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-report-heading p {
    margin: 3px 0 0;
    color: #6f7a8d;
    font-size: 10px;
}

.admin-report-print,
.admin-report-logout {
    min-height: 37px;
    padding: 0 14px;
    border: none;
    border-radius: 19px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 9px;
    font-weight: 600;
}

.admin-report-print {
    background: #e2ebff;
    color: #2463f5;
}

.admin-report-logout {
    background: #ffe3e6;
    color: #c92f3f;
}

.admin-report-container {
    width: min(94%, 1200px);
    margin: 25px auto 50px;
}

.admin-report-title-section {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-report-title-section h2 {
    margin: 0;
    font-size: 23px;
    font-weight: 700;
}

.admin-report-title-section p {
    margin: 5px 0 0;
    color: #707b8d;
    font-size: 10px;
}

.admin-report-generated {
    padding: 10px 15px;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 5px 14px rgba(35, 57, 82, .08);
}

.admin-report-generated span,
.admin-report-generated strong {
    display: block;
}

.admin-report-generated span {
    color: #7b8697;
    font-size: 8px;
}

.admin-report-generated strong {
    margin-top: 3px;
    font-size: 9px;
}

.admin-report-filter-card,
.admin-report-section,
.admin-report-chart-card {
    margin-top: 20px;
    padding: 20px;
    border-radius: 15px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-report-filter-card form {
    display: grid;
    grid-template-columns:
        minmax(150px, 1fr)
        minmax(150px, 1fr)
        auto
        auto
        auto;
    align-items: end;
    gap: 10px;
}

.admin-report-filter-card label {
    margin-bottom: 6px;
    color: #566174;
    font-size: 9px;
    font-weight: 600;
}

.admin-report-filter-button,
.admin-report-reset,
.admin-report-export {
    min-height: 43px;
    padding: 0 15px;
    border: none;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 9px;
    font-weight: 600;
}

.admin-report-filter-button {
    background: #2463f5;
    color: #ffffff;
}

.admin-report-reset {
    background: #e9edf3;
    color: #566174;
}

.admin-report-export {
    background: #ddf8e8;
    color: #009b52;
}

.admin-report-stat-grid {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.admin-report-stat-card {
    min-height: 110px;
    padding: 19px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-report-stat-icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}

.admin-report-stat-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.admin-report-stat-icon.green {
    background: #ddf8e8;
    color: #00a85b;
}

.admin-report-stat-icon.purple {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-report-stat-icon.orange {
    background: #fff0d9;
    color: #f16b00;
}

.admin-report-stat-card span,
.admin-report-stat-card strong,
.admin-report-stat-card p {
    display: block;
}

.admin-report-stat-card span {
    color: #707b8d;
    font-size: 9px;
}

.admin-report-stat-card strong {
    margin-top: 3px;
    font-size: 24px;
}

.admin-report-stat-card p {
    margin: 2px 0 0;
    color: #8a94a5;
    font-size: 8px;
}

.admin-report-status-grid {
    margin-top: 15px;
    padding: 16px 20px;
    border-radius: 14px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: linear-gradient(135deg, #2463f5, #1749de);
    color: #ffffff;
    box-shadow: 0 9px 20px rgba(36, 99, 245, .18);
}

.admin-report-status-grid article {
    padding: 7px 18px;
    border-right: 1px solid rgba(255, 255, 255, .2);
}

.admin-report-status-grid article:last-child {
    border-right: none;
}

.admin-report-status-grid span,
.admin-report-status-grid strong {
    display: block;
}

.admin-report-status-grid span {
    font-size: 9px;
    opacity: .85;
}

.admin-report-status-grid strong {
    margin-top: 4px;
    font-size: 21px;
}

.admin-report-chart-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.admin-report-section-heading {
    margin-bottom: 17px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-report-section-heading h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
}

.admin-report-section-heading p {
    margin: 4px 0 0;
    color: #707b8d;
    font-size: 9px;
}

.admin-report-section-heading > i {
    color: #2463f5;
    font-size: 18px;
}

.admin-report-chart-area {
    position: relative;
    height: 280px;
}

.admin-report-queue-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.admin-report-queue-grid > div {
    padding: 16px;
    border-radius: 11px;
    background: #f6f9fc;
}

.admin-report-queue-grid span,
.admin-report-queue-grid strong {
    display: block;
}

.admin-report-queue-grid span {
    color: #707b8d;
    font-size: 9px;
}

.admin-report-queue-grid strong {
    margin-top: 5px;
    font-size: 21px;
}

.admin-report-table-wrapper {
    overflow-x: auto;
}

.admin-report-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-report-table th,
.admin-report-table td {
    padding: 12px 10px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: middle;
    text-align: left;
    font-size: 9px;
}

.admin-report-table th {
    background: #edf4ff;
    color: #405064;
}

.admin-report-doctor {
    min-width: 150px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.admin-report-doctor > div {
    width: 37px;
    height: 37px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #2463f5;
    color: #ffffff;
    font-weight: 700;
}

.report-doctor-active,
.report-doctor-inactive,
.report-status-pending,
.report-status-approved,
.report-status-completed,
.report-status-cancelled {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 16px;
    font-size: 8px;
}

.report-doctor-active {
    background: #ddf8e8;
    color: #009b52;
}

.report-doctor-inactive {
    background: #ffe3e6;
    color: #c92f3f;
}

.report-status-pending {
    background: #fff0d9;
    color: #e66a00;
}

.report-status-approved {
    background: #e2ebff;
    color: #2463f5;
}

.report-status-completed {
    background: #ddf8e8;
    color: #009b52;
}

.report-status-cancelled {
    background: #ffe3e6;
    color: #c92f3f;
}

.admin-report-empty {
    padding: 35px;
    text-align: center;
    color: #748093;
    font-size: 10px;
}

@media print {

    .admin-report-header,
    .admin-report-filter-card,
    .admin-report-header-actions {
        display: none !important;
    }

    .admin-report-page {
        background: #ffffff;
    }

    .admin-report-container {
        width: 100%;
        margin: 0;
    }

    .admin-report-section,
    .admin-report-chart-card,
    .admin-report-stat-card {
        box-shadow: none;
        border: 1px solid #dddddd;
    }
}

@media (max-width: 900px) {

    .admin-report-stat-grid,
    .admin-report-status-grid,
    .admin-report-queue-grid,
    .admin-report-chart-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .admin-report-filter-card form {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {

    .admin-report-stat-grid,
    .admin-report-status-grid,
    .admin-report-queue-grid,
    .admin-report-chart-grid,
    .admin-report-filter-card form {
        grid-template-columns: 1fr;
    }

    .admin-report-status-grid article {
        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, .2);
    }

    .admin-report-status-grid article:last-child {
        border-bottom: none;
    }

    .admin-report-title-section {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .admin-report-container,
    .admin-report-header-content {
        width: calc(100% - 20px);
    }
}

/* ======================================================
TETAPAN SISTEM ADMIN
====================================================== */

.admin-settings-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.admin-settings-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(30, 55, 90, .1);
}

.admin-settings-header-content {
    width: min(94%, 1100px);
    min-height: 72px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-settings-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.admin-settings-back,
.admin-settings-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-settings-back {
    background: #e2ebff;
    color: #2463f5;
}

.admin-settings-back:hover {
    background: #2463f5;
    color: #ffffff;
}

.admin-settings-header-icon {
    background: #2463f5;
    color: #ffffff;
}

.admin-settings-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-settings-heading p {
    margin: 3px 0 0;
    color: #6f7a8d;
    font-size: 10px;
}

.admin-settings-logout {
    color: #556174;
    font-size: 11px;
    font-weight: 600;
}

.admin-settings-container {
    width: min(94%, 1100px);
    margin: 25px auto 50px;
}

.settings-alert {
    margin-bottom: 17px;
    padding: 13px 15px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
}

.settings-alert-error {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #b91c1c;
}

.settings-alert-success {
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    color: #15803d;
}

.admin-settings-banner {
    padding: 22px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(135deg, #2463f5, #1749de);
    color: #ffffff;
    box-shadow: 0 9px 20px rgba(36, 99, 245, .2);
}

.admin-settings-banner h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
}

.admin-settings-banner p {
    margin: 5px 0 0;
    font-size: 10px;
    opacity: .85;
}

.admin-settings-banner-icon {
    width: 52px;
    height: 52px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .16);
    font-size: 21px;
}

.admin-settings-grid {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.admin-settings-card {
    padding: 21px;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-settings-full {
    grid-column: 1 / -1;
}

.admin-settings-card-heading {
    margin-bottom: 19px;
    display: flex;
    align-items: center;
    gap: 11px;
}

.admin-settings-card-icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
}

.admin-settings-card-icon.blue,
.settings-switch-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.admin-settings-card-icon.green,
.settings-switch-icon.green {
    background: #ddf8e8;
    color: #00a85b;
}

.admin-settings-card-icon.purple {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-settings-card-heading h2 {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
}

.admin-settings-card-heading p {
    margin: 3px 0 0;
    color: #748093;
    font-size: 9px;
}

.settings-field {
    margin-bottom: 15px;
}

.settings-field label {
    display: block;
    margin-bottom: 6px;
    color: #405064;
    font-size: 10px;
    font-weight: 600;
}

.settings-field .form-control {
    min-height: 44px;
    border: 1px solid #dbe2ec;
    border-radius: 10px;
    font-size: 11px;
}

.settings-field textarea.form-control {
    min-height: 115px;
}

.settings-field small {
    margin-top: 5px;
    display: block;
    color: #7b8697;
    font-size: 8px;
}

.admin-settings-time-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.admin-settings-preview {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.admin-settings-preview > div {
    padding: 13px;
    border-radius: 10px;
    background: #f6f9fc;
}

.admin-settings-preview span,
.admin-settings-preview strong {
    display: block;
}

.admin-settings-preview span {
    color: #748093;
    font-size: 8px;
}

.admin-settings-preview strong {
    margin-top: 4px;
    font-size: 12px;
}

.admin-settings-switch-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 13px;
}

.admin-settings-switch-card {
    position: relative;
    min-height: 90px;
    padding: 16px;
    border: 1px solid #e3e8ef;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
}

.admin-settings-switch-card > div {
    display: flex;
    align-items: center;
    gap: 10px;
}

.settings-switch-icon {
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-settings-switch-card strong,
.admin-settings-switch-card span {
    display: block;
}

.admin-settings-switch-card strong {
    font-size: 11px;
}

.admin-settings-switch-card div span {
    margin-top: 3px;
    color: #748093;
    font-size: 8px;
}

.admin-settings-switch-card input {
    position: absolute;
    opacity: 0;
}

.settings-toggle {
    position: relative;
    width: 46px;
    height: 25px;
    flex-shrink: 0;
    border-radius: 20px;
    background: #cbd5e1;
    transition: .25s;
}

.settings-toggle::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, .15);
    transition: .25s;
}

.admin-settings-switch-card input:checked +
.settings-toggle {
    background: #2463f5;
}

.admin-settings-switch-card input:checked +
.settings-toggle::before {
    transform: translateX(21px);
}

.admin-settings-save-bar {
    margin-top: 18px;
    padding: 17px 20px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-settings-save-bar > div {
    color: #748093;
    font-size: 9px;
}

.admin-settings-save-bar > div i {
    margin-right: 5px;
    color: #2463f5;
}

.admin-settings-save-button {
    min-height: 42px;
    padding: 0 18px;
    border: none;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: #2463f5;
    color: #ffffff;
    font-size: 10px;
    font-weight: 600;
}

@media (max-width: 750px) {

    .admin-settings-grid,
    .admin-settings-time-grid,
    .admin-settings-preview,
    .admin-settings-switch-grid {
        grid-template-columns: 1fr;
    }

    .admin-settings-full {
        grid-column: auto;
    }

    .admin-settings-save-bar {
        align-items: flex-start;
        flex-direction: column;
        gap: 13px;
    }

    .admin-settings-save-button {
        width: 100%;
        justify-content: center;
    }
}

/* ======================================================
BACKUP DAN RESTORE
====================================================== */

.admin-backup-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.admin-backup-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(30, 55, 90, .1);
}

.admin-backup-header-content {
    width: min(94%, 1100px);
    min-height: 72px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-backup-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.admin-backup-back,
.admin-backup-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-backup-back {
    background: #e2ebff;
    color: #2463f5;
}

.admin-backup-header-icon {
    background: #2463f5;
    color: #ffffff;
}

.admin-backup-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-backup-heading p {
    margin: 3px 0 0;
    color: #6f7a8d;
    font-size: 10px;
}

.admin-backup-logout {
    color: #556174;
    font-size: 11px;
    font-weight: 600;
}

.admin-backup-container {
    width: min(94%, 1100px);
    margin: 25px auto 50px;
}

.backup-alert {
    margin-bottom: 17px;
    padding: 13px 15px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
}

.backup-alert-error {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #b91c1c;
}

.backup-alert-success {
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    color: #15803d;
}

.admin-backup-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.admin-backup-stat-card {
    min-height: 105px;
    padding: 19px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-backup-stat-icon {
    width: 47px;
    height: 47px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
}

.admin-backup-stat-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.admin-backup-stat-icon.green {
    background: #ddf8e8;
    color: #00a85b;
}

.admin-backup-stat-icon.purple {
    background: #f2e2ff;
    color: #9627dc;
}

.admin-backup-stat-card span,
.admin-backup-stat-card strong {
    display: block;
}

.admin-backup-stat-card span {
    color: #707b8d;
    font-size: 9px;
}

.admin-backup-stat-card strong {
    margin-top: 4px;
    font-size: 24px;
}

.admin-backup-stat-card .backup-small-value {
    font-size: 14px;
}

.admin-backup-action-grid {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}

.admin-backup-card,
.admin-backup-history {
    padding: 22px;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-backup-card-icon {
    width: 51px;
    height: 51px;
    margin-bottom: 15px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}

.admin-backup-card-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.admin-backup-card-icon.orange {
    background: #fff0d9;
    color: #f16b00;
}

.admin-backup-card h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
}

.admin-backup-card p {
    margin: 6px 0 17px;
    color: #748093;
    font-size: 9px;
}

.admin-backup-card small {
    margin-top: 6px;
    display: block;
    color: #7b8697;
    font-size: 8px;
}

.admin-create-backup-button,
.admin-restore-backup-button {
    width: 100%;
    min-height: 43px;
    margin-top: 13px;
    border: none;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #ffffff;
    font-size: 10px;
    font-weight: 600;
}

.admin-create-backup-button {
    background: #2463f5;
}

.admin-restore-backup-button {
    background: #f16b00;
}

.admin-backup-history {
    margin-top: 20px;
}

.admin-backup-section-heading {
    margin-bottom: 17px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-backup-section-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.admin-backup-section-heading p {
    margin: 4px 0 0;
    color: #748093;
    font-size: 9px;
}

.admin-backup-section-heading > i {
    color: #2463f5;
    font-size: 18px;
}

.admin-backup-table-wrapper {
    overflow-x: auto;
}

.admin-backup-table {
    width: 100%;
    border-collapse: collapse;
}

.admin-backup-table th,
.admin-backup-table td {
    padding: 13px 10px;
    border-bottom: 1px solid #edf0f4;
    vertical-align: middle;
    text-align: left;
    font-size: 9px;
}

.admin-backup-table th {
    background: #edf4ff;
    color: #405064;
}

.admin-backup-file {
    min-width: 230px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.admin-backup-file > div {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2ebff;
    color: #2463f5;
}

.admin-backup-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

.admin-backup-actions form {
    margin: 0;
}

.admin-backup-download,
.admin-backup-delete {
    width: 31px;
    height: 31px;
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
}

.admin-backup-download {
    background: #ddf8e8;
    color: #009b52;
}

.admin-backup-delete {
    background: #ffe3e6;
    color: #c92f3f;
}

.admin-backup-empty {
    padding: 42px 20px;
    text-align: center;
    color: #748093;
}

.admin-backup-empty i {
    margin-bottom: 10px;
    font-size: 36px;
}

.admin-backup-empty h3 {
    font-size: 14px;
}

.admin-backup-empty p {
    font-size: 9px;
}

@media (max-width: 750px) {

    .admin-backup-stat-grid,
    .admin-backup-action-grid {
        grid-template-columns: 1fr;
    }

    .admin-backup-container,
    .admin-backup-header-content {
        width: calc(100% - 20px);
    }
}

/* ======================================================
HEADER HALAMAN UMUM
====================================================== */

.public-page-header {
    background: #ffffff;
    box-shadow: 0 2px 10px rgba(30, 55, 90, .1);
}

.public-page-header-content {
    width: min(94%, 1100px);
    min-height: 72px;
    margin: auto;
    display: flex;
    align-items: center;
    gap: 12px;
}

.public-back-button {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2ebff;
    color: #2463f5;
    text-decoration: none;
}

.public-back-button:hover {
    background: #2463f5;
    color: #ffffff;
}

.public-page-header-content h1 {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
}

.public-page-header-content p {
    margin: 3px 0 0;
    color: #748093;
    font-size: 10px;
}

/* ======================================================
   PUBLIC QUEUE
====================================================== */

.public-queue-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.public-queue-container {
    width: min(94%, 1000px);
    margin: 28px auto 50px;
}

.public-current-queue {
    padding: 34px;
    border-radius: 22px;
    text-align: center;
    background: linear-gradient(135deg, #2463f5, #1749de);
    color: #ffffff;
    box-shadow: 0 13px 30px rgba(36, 99, 245, .25);
}

.public-current-queue > p {
    margin: 0;
    font-size: 13px;
    opacity: .85;
}

.public-current-queue h2 {
    margin: 8px 0;
    font-size: 65px;
    font-weight: 800;
}

.public-current-doctor {
    display: flex;
    justify-content: center;
    gap: 15px;
    font-size: 12px;
}

.public-no-serving {
    margin-top: 8px !important;
}

.public-queue-stat-grid {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.public-queue-stat-grid article {
    min-height: 115px;
    padding: 19px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.public-queue-stat-grid i {
    width: 47px;
    height: 47px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2ebff;
    color: #2463f5;
    font-size: 19px;
}

.public-queue-stat-grid span,
.public-queue-stat-grid strong {
    display: block;
}

.public-queue-stat-grid span {
    color: #748093;
    font-size: 10px;
}

.public-queue-stat-grid strong {
    margin-top: 4px;
    font-size: 25px;
}

.public-waiting-section {
    margin-top: 20px;
    padding: 22px;
    border-radius: 17px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.public-section-heading {
    margin-bottom: 17px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.public-section-heading h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.public-section-heading span {
    color: #748093;
    font-size: 10px;
}

.public-waiting-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
}

.public-waiting-card {
    padding: 16px;
    border-radius: 13px;
    text-align: center;
    background: #f6f9fc;
}

.public-waiting-card strong,
.public-waiting-card span,
.public-waiting-card small {
    display: block;
}

.public-waiting-card strong {
    color: #2463f5;
    font-size: 20px;
}

.public-waiting-card span {
    margin-top: 5px;
    font-size: 9px;
    font-weight: 600;
}

.public-waiting-card small {
    margin-top: 3px;
    color: #748093;
    font-size: 8px;
}

.public-empty-state {
    padding: 35px;
    text-align: center;
    color: #748093;
}

.public-empty-state i {
    margin-bottom: 10px;
    font-size: 34px;
}

/* ======================================================
MAKLUMAT KLINIK
====================================================== */

.about-clinic-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.about-clinic-container {
    width: min(94%, 1100px);
    margin: 28px auto 50px;
}

.about-clinic-hero {
    overflow: hidden;
    border-radius: 20px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
    box-shadow: 0 10px 25px rgba(35, 57, 82, .12);
}

.about-clinic-image {
    overflow: hidden;
}

.about-clinic-image img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    object-position: center;
    transform: scale(1.15);
    display: block;
}

.about-clinic-introduction {
    padding: 40px;
}

.about-clinic-label {
    color: #2463f5;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.about-clinic-introduction h2 {
    margin: 8px 0 17px;
    font-size: 30px;
    font-weight: 750;
}

.about-clinic-introduction p {
    color: #687487;
    font-size: 12px;
    line-height: 1.8;
}

.about-clinic-info-grid {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.about-clinic-info-grid article {
    padding: 22px;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.about-info-icon {
    width: 47px;
    height: 47px;
    margin-bottom: 14px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.about-info-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.about-info-icon.green {
    background: #ddf8e8;
    color: #00a85b;
}

.about-info-icon.orange {
    background: #fff0d9;
    color: #f16b00;
}

.about-clinic-info-grid h3 {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
}

.about-clinic-info-grid p {
    margin: 7px 0 0;
    color: #748093;
    font-size: 10px;
    line-height: 1.6;
}

.about-services-section {
    margin-top: 20px;
    padding: 25px;
    border-radius: 17px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.about-section-heading {
    margin-bottom: 18px;
    text-align: center;
}

.about-section-heading h2 {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
}

.about-section-heading p {
    margin: 5px 0 0;
    color: #748093;
    font-size: 10px;
}

.about-services-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 13px;
}

.about-services-grid article {
    padding: 20px 15px;
    border-radius: 13px;
    text-align: center;
    background: #f6f9fc;
}

.about-services-grid i {
    margin-bottom: 12px;
    color: #2463f5;
    font-size: 24px;
}

.about-services-grid h3 {
    margin: 0;
    font-size: 12px;
    font-weight: 700;
}

.about-services-grid p {
    margin: 7px 0 0;
    color: #748093;
    font-size: 9px;
    line-height: 1.6;
}

@media (max-width: 800px) {

    .public-queue-stat-grid,
    .about-clinic-info-grid {
        grid-template-columns: 1fr;
    }

    .public-waiting-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .about-clinic-hero {
        grid-template-columns: 1fr;
    }

    .about-clinic-image img {
        min-height: 260px;
    }

    .about-services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 500px) {

    .public-waiting-grid,
    .about-services-grid {
        grid-template-columns: 1fr;
    }

    .about-clinic-introduction {
        padding: 25px 20px;
    }

    .public-current-queue h2 {
        font-size: 48px;
    }
}

/* ======================================================
REKOD AKTIVITI ADMIN
====================================================== */

.admin-activity-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.admin-activity-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(30, 55, 90, .1);
}

.admin-activity-header-content {
    width: min(94%, 1100px);
    min-height: 72px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-activity-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.admin-activity-back,
.admin-activity-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-activity-back {
    background: #e2ebff;
    color: #2463f5;
}

.admin-activity-header-icon {
    background: #2463f5;
    color: #ffffff;
}

.admin-activity-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-activity-heading p {
    margin: 3px 0 0;
    color: #6f7a8d;
    font-size: 10px;
}

.admin-activity-logout {
    color: #556174;
    font-size: 11px;
    font-weight: 600;
}

.admin-activity-container {
    width: min(94%, 1100px);
    margin: 25px auto 50px;
}

.admin-activity-filter-card,
.admin-activity-panel {
    padding: 20px;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-activity-filter-card form {
    display: grid;
    grid-template-columns: 1fr 210px auto auto;
    gap: 9px;
}

.admin-activity-search {
    min-height: 43px;
    padding: 0 13px;
    border: 1px solid #dbe2ec;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 9px;
}

.admin-activity-search i {
    color: #8490a1;
}

.admin-activity-search input {
    width: 100%;
    border: none;
    outline: none;
    font-size: 10px;
}

.admin-activity-filter-button,
.admin-activity-reset {
    min-height: 43px;
    padding: 0 15px;
    border: none;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 9px;
    font-weight: 600;
}

.admin-activity-filter-button {
    background: #2463f5;
    color: #ffffff;
}

.admin-activity-reset {
    background: #e9edf3;
    color: #566174;
}

.admin-activity-panel {
    margin-top: 20px;
}

.admin-activity-section-heading {
    margin-bottom: 16px;
}

.admin-activity-section-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
}

.admin-activity-section-heading p {
    margin: 4px 0 0;
    color: #748093;
    font-size: 9px;
}

.admin-activity-list {
    display: grid;
    gap: 11px;
}

.admin-activity-item {
    padding: 14px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f6f9fc;
}

.admin-activity-item-left {
    display: flex;
    align-items: center;
    gap: 11px;
}

.admin-activity-icon {
    width: 43px;
    height: 43px;
    flex-shrink: 0;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.activity-blue {
    background: #e2ebff;
    color: #2463f5;
}

.activity-purple {
    background: #f2e2ff;
    color: #9627dc;
}

.activity-green {
    background: #ddf8e8;
    color: #00a85b;
}

.activity-orange {
    background: #fff0d9;
    color: #f16b00;
}

.activity-red {
    background: #ffe3e6;
    color: #dc3545;
}

.activity-gray {
    background: #e9edf3;
    color: #64748b;
}

.admin-activity-item h3 {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
}

.admin-activity-item p {
    margin: 4px 0 0;
    color: #657185;
    font-size: 9px;
}

.admin-activity-item small {
    margin-top: 4px;
    display: block;
    color: #8993a4;
    font-size: 8px;
}

.admin-activity-item time {
    color: #748093;
    font-size: 8px;
    white-space: nowrap;
}

.admin-activity-empty {
    padding: 40px 20px;
    text-align: center;
    color: #748093;
}

.admin-activity-empty i {
    margin-bottom: 10px;
    font-size: 35px;
}

.admin-activity-empty h3 {
    font-size: 14px;
}

.admin-activity-empty p {
    font-size: 9px;
}

@media (max-width: 720px) {

    .admin-activity-filter-card form {
        grid-template-columns: 1fr;
    }

    .admin-activity-item {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }
}

/* =====================================================
PENGURUSAN ADMIN
===================================================== */

.manage-admin-page{
    background:#f4f7fb;
    min-height:100vh;
}

.manage-admin-header{
    background:#0d6efd;
    color:#fff;
    padding:20px 40px;
    box-shadow:0 4px 15px rgba(0,0,0,.1);
}

.manage-admin-header-content{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.manage-admin-heading{
    display:flex;
    align-items:center;
    gap:18px;
}

.manage-admin-back{
    width:45px;
    height:45px;
    border-radius:50%;
    background:#fff;
    color:#0d6efd;
    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    font-size:18px;
}

.manage-admin-icon{
    width:60px;
    height:60px;
    background:rgba(255,255,255,.15);
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:28px;
}

.manage-admin-heading h1{
    margin:0;
    font-size:28px;
}

.manage-admin-heading p{
    margin:0;
    opacity:.9;
}

.manage-admin-add-button{
    background:#fff;
    color:#0d6efd;
    padding:12px 22px;
    border-radius:10px;
    text-decoration:none;
    font-weight:600;
}

.manage-admin-add-button:hover{
    background:#e8f0ff;
}

.manage-admin-container{
    width:95%;
    max-width:1300px;
    margin:30px auto;
}

.manage-admin-filter{
    background:#fff;
    padding:20px;
    border-radius:15px;
    margin-bottom:25px;
    box-shadow:0 5px 15px rgba(0,0,0,.08);
}

.manage-admin-filter form{
    display:grid;
    grid-template-columns:2fr 1fr auto auto;
    gap:15px;
}

.manage-admin-search{
    position:relative;
}

.manage-admin-search i{
    position:absolute;
    left:15px;
    top:50%;
    transform:translateY(-50%);
    color:#888;
}

.manage-admin-search input{
    padding-left:45px;
}

.manage-admin-filter-button{
    background:#0d6efd;
    color:#fff;
    border:none;
    border-radius:10px;
    padding:10px 18px;
}

.manage-admin-reset{
    background:#6c757d;
    color:#fff;
    padding:10px 18px;
    border-radius:10px;
    text-decoration:none;
    text-align:center;
}

.manage-admin-card{
    background:#fff;
    border-radius:15px;
    box-shadow:0 5px 15px rgba(0,0,0,.08);
    overflow:hidden;
}

.manage-admin-card-heading{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:20px;
    border-bottom:1px solid #eee;
}

.manage-admin-table{
    width:100%;
    border-collapse:collapse;
}

.manage-admin-table th{
    background:#0d6efd;
    color:#fff;
    padding:15px;
}

.manage-admin-table td{
    padding:15px;
    border-bottom:1px solid #eee;
}

.manage-admin-table tr:hover{
    background:#f7fbff;
}

.manage-admin-table strong{
    display:block;
}

.manage-admin-table small{
    color:#777;
    display:block;
}

.manage-admin-shift{
    background:#dbeafe;
    color:#0d6efd;
    padding:5px 12px;
    border-radius:30px;
    font-weight:600;
}

.manage-admin-empty{
    padding:60px;
    text-align:center;
}

.manage-admin-empty i{
    font-size:70px;
    color:#0d6efd;
    margin-bottom:15px;
}
.manage-admin-person {
    display: flex;
    align-items: center;
    gap: 11px;
}

.manage-admin-avatar {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2ebff;
    color: #2463f5;
    font-size: 14px;
    font-weight: 700;
}

.manage-admin-card-heading p {
    margin: 4px 0 0;
    color: #748093;
    font-size: 10px;
}

.manage-admin-table td > small,
.manage-admin-table td div small {
    display: block;
    margin-top: 4px;
    color: #7b8799;
    font-size: 9px;
}

.manage-admin-table .text-muted {
    font-size: 10px;
}



/* =====================================================
HALAMAN DAFTAR ADMIN
===================================================== */

.admin-register-page {
    min-height: 100vh;
    background: linear-gradient(
        135deg,
        #eef6ff,
        #f1fff9
    );
    color: #172033;
}

.admin-register-header {
    background: #ffffff;
    box-shadow: 0 2px 10px rgba(30, 55, 90, .1);
}

.admin-register-header-content {
    width: min(94%, 1100px);
    min-height: 76px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-register-heading {
    display: flex;
    align-items: center;
    gap: 12px;
}

.admin-register-back,
.admin-register-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-register-back {
    background: #e2ebff;
    color: #2463f5;
    text-decoration: none;
}

.admin-register-back:hover {
    background: #2463f5;
    color: #ffffff;
}

.admin-register-icon {
    background: #2463f5;
    color: #ffffff;
    font-size: 18px;
}

.admin-register-heading h1 {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
}

.admin-register-heading p {
    margin: 3px 0 0;
    color: #748093;
    font-size: 10px;
}

.admin-register-logout {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #556174;
    font-size: 11px;
    font-weight: 600;
    text-decoration: none;
}

.admin-register-logout:hover {
    color: #dc3545;
}

.admin-register-container {
    width: min(94%, 900px);
    margin: 30px auto 50px;
}

.admin-register-card {
    padding: 30px;
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 10px 25px rgba(35, 57, 82, .1);
}

.admin-register-card-heading {
    margin-bottom: 25px;
}

.admin-register-card-heading h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
}

.admin-register-card-heading p {
    margin: 5px 0 0;
    color: #748093;
    font-size: 11px;
}

.admin-register-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.admin-register-full {
    grid-column: 1 / -1;
}

.admin-register-field label {
    display: block;
    margin-bottom: 7px;
    color: #344054;
    font-size: 12px;
    font-weight: 650;
}

.admin-register-field .form-control,
.admin-register-field .form-select {
    min-height: 45px;
    border: 1px solid #dbe2ec;
    border-radius: 11px;
    font-size: 12px;
}

.admin-register-field .form-control:focus,
.admin-register-field .form-select:focus {
    border-color: #2463f5;
    box-shadow: 0 0 0 3px rgba(36, 99, 245, .12);
}

.admin-field-hint {
    display: block;
    margin-top: 6px;
    color: #7b8799;
    font-size: 9px;
    line-height: 1.5;
}

.admin-register-submit {
    width: 100%;
    min-height: 48px;
    margin-top: 26px;
    border: none;
    border-radius: 24px;
    background: #2463f5;
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
}

.admin-register-submit:hover {
    background: #1749de;
}

.admin-register-alert {
    margin-bottom: 18px;
    padding: 13px 16px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    font-weight: 600;
}

.admin-register-alert-error {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #b42318;
}

.admin-register-alert-success {
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    color: #15803d;
}

/* =====================================================
HALAMAN DAFTAR DOKTOR
===================================================== */

.doctor-register-page {
    min-height: 100vh;
    background: linear-gradient(
        135deg,
        #eef6ff,
        #f1fff9
    );
    color: #172033;
}

.doctor-register-header {
    background: #ffffff;
    box-shadow: 0 2px 10px rgba(30, 55, 90, .1);
}

.doctor-register-header-content {
    width: min(94%, 1100px);
    min-height: 76px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.doctor-register-heading {
    display: flex;
    align-items: center;
    gap: 12px;
}

.doctor-register-back,
.doctor-register-header-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.doctor-register-back {
    background: #dcfce7;
    color: #15803d;
    text-decoration: none;
}

.doctor-register-back:hover {
    background: #15803d;
    color: #ffffff;
}

.doctor-register-header-icon {
    background: #16a34a;
    color: #ffffff;
    font-size: 18px;
}

.doctor-register-heading h1 {
    margin: 0;
    font-size: 19px;
    font-weight: 700;
}

.doctor-register-heading p {
    margin: 3px 0 0;
    color: #748093;
    font-size: 10px;
}

.doctor-register-logout {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #556174;
    font-size: 11px;
    font-weight: 600;
    text-decoration: none;
}

.doctor-register-logout:hover {
    color: #dc3545;
}

.doctor-register-container {
    width: min(94%, 950px);
    margin: 30px auto 50px;
}

.doctor-register-card {
    padding: 30px;
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 10px 25px rgba(35, 57, 82, .1);
}

.doctor-register-card-heading {
    margin-bottom: 25px;
}

.doctor-register-card-heading h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
}

.doctor-register-card-heading p {
    margin: 5px 0 0;
    color: #748093;
    font-size: 11px;
}

.doctor-register-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.doctor-register-full {
    grid-column: 1 / -1;
}

.doctor-register-field label {
    display: block;
    margin-bottom: 7px;
    color: #344054;
    font-size: 12px;
    font-weight: 650;
}

.doctor-register-field .form-control,
.doctor-register-field .form-select {
    min-height: 45px;
    border: 1px solid #dbe2ec;
    border-radius: 11px;
    font-size: 12px;
}

.doctor-register-field .form-control:focus,
.doctor-register-field .form-select:focus {
    border-color: #16a34a;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, .12);
}

.doctor-field-hint {
    display: block;
    margin-top: 6px;
    color: #7b8799;
    font-size: 9px;
    line-height: 1.5;
}

.doctor-register-submit {
    width: 100%;
    min-height: 48px;
    margin-top: 26px;
    border: none;
    border-radius: 24px;
    background: #16a34a;
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
}

.doctor-register-submit:hover {
    background: #15803d;
}

.doctor-register-alert {
    margin-bottom: 18px;
    padding: 13px 16px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    font-weight: 600;
}

.doctor-register-alert-error {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #b42318;
}

@media (max-width: 700px) {

    .doctor-register-grid {
        grid-template-columns: 1fr;
    }

    .doctor-register-full {
        grid-column: auto;
    }

    .doctor-register-card {
        padding: 22px 18px;
    }

    .doctor-register-logout {
        font-size: 0;
    }

    .doctor-register-logout i {
        font-size: 15px;
    }
}

/* =====================================================
RUANG PASSWORD
===================================================== */

.password-input-wrapper {
    position: relative;
}

.password-input-wrapper .form-control {
    padding-right: 48px;
}

.password-toggle {
    position: absolute;
    top: 50%;
    right: 14px;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    color: #7b8799;
    cursor: pointer;
}

.password-toggle:hover {
    color: #2463f5;
}

.password-requirements {
    margin-top: 9px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f7f9fc;
}

.password-requirements p {
    margin: 0 0 7px;
    color: #556174;
    font-size: 9px;
    font-weight: 700;
}

.password-requirements span {
    margin-top: 5px;
    display: flex;
    align-items: center;
    gap: 6px;
    color: #8a94a5;
    font-size: 9px;
}

.password-requirement-valid {
    color: #198754 !important;
}

.password-requirement-invalid {
    color: #8a94a5;
}

.password-hint {
    display: block;
    margin-top: 7px;
    color: #7b8799;
    font-size: 9px;
}

.password-hint-success {
    color: #198754;
    font-weight: 600;
}

.password-hint-error {
    color: #dc3545;
    font-weight: 600;
}

@media (max-width: 700px) {

    .admin-register-header-content {
        padding: 12px 0;
        align-items: flex-start;
        gap: 12px;
    }

    .admin-register-logout {
        font-size: 0;
    }

    .admin-register-logout i {
        font-size: 15px;
    }

    .admin-register-grid {
        grid-template-columns: 1fr;
    }

    .admin-register-full {
        grid-column: auto;
    }

    .admin-register-card {
        padding: 22px 18px;
    }
}

/* =====================================================
KAD PENGURUSAN ADMIN DALAM DASHBOARD
===================================================== */

.admin-system-card {
    min-height: 86px;
    padding: 18px 20px;
    border: 1px solid #e4e9f1;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #ffffff;
    color: #172033;
    text-decoration: none;
    transition: transform .2s ease,
                box-shadow .2s ease,
                border-color .2s ease;
}

.admin-system-card:hover {
    transform: translateY(-2px);
    border-color: #cbd7f0;
    box-shadow: 0 9px 22px rgba(33, 61, 112, .1);
    color: #172033;
}

.admin-system-card-left {
    display: flex;
    align-items: center;
    gap: 15px;
}

.admin-system-icon {
    width: 54px;
    height: 54px;
    flex-shrink: 0;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
}

.admin-icon-purple {
    background: #f1ddff;
    color: #9333ea;
}

.admin-system-card h3 {
    margin: 0 0 5px;
    color: #101828;
    font-size: 14px;
    font-weight: 700;
}

.admin-system-card p {
    margin: 0;
    color: #7b8799;
    font-size: 10px;
    line-height: 1.5;
}

.admin-system-arrow {
    color: #a0aabc;
    font-size: 12px;
    transition: transform .2s ease;
}

.admin-system-card:hover .admin-system-arrow {
    transform: translateX(4px);
    color: #9333ea;
}

@media (max-width: 600px) {

    .admin-system-card {
        padding: 15px;
    }

    .admin-system-icon {
        width: 48px;
        height: 48px;
    }

    .admin-system-card h3 {
        font-size: 13px;
    }

    .admin-system-card p {
        font-size: 9px;
    }
}

/* =====================================================
SURAT CUTI SAKIT
===================================================== */

.real-mc-page {
    min-height: 100vh;
    margin: 0;
    padding: 30px 15px 60px;
    background: #e9edf2;
    color: #18202c;
    font-family: Arial, Helvetica, sans-serif;
}

.real-mc-page * {
    box-sizing: border-box;
}

.real-mc-action-bar {
    width: min(100%, 900px);
    margin: 0 auto 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.real-mc-back-button,
.real-mc-print-button {
    min-height: 43px;
    padding: 0 18px;
    border: none;
    border-radius: 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.real-mc-back-button {
    background: #ffffff;
    color: #364152;
    box-shadow: 0 3px 12px rgba(15, 23, 42, .1);
}

.real-mc-back-button:hover {
    background: #f1f5f9;
    color: #111827;
}

.real-mc-print-button {
    background: #174ea6;
    color: #ffffff;
}

.real-mc-print-button:hover {
    background: #103d83;
}

/* DOCUMENT */

.real-mc-paper {
    position: relative;
    width: min(100%, 900px);
    min-height: 1120px;
    margin: 0 auto;
    padding: 42px 50px 32px;
    overflow: hidden;
    border: 1px solid #aeb8c5;
    background: #ffffff;
    box-shadow: 0 16px 45px rgba(15, 23, 42, .18);
}

.real-mc-paper::before {
    position: absolute;
    top: 10px;
    right: 10px;
    bottom: 10px;
    left: 10px;
    border: 2px solid #174ea6;
    content: "";
    pointer-events: none;
}

.real-mc-paper::after {
    position: absolute;
    top: 15px;
    right: 15px;
    bottom: 15px;
    left: 15px;
    border: 1px solid #a9bddc;
    content: "";
    pointer-events: none;
}

.real-mc-paper > *:not(.real-mc-watermark) {
    position: relative;
    z-index: 2;
}

.real-mc-watermark {
    position: absolute;
    top: 48%;
    left: 50%;
    z-index: 0;
    transform: translate(-50%, -50%) rotate(-28deg);
    color: rgba(23, 78, 166, .035);
    font-size: 72px;
    font-weight: 900;
    letter-spacing: 7px;
    white-space: nowrap;
}

/* HEADER */

.real-mc-header {
    padding: 5px 4px 22px;
    border-bottom: 3px double #174ea6;
    display: grid;
    grid-template-columns: 76px 1fr auto;
    align-items: center;
    gap: 17px;
}

.real-mc-logo {
    width: 70px;
    height: 70px;
    border: 2px solid #174ea6;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #174ea6;
    font-size: 30px;
}

.real-mc-clinic h1 {
    margin: 0;
    color: #123d78;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 25px;
    font-weight: 800;
    letter-spacing: 1px;
}

.real-mc-clinic p {
    margin: 4px 0 0;
    color: #4b5563;
    font-size: 10px;
    line-height: 1.5;
}

.real-mc-reference {
    min-width: 190px;
    text-align: right;
}

.real-mc-reference p {
    margin: 5px 0;
    font-size: 10px;
}

.real-mc-reference span {
    display: block;
    color: #778294;
    font-size: 8px;
    font-weight: 700;
    text-transform: uppercase;
}

.real-mc-reference strong {
    display: block;
    margin-top: 2px;
    color: #172033;
    font-size: 11px;
}

/* TITLE */

.real-mc-title {
    margin: 27px 0 23px;
    text-align: center;
}

.real-mc-title h2 {
    margin: 0;
    color: #172033;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    font-weight: 800;
    letter-spacing: 2.2px;
    text-decoration: underline;
    text-underline-offset: 7px;
}

.real-mc-title p {
    margin: 11px 0 0;
    color: #687386;
    font-size: 10px;
    letter-spacing: .4px;
}

/* PATIENT */

.real-mc-patient-section {
    margin-top: 20px;
}

.real-mc-patient-section > h3 {
    margin: 0 0 9px;
    color: #123d78;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.real-mc-info-grid {
    border: 1px solid #b8c2ce;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

.real-mc-info-row {
    min-height: 52px;
    padding: 10px 13px;
    border-right: 1px solid #d1d8e0;
    border-bottom: 1px solid #d1d8e0;
}

.real-mc-info-row:nth-child(even) {
    border-right: none;
}

.real-mc-info-row:nth-last-child(-n+2) {
    border-bottom: none;
}

.real-mc-info-row span,
.real-mc-info-row strong {
    display: block;
}

.real-mc-info-row span {
    color: #697586;
    font-size: 8px;
    font-weight: 700;
    text-transform: uppercase;
}

.real-mc-info-row strong {
    margin-top: 5px;
    color: #172033;
    font-size: 11px;
}

/* STATEMENT */

.real-mc-statement {
    margin: 25px 4px 20px;
    color: #273244;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 13px;
    line-height: 1.85;
    text-align: justify;
}

.real-mc-statement p {
    margin: 0;
}

/* LEAVE PERIOD */

.real-mc-leave-section {
    padding: 17px;
    border: 1px solid #9eb5d6;
    display: grid;
    grid-template-columns: 1fr 35px 1fr 110px;
    align-items: center;
    gap: 10px;
    background: #f4f7fb;
}

.real-mc-leave-item,
.real-mc-leave-total {
    text-align: center;
}

.real-mc-leave-item span,
.real-mc-leave-total span {
    display: block;
    color: #687386;
    font-size: 8px;
    font-weight: 700;
    text-transform: uppercase;
}

.real-mc-leave-item strong,
.real-mc-leave-total strong {
    display: block;
    margin-top: 6px;
    color: #123d78;
    font-size: 12px;
}

.real-mc-leave-arrow {
    color: #174ea6;
    text-align: center;
}

.real-mc-leave-total {
    padding: 10px;
    border-left: 1px solid #b8c8de;
}

/* MEDICAL DETAILS */

.real-mc-medical-details {
    margin-top: 22px;
    border: 1px solid #c5ced8;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}

.real-mc-medical-details > div {
    min-height: 92px;
    padding: 14px 16px;
    border-right: 1px solid #d1d8e0;
}

.real-mc-medical-details > div:nth-child(even) {
    border-right: none;
}

.real-mc-medical-details .real-mc-full-detail {
    grid-column: 1 / -1;
    border-top: 1px solid #d1d8e0;
    border-right: none;
}

.real-mc-medical-details h3 {
    margin: 0;
    color: #123d78;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.real-mc-medical-details p {
    margin: 9px 0 0;
    color: #303b4c;
    font-size: 11px;
    line-height: 1.65;
}

/* ADVICE */

.real-mc-advice {
    margin-top: 17px;
    padding: 10px 13px;
    border-left: 4px solid #174ea6;
    display: flex;
    align-items: flex-start;
    gap: 9px;
    background: #f6f8fb;
}

.real-mc-advice i {
    margin-top: 2px;
    color: #174ea6;
    font-size: 11px;
}

.real-mc-advice p {
    margin: 0;
    color: #526073;
    font-size: 9px;
    line-height: 1.6;
}

/* SIGNATURE AND STAMP */

.real-mc-verification {
    margin-top: 62px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 90px;
}

.real-mc-verification-box {
    text-align: center;
}

.real-mc-empty-space {
    height: 66px;
}

.real-mc-stamp-space {
    height: 66px;
    border: 1px dashed #9aa6b5;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #98a2b1;
    font-size: 9px;
}

.real-mc-signature-line {
    margin-top: 7px;
    border-top: 1px solid #172033;
}

.real-mc-verification-box h4 {
    margin: 9px 0 0;
    color: #172033;
    font-size: 11px;
    font-weight: 800;
}

.real-mc-verification-box p {
    margin: 3px 0 0;
    color: #687386;
    font-size: 9px;
}

.real-mc-verification-box > strong {
    display: block;
    margin-top: 9px;
    color: #172033;
    font-size: 9px;
}

/* FOOTER */

.real-mc-footer {
    margin-top: 35px;
    padding-top: 11px;
    border-top: 1px solid #aeb8c5;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    color: #758195;
    font-size: 7px;
    line-height: 1.5;
}

.real-mc-footer p {
    max-width: 65%;
    margin: 0;
}

.real-mc-footer p:last-child {
    text-align: right;
}

/* MOBILE */

@media (max-width: 700px) {

    .real-mc-page {
        padding: 12px 6px 35px;
    }

    .real-mc-paper {
        min-height: auto;
        padding: 30px 24px;
    }

    .real-mc-header {
        grid-template-columns: 60px 1fr;
    }

    .real-mc-reference {
        grid-column: 1 / -1;
        text-align: left;
    }

    .real-mc-info-grid {
        grid-template-columns: 1fr;
    }

    .real-mc-info-row {
        border-right: none;
        border-bottom: 1px solid #d1d8e0 !important;
    }

    .real-mc-info-row:last-child {
        border-bottom: none !important;
    }

    .real-mc-leave-section {
        grid-template-columns: 1fr;
    }

    .real-mc-leave-arrow {
        transform: rotate(90deg);
    }

    .real-mc-leave-total {
        border-top: 1px solid #b8c8de;
        border-left: none;
    }

    .real-mc-medical-details {
        grid-template-columns: 1fr;
    }

    .real-mc-medical-details > div {
        border-right: none;
        border-bottom: 1px solid #d1d8e0;
    }

    .real-mc-verification {
        grid-template-columns: 1fr;
        gap: 45px;
    }
}

/* PRINT */

@media print {

    @page {
        size: A4 portrait;
        margin: 8mm;
    }

    .real-mc-page {
        min-height: auto;
        padding: 0;
        background: #ffffff;
    }

    .real-mc-action-bar {
        display: none !important;
    }

    .real-mc-paper {
        width: 100%;
        min-height: 0;
        margin: 0;
        padding: 20px 28px;
        border: none;
        box-shadow: none;
    }

    .real-mc-paper::before {
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
    }

    .real-mc-paper::after {
        top: 5px;
        right: 5px;
        bottom: 5px;
        left: 5px;
    }

    .real-mc-leave-section,
    .real-mc-medical-details,
    .real-mc-advice,
    .real-mc-info-grid {
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }
}

/* =====================================================
MODUL LAPORAN KHAS ADMIN
===================================================== */

.admin-special-report-grid {
    margin-bottom: 24px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.admin-special-report-card {
    min-height: 145px;
    padding: 20px;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    background: #ffffff;
    color: #172033;
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(30, 55, 90, .06);
    transition: .2s ease;
}

.admin-special-report-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 13px 30px rgba(30, 55, 90, .11);
}

.admin-special-report-icon {
    width: 54px;
    height: 54px;
    flex-shrink: 0;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
}

.special-report-danger {
    border-left: 5px solid #dc2626;
}

.special-report-danger .admin-special-report-icon {
    background: #fee2e2;
    color: #b91c1c;
}

.special-report-blue {
    border-left: 5px solid #2563eb;
}

.special-report-blue .admin-special-report-icon {
    background: #e8efff;
    color: #2563eb;
}

.admin-special-report-card h3 {
    margin: 0;
    color: #172033;
    font-size: 15px;
    font-weight: 800;
}

.admin-special-report-card p {
    margin: 7px 0 13px;
    color: #718096;
    font-size: 10px;
    line-height: 1.6;
}

.admin-special-report-card span {
    color: #2563eb;
    font-size: 9px;
    font-weight: 700;
}

.admin-special-report-card span i {
    margin-left: 5px;
}

.special-report-danger span {
    color: #b91c1c;
}

@media (max-width: 750px) {

    .admin-special-report-grid {
        grid-template-columns: 1fr;
    }
}

/* =====================================================
SURAT CUTI SAKIT ADMIN
===================================================== */

.admin-mc-page {
    min-height: 100vh;
    margin: 0;
    background: #f3f7fc;
    color: #172033;
    font-family: "Segoe UI", Arial, sans-serif;
}

.admin-mc-header {
    background: linear-gradient(
        135deg,
        #174ea6,
        #2563eb
    );
    color: #ffffff;
    box-shadow: 0 5px 18px rgba(23, 78, 166, .18);
}

.admin-mc-header-content {
    width: min(95%, 1400px);
    min-height: 96px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.admin-mc-title-area,
.admin-mc-user-area {
    display: flex;
    align-items: center;
    gap: 15px;
}

.admin-mc-back {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .16);
    color: #ffffff;
    text-decoration: none;
}

.admin-mc-back:hover {
    background: #ffffff;
    color: #174ea6;
}

.admin-mc-header-icon {
    width: 52px;
    height: 52px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .17);
    font-size: 22px;
}

.admin-mc-title-area h1 {
    margin: 0;
    font-size: 24px;
    font-weight: 800;
}

.admin-mc-title-area p {
    margin: 5px 0 0;
    color: #dbeafe;
    font-size: 10px;
}

.admin-mc-user-area > div {
    text-align: right;
}

.admin-mc-user-area strong,
.admin-mc-user-area span {
    display: block;
}

.admin-mc-user-area strong {
    font-size: 12px;
}

.admin-mc-user-area span {
    margin-top: 3px;
    color: #dbeafe;
    font-size: 8px;
}

.admin-mc-logout {
    padding: 10px 16px;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: rgba(255, 255, 255, .16);
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
}

.admin-mc-logout:hover {
    background: #ffffff;
    color: #174ea6;
}

.admin-mc-container {
    width: min(95%, 1400px);
    margin: 27px auto 60px;
}

/* READ-ONLY NOTICE */

.admin-mc-notice {
    margin-bottom: 20px;
    padding: 16px 19px;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: #eff6ff;
}

.admin-mc-notice-icon {
    width: 43px;
    height: 43px;
    flex-shrink: 0;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #dbeafe;
    color: #1d4ed8;
    font-size: 17px;
}

.admin-mc-notice h2 {
    margin: 0;
    color: #1e3a8a;
    font-size: 13px;
    font-weight: 800;
}

.admin-mc-notice p {
    margin: 4px 0 0;
    color: #456089;
    font-size: 9px;
}

/* SUMMARY */

.admin-mc-summary-grid {
    margin-bottom: 20px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.admin-mc-summary-card {
    min-height: 120px;
    padding: 18px;
    border: 1px solid #e1e8f1;
    border-radius: 15px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: #ffffff;
    box-shadow: 0 8px 24px rgba(30, 55, 90, .05);
}

.admin-mc-summary-icon {
    width: 47px;
    height: 47px;
    flex-shrink: 0;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.mc-summary-blue {
    background: #dbeafe;
    color: #2563eb;
}

.mc-summary-green {
    background: #dcfce7;
    color: #15803d;
}

.mc-summary-purple {
    background: #f3e8ff;
    color: #7e22ce;
}

.mc-summary-orange {
    background: #ffedd5;
    color: #c2410c;
}

.admin-mc-summary-card span,
.admin-mc-summary-card strong,
.admin-mc-summary-card p {
    display: block;
}

.admin-mc-summary-card span {
    color: #64748b;
    font-size: 9px;
    font-weight: 700;
}

.admin-mc-summary-card strong {
    margin-top: 4px;
    color: #172033;
    font-size: 25px;
    line-height: 1;
}

.admin-mc-summary-card p {
    margin: 6px 0 0;
    color: #94a3b8;
    font-size: 8px;
}

/* FILTER AND LIST */

.admin-mc-filter-card,
.admin-mc-list-section {
    margin-bottom: 22px;
    padding: 23px;
    border: 1px solid #e1e8f1;
    border-radius: 17px;
    background: #ffffff;
    box-shadow: 0 9px 27px rgba(30, 55, 90, .06);
}

.admin-mc-section-heading {
    margin-bottom: 18px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 15px;
}

.admin-mc-section-heading h2 {
    margin: 0;
    color: #172033;
    font-size: 17px;
    font-weight: 800;
}

.admin-mc-section-heading h2 i {
    margin-right: 7px;
    color: #2563eb;
}

.admin-mc-section-heading p {
    margin: 5px 0 0;
    color: #748093;
    font-size: 9px;
}

.admin-mc-result-count {
    padding: 7px 11px;
    border-radius: 999px;
    background: #e8efff;
    color: #2456a6;
    font-size: 9px;
    font-weight: 700;
}

.admin-mc-filter-form {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 13px;
}

.admin-mc-filter-field label {
    display: block;
    margin-bottom: 7px;
    color: #475569;
    font-size: 9px;
    font-weight: 700;
}

.admin-mc-input-icon {
    position: relative;
}

.admin-mc-input-icon > i {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    transform: translateY(-50%);
    color: #94a3b8;
    font-size: 11px;
}

.admin-mc-input-icon .form-control {
    padding-left: 37px;
}

.admin-mc-filter-actions {
    grid-column: 1 / -1;
    display: flex;
    gap: 9px;
}

.admin-mc-search-button,
.admin-mc-reset-button {
    min-height: 41px;
    padding: 0 17px;
    border: none;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
}

.admin-mc-search-button {
    background: #2563eb;
    color: #ffffff;
}

.admin-mc-reset-button {
    background: #e2e8f0;
    color: #475569;
}

/* TABLE */

.admin-mc-table-wrapper {
    overflow-x: auto;
}

.admin-mc-table {
    width: 100%;
    min-width: 1150px;
    border-collapse: collapse;
}

.admin-mc-table th,
.admin-mc-table td {
    padding: 13px 11px;
    border-bottom: 1px solid #e8edf4;
    vertical-align: middle;
    text-align: left;
    font-size: 9px;
}

.admin-mc-table th {
    background: #f7f9fc;
    color: #64748b;
    font-size: 8px;
    font-weight: 800;
    text-transform: uppercase;
}

.admin-mc-number {
    padding: 6px 9px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #eef4ff;
    color: #2456a6;
    font-size: 8px;
    font-weight: 800;
    white-space: nowrap;
}

.admin-mc-patient {
    display: flex;
    align-items: center;
    gap: 10px;
}

.admin-mc-avatar {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e8efff;
    color: #2563eb;
    font-size: 12px;
    font-weight: 800;
}

.admin-mc-patient strong,
.admin-mc-patient small {
    display: block;
}

.admin-mc-patient strong {
    color: #172033;
    font-size: 10px;
}

.admin-mc-patient small {
    margin-top: 3px;
    color: #7b8799;
    font-size: 7px;
}

.admin-mc-duration {
    padding: 5px 9px;
    border-radius: 999px;
    display: inline-flex;
    background: #dcfce7;
    color: #15803d;
    font-size: 8px;
    font-weight: 800;
    white-space: nowrap;
}

.admin-mc-reason {
    max-width: 170px;
    color: #475569;
    line-height: 1.5;
}

.admin-mc-view-button {
    padding: 8px 11px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #172033;
    color: #ffffff;
    font-size: 8px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.admin-mc-view-button:hover {
    background: #2563eb;
    color: #ffffff;
}

/* EMPTY */

.admin-mc-empty {
    padding: 55px 20px;
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    text-align: center;
}

.admin-mc-empty i {
    color: #94a3b8;
    font-size: 28px;
}

.admin-mc-empty h3 {
    margin: 13px 0 0;
    color: #334155;
    font-size: 15px;
}

.admin-mc-empty p {
    margin: 6px 0 0;
    color: #7b8799;
    font-size: 9px;
}

@media (max-width: 1000px) {

    .admin-mc-summary-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .admin-mc-filter-form {
        grid-template-columns: repeat(2, 1fr);
    }

    .admin-mc-search-field {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {

    .admin-mc-header-content {
        padding: 17px 0;
        align-items: flex-start;
        flex-direction: column;
    }

    .admin-mc-user-area {
        width: 100%;
        justify-content: space-between;
    }

    .admin-mc-user-area > div {
        text-align: left;
    }

    .admin-mc-filter-form {
        grid-template-columns: 1fr;
    }

    .admin-mc-search-field {
        grid-column: auto;
    }
}

@media (max-width: 520px) {

    .admin-mc-summary-grid {
        grid-template-columns: 1fr;
    }

    .admin-mc-section-heading {
        flex-direction: column;
    }

    .admin-mc-title-area h1 {
        font-size: 19px;
    }
}

/* =====================================================
LABEL PAPARAN SAHAJA UNTUK MC ADMIN
===================================================== */

.admin-mc-readonly-label {
    padding: 8px 13px;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: 9px;
    font-weight: 700;
}

@media print {

    .admin-mc-readonly-label {
        display: none !important;
    }
}

@media (max-width: 650px) {

    .real-mc-action-bar {
        flex-wrap: wrap;
        gap: 10px;
    }

    .admin-mc-readonly-label {
        order: 3;
        width: 100%;
    }
}

/* =====================================================
LAPORAN PEMANTAUAN PENYAKIT
===================================================== */

.disease-report-page {
    min-height: 100vh;
    margin: 0;
    background: #f3f7fc;
    color: #172033;
    font-family: "Segoe UI", Arial, sans-serif;
}

.disease-report-header {
    background: linear-gradient(
        135deg,
        #9f1239,
        #dc2626
    );
    color: #ffffff;
}

.disease-report-header-content {
    width: min(94%, 1350px);
    min-height: 95px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.disease-report-title-area {
    display: flex;
    align-items: center;
    gap: 15px;
}

.disease-report-back {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .15);
    color: #ffffff;
    text-decoration: none;
}

.disease-report-back:hover {
    background: #ffffff;
    color: #b91c1c;
}

.disease-report-header-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .16);
    font-size: 22px;
}

.disease-report-title-area h1 {
    margin: 0;
    font-size: 24px;
    font-weight: 800;
}

.disease-report-title-area p {
    margin: 5px 0 0;
    color: #ffe4e6;
    font-size: 10px;
}

.disease-report-logout {
    padding: 10px 16px;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: rgba(255, 255, 255, .15);
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
}

.disease-report-container {
    width: min(94%, 1350px);
    margin: 28px auto 60px;
}

.disease-filter-card {
    margin-bottom: 22px;
    padding: 23px;
    border: 1px solid #e2e8f0;
    border-radius: 17px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(30, 55, 90, .07);
}

.disease-section-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 800;
}

.disease-section-heading h2 i {
    margin-right: 7px;
    color: #dc2626;
}

.disease-section-heading p {
    margin: 5px 0 0;
    color: #748093;
    font-size: 10px;
}

.disease-filter-form {
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.disease-filter-field label {
    display: block;
    margin-bottom: 7px;
    color: #475569;
    font-size: 10px;
    font-weight: 700;
}

.disease-filter-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.disease-search-button,
.disease-reset-button,
.disease-print-button {
    min-height: 41px;
    padding: 0 17px;
    border: none;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.disease-search-button {
    background: #dc2626;
    color: #ffffff;
}

.disease-reset-button {
    background: #e2e8f0;
    color: #475569;
}

.disease-print-button {
    margin-left: auto;
    background: #172033;
    color: #ffffff;
}

.disease-print-paper {
    padding: 35px;
    border: 1px solid #d5dde7;
    background: #ffffff;
    box-shadow: 0 12px 35px rgba(30, 55, 90, .08);
}

.disease-print-header {
    padding-bottom: 18px;
    border-bottom: 3px double #172033;
    display: grid;
    grid-template-columns: 65px 1fr auto;
    align-items: center;
    gap: 15px;
}

.disease-print-logo {
    width: 60px;
    height: 60px;
    border: 2px solid #b91c1c;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #b91c1c;
    font-size: 25px;
}

.disease-print-clinic h1 {
    margin: 0;
    color: #172033;
    font-family: Georgia, serif;
    font-size: 22px;
    font-weight: 800;
}

.disease-print-clinic p {
    margin: 4px 0 0;
    color: #64748b;
    font-size: 9px;
}

.disease-print-meta {
    min-width: 170px;
    text-align: right;
}

.disease-print-meta span,
.disease-print-meta strong {
    display: block;
}

.disease-print-meta span {
    margin-top: 5px;
    color: #94a3b8;
    font-size: 7px;
    text-transform: uppercase;
}

.disease-print-meta strong {
    margin-top: 2px;
    color: #172033;
    font-size: 9px;
}

.disease-print-title {
    margin: 25px 0 20px;
    text-align: center;
}

.disease-print-title h2 {
    margin: 0;
    font-family: Georgia, serif;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 1px;
}

.disease-print-title p {
    margin: 8px 0 0;
    color: #64748b;
    font-size: 9px;
}

.disease-report-information {
    margin-bottom: 20px;
    display: grid;
    grid-template-columns: 2fr 2fr 1fr;
    border: 1px solid #cbd5e1;
}

.disease-report-information > div {
    padding: 12px 14px;
    border-right: 1px solid #cbd5e1;
}

.disease-report-information > div:last-child {
    border-right: none;
}

.disease-report-information span,
.disease-report-information strong {
    display: block;
}

.disease-report-information span {
    color: #64748b;
    font-size: 8px;
    text-transform: uppercase;
}

.disease-report-information strong {
    margin-top: 5px;
    color: #172033;
    font-size: 11px;
}

.disease-report-table-wrapper {
    overflow-x: auto;
}

.disease-report-table {
    width: 100%;
    border-collapse: collapse;
}

.disease-report-table th,
.disease-report-table td {
    padding: 10px;
    border: 1px solid #cbd5e1;
    vertical-align: top;
    font-size: 9px;
}

.disease-report-table th {
    background: #f1f5f9;
    color: #334155;
    font-size: 8px;
    text-transform: uppercase;
}

.disease-report-table strong,
.disease-report-table small {
    display: block;
}

.disease-report-table small {
    margin-top: 4px;
    color: #64748b;
    font-size: 8px;
}

.disease-report-badge {
    margin: 2px;
    padding: 4px 7px;
    border-radius: 999px;
    display: inline-block;
    background: #fee2e2;
    color: #b91c1c;
    font-size: 7px;
    font-weight: 700;
}

.disease-report-empty {
    padding: 55px 20px;
    border: 1px dashed #cbd5e1;
    text-align: center;
}

.disease-report-empty i {
    color: #94a3b8;
    font-size: 27px;
}

.disease-report-empty h3 {
    margin: 13px 0 0;
    font-size: 15px;
}

.disease-report-empty p {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 9px;
}

.disease-report-signature {
    margin-top: 60px;
    display: grid;
    grid-template-columns: repeat(2, 240px);
    justify-content: space-between;
    gap: 60px;
}

.disease-report-signature > div {
    text-align: center;
}

.disease-signature-space {
    height: 50px;
}

.disease-signature-line {
    border-top: 1px solid #172033;
}

.disease-report-signature strong {
    display: block;
    margin-top: 7px;
    font-size: 9px;
}

.disease-report-signature p,
.disease-report-signature span {
    display: block;
    margin: 3px 0 0;
    color: #64748b;
    font-size: 8px;
}

.disease-report-footer {
    margin-top: 35px;
    padding-top: 10px;
    border-top: 1px solid #cbd5e1;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: #94a3b8;
    font-size: 7px;
}

.disease-report-footer p {
    margin: 0;
}

@media (max-width: 900px) {

    .disease-filter-form {
        grid-template-columns: repeat(2, 1fr);
    }

    .disease-report-information {
        grid-template-columns: 1fr;
    }

    .disease-report-information > div {
        border-right: none;
        border-bottom: 1px solid #cbd5e1;
    }
}

@media (max-width: 600px) {

    .disease-report-header-content {
        padding: 16px 0;
        align-items: flex-start;
        flex-direction: column;
    }

    .disease-filter-form {
        grid-template-columns: 1fr;
    }

    .disease-print-paper {
        padding: 20px;
    }

    .disease-print-header {
        grid-template-columns: 55px 1fr;
    }

    .disease-print-meta {
        grid-column: 1 / -1;
        text-align: left;
    }

    .disease-report-signature {
        grid-template-columns: 1fr;
    }
}

@media print {

    @page {
        size: A4 landscape;
        margin: 8mm;
    }

    .no-print {
        display: none !important;
    }

    .disease-report-page {
        background: #ffffff;
    }

    .disease-report-container {
        width: 100%;
        margin: 0;
    }

    .disease-print-paper {
        padding: 10px;
        border: none;
        box-shadow: none;
    }

    .disease-report-table-wrapper {
        overflow: visible;
    }

    .disease-report-table th,
    .disease-report-table td {
        padding: 6px;
        font-size: 7px;
    }

    .disease-report-signature {
        margin-top: 35px;
    }
}

/* =====================================================
STATISTIK PENYAKIT
===================================================== */

.report-mc-stat {
    background: #e0e7ff;
    color: #4338ca;
}

.report-disease-stat {
    background: #fee2e2;
    color: #b91c1c;
}

.report-common-stat {
    background: #fef3c7;
    color: #a16207;
}

.report-common-disease-card {
    grid-column: span 2;
}

.report-disease-name {
    max-width: 230px;
    font-size: 14px !important;
    line-height: 1.35 !important;
}

.disease-statistics-section {
    border-top: 4px solid #dc2626;
}

.top-disease-list {
    margin-top: 22px;
}

.top-disease-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 11px;
}

.top-disease-item {
    padding: 13px 15px;
    border: 1px solid #e3e8ef;
    border-radius: 12px;
    display: grid;
    grid-template-columns: 36px 1fr auto;
    align-items: center;
    gap: 11px;
    background: #ffffff;
}

.top-disease-rank {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fee2e2;
    color: #b91c1c;
    font-size: 11px;
    font-weight: 800;
}

.top-disease-item strong,
.top-disease-item small {
    display: block;
}

.top-disease-item strong {
    color: #172033;
    font-size: 10px;
}

.top-disease-item small {
    margin-top: 4px;
    color: #94a3b8;
    font-size: 7px;
}

.top-disease-total {
    padding: 5px 9px;
    border-radius: 999px;
    background: #fff1f2;
    color: #be123c;
    font-size: 8px;
    font-weight: 800;
    white-space: nowrap;
}

.admin-full-report-footer {
    margin-top: 30px;
    padding-top: 12px;
    border-top: 1px solid #dce3ec;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: #94a3b8;
    font-size: 8px;
}

.admin-full-report-footer p {
    margin: 0;
}

@media (max-width: 850px) {

    .report-common-disease-card {
        grid-column: auto;
    }

    .top-disease-grid {
        grid-template-columns: 1fr;
    }
}

/* =====================================================
CETAK LAPORAN PENUH ADMIN
===================================================== */

@media print {

    @page {
        size: A4 landscape;
        margin: 8mm;
    }

    body.admin-report-page {
        background: #ffffff !important;
        color: #000000 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .no-report-print,
    .admin-report-header,
    .admin-report-filter-card,
    .admin-special-report-grid,
    .admin-report-header-actions,
    .admin-report-back,
    .admin-report-print,
    .admin-report-logout {
        display: none !important;
    }

    .admin-report-container {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .admin-report-title-section {
        margin-bottom: 12px !important;
        padding: 12px !important;
        border: 1px solid #bfc7d1 !important;
        box-shadow: none !important;
    }

    .admin-report-stat-grid {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 7px !important;
    }

    .admin-report-stat-card {
        min-height: 80px !important;
        padding: 9px !important;
        border: 1px solid #bfc7d1 !important;
        box-shadow: none !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .admin-report-stat-icon {
        width: 34px !important;
        height: 34px !important;
        font-size: 13px !important;
    }

    .admin-report-stat-card strong {
        font-size: 17px !important;
    }

    .admin-report-status-grid,
    .admin-report-chart-grid,
    .admin-report-section,
    .disease-statistics-section,
    .top-disease-list {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .admin-report-section,
    .admin-report-chart-card {
        padding: 12px !important;
        border: 1px solid #bfc7d1 !important;
        box-shadow: none !important;
    }

    .admin-report-chart-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 10px !important;
    }

    .admin-report-chart-area {
        height: 220px !important;
    }

    canvas {
        max-width: 100% !important;
        max-height: 220px !important;
    }

    .top-disease-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 6px !important;
    }

    .top-disease-item {
        padding: 7px !important;
        border: 1px solid #bfc7d1 !important;
    }

    .admin-report-table-wrapper {
        overflow: visible !important;
    }

    .admin-report-table {
        width: 100% !important;
        min-width: 0 !important;
    }

    .admin-report-table th,
    .admin-report-table td {
        padding: 5px !important;
        font-size: 6.5px !important;
    }

    .admin-report-section-heading h2 {
        font-size: 12px !important;
    }

    .admin-report-section-heading p {
        font-size: 7px !important;
    }

    .admin-full-report-footer {
        margin-top: 15px !important;
        font-size: 7px !important;
    }

    a {
        color: inherit !important;
        text-decoration: none !important;
    }
}

/* =====================================================
LAPORAN TEMU JANJI ADMIN
===================================================== */

.appointment-report-page {
    min-height: 100vh;
    margin: 0;
    background: #f3f7fc;
    color: #172033;
    font-family: "Segoe UI", Arial, sans-serif;
}

.appointment-report-header {
    background: linear-gradient(
        135deg,
        #5b21b6,
        #7c3aed
    );
    color: #ffffff;
}

.appointment-report-header-content {
    width: min(95%, 1400px);
    min-height: 95px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.appointment-report-title-area,
.appointment-report-header-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.appointment-report-back {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .15);
    color: #ffffff;
    text-decoration: none;
}

.appointment-report-back:hover {
    background: #ffffff;
    color: #6d28d9;
}

.appointment-report-header-icon {
    width: 52px;
    height: 52px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .16);
    font-size: 21px;
}

.appointment-report-title-area h1 {
    margin: 0;
    font-size: 24px;
    font-weight: 800;
}

.appointment-report-title-area p {
    margin: 5px 0 0;
    color: #ede9fe;
    font-size: 10px;
}

.appointment-report-print-button,
.appointment-report-logout {
    min-height: 40px;
    padding: 0 15px;
    border: none;
    border-radius: 21px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    background: rgba(255, 255, 255, .16);
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.appointment-report-print-button:hover,
.appointment-report-logout:hover {
    background: #ffffff;
    color: #6d28d9;
}

.appointment-report-container {
    width: min(95%, 1400px);
    margin: 28px auto 60px;
}

.appointment-report-filter-card {
    margin-bottom: 22px;
    padding: 23px;
    border: 1px solid #e2e8f0;
    border-radius: 17px;
    background: #ffffff;
    box-shadow: 0 10px 28px rgba(30, 55, 90, .07);
}

.appointment-report-section-heading h2 {
    margin: 0;
    font-size: 17px;
    font-weight: 800;
}

.appointment-report-section-heading h2 i {
    margin-right: 7px;
    color: #7c3aed;
}

.appointment-report-section-heading p {
    margin: 5px 0 0;
    color: #748093;
    font-size: 10px;
}

.appointment-report-filter-form {
    margin-top: 19px;
    display: grid;
    grid-template-columns: 2fr 1.4fr 1fr 1fr 1fr;
    gap: 13px;
}

.appointment-report-field label {
    display: block;
    margin-bottom: 7px;
    color: #475569;
    font-size: 9px;
    font-weight: 700;
}

.appointment-report-filter-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.appointment-report-search-button,
.appointment-report-reset-button,
.appointment-report-export-button {
    min-height: 41px;
    padding: 0 17px;
    border: none;
    border-radius: 9px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 700;
    text-decoration: none;
}

.appointment-report-search-button {
    background: #7c3aed;
    color: #ffffff;
}

.appointment-report-reset-button {
    background: #e2e8f0;
    color: #475569;
}

.appointment-report-export-button {
    margin-left: auto;
    background: #15803d;
    color: #ffffff;
}

/* PAPER */

.appointment-report-paper {
    padding: 35px;
    border: 1px solid #d5dde7;
    background: #ffffff;
    box-shadow: 0 12px 35px rgba(30, 55, 90, .08);
}

.appointment-report-paper-header {
    padding-bottom: 18px;
    border-bottom: 3px double #172033;
    display: grid;
    grid-template-columns: 65px 1fr auto;
    align-items: center;
    gap: 15px;
}

.appointment-report-logo {
    width: 60px;
    height: 60px;
    border: 2px solid #7c3aed;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #7c3aed;
    font-size: 24px;
}

.appointment-report-clinic h1 {
    margin: 0;
    font-family: Georgia, serif;
    font-size: 22px;
    font-weight: 800;
}

.appointment-report-clinic p {
    margin: 4px 0 0;
    color: #64748b;
    font-size: 9px;
}

.appointment-report-meta {
    min-width: 180px;
    text-align: right;
}

.appointment-report-meta span,
.appointment-report-meta strong {
    display: block;
}

.appointment-report-meta span {
    margin-top: 5px;
    color: #94a3b8;
    font-size: 7px;
    text-transform: uppercase;
}

.appointment-report-meta strong {
    margin-top: 2px;
    font-size: 9px;
}

.appointment-report-title {
    margin: 25px 0 20px;
    text-align: center;
}

.appointment-report-title h2 {
    margin: 0;
    font-family: Georgia, serif;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 1px;
}

.appointment-report-title p {
    margin: 7px 0 0;
    color: #64748b;
    font-size: 9px;
}

.appointment-report-info-grid {
    margin-bottom: 17px;
    display: grid;
    grid-template-columns: 2fr 1.4fr 1fr 1fr;
    border: 1px solid #cbd5e1;
}

.appointment-report-info-grid > div {
    padding: 12px 14px;
    border-right: 1px solid #cbd5e1;
}

.appointment-report-info-grid > div:last-child {
    border-right: none;
}

.appointment-report-info-grid span,
.appointment-report-info-grid strong {
    display: block;
}

.appointment-report-info-grid span {
    color: #64748b;
    font-size: 7px;
    text-transform: uppercase;
}

.appointment-report-info-grid strong {
    margin-top: 5px;
    font-size: 10px;
}

.appointment-report-summary-grid {
    margin-bottom: 18px;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 9px;
}

.appointment-report-summary-grid article {
    padding: 11px;
    border: 1px solid #ddd6fe;
    border-radius: 9px;
    text-align: center;
    background: #faf5ff;
}

.appointment-report-summary-grid span,
.appointment-report-summary-grid strong {
    display: block;
}

.appointment-report-summary-grid span {
    color: #6b7280;
    font-size: 8px;
}

.appointment-report-summary-grid strong {
    margin-top: 4px;
    color: #6d28d9;
    font-size: 18px;
}

.appointment-report-table-wrapper {
    overflow-x: auto;
}

.appointment-report-table {
    width: 100%;
    border-collapse: collapse;
}

.appointment-report-table th,
.appointment-report-table td {
    padding: 10px;
    border: 1px solid #cbd5e1;
    vertical-align: top;
    text-align: left;
    font-size: 8px;
}

.appointment-report-table th {
    background: #f5f3ff;
    color: #4c1d95;
    font-size: 7px;
    text-transform: uppercase;
}

.appointment-report-table strong,
.appointment-report-table small {
    display: block;
}

.appointment-report-table small {
    margin-top: 4px;
    color: #64748b;
    font-size: 7px;
}

.appointment-report-pending,
.appointment-report-approved,
.appointment-report-completed,
.appointment-report-cancelled {
    padding: 5px 8px;
    border-radius: 999px;
    display: inline-flex;
    font-size: 7px;
    font-weight: 800;
}

.appointment-report-pending {
    background: #fef3c7;
    color: #a16207;
}

.appointment-report-approved {
    background: #dbeafe;
    color: #1d4ed8;
}

.appointment-report-completed {
    background: #dcfce7;
    color: #15803d;
}

.appointment-report-cancelled {
    background: #fee2e2;
    color: #b91c1c;
}

.appointment-report-empty {
    padding: 55px 20px;
    border: 1px dashed #cbd5e1;
    text-align: center;
}

.appointment-report-empty i {
    color: #94a3b8;
    font-size: 27px;
}

.appointment-report-empty h3 {
    margin: 13px 0 0;
    font-size: 15px;
}

.appointment-report-empty p {
    margin: 6px 0 0;
    color: #64748b;
    font-size: 9px;
}

.appointment-report-signature {
    margin-top: 60px;
    display: grid;
    grid-template-columns: repeat(2, 240px);
    justify-content: space-between;
    gap: 60px;
}

.appointment-report-signature > div {
    text-align: center;
}

.appointment-report-signature-space {
    height: 50px;
}

.appointment-report-signature-line {
    border-top: 1px solid #172033;
}

.appointment-report-signature strong {
    display: block;
    margin-top: 7px;
    font-size: 9px;
}

.appointment-report-signature p,
.appointment-report-signature span {
    display: block;
    margin: 3px 0 0;
    color: #64748b;
    font-size: 8px;
}

.appointment-report-footer {
    margin-top: 35px;
    padding-top: 10px;
    border-top: 1px solid #cbd5e1;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: #94a3b8;
    font-size: 7px;
}

.appointment-report-footer p {
    margin: 0;
}

@media (max-width: 1050px) {

    .appointment-report-filter-form {
        grid-template-columns: repeat(2, 1fr);
    }

    .appointment-report-search {
        grid-column: 1 / -1;
    }
}

@media (max-width: 750px) {

    .appointment-report-header-content {
        padding: 17px 0;
        align-items: flex-start;
        flex-direction: column;
    }

    .appointment-report-filter-form {
        grid-template-columns: 1fr;
    }

    .appointment-report-search {
        grid-column: auto;
    }

    .appointment-report-info-grid {
        grid-template-columns: 1fr;
    }

    .appointment-report-info-grid > div {
        border-right: none;
        border-bottom: 1px solid #cbd5e1;
    }

    .appointment-report-summary-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .appointment-report-signature {
        grid-template-columns: 1fr;
    }
}

/* PRINT */

@media print {

    @page {
        size: A4 landscape;
        margin: 8mm;
    }

    .no-appointment-print {
        display: none !important;
    }

    body.appointment-report-page {
        background: #ffffff !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }

    .appointment-report-container {
        width: 100%;
        margin: 0;
    }

    .appointment-report-paper {
        padding: 10px;
        border: none;
        box-shadow: none;
    }

    .appointment-report-table-wrapper {
        overflow: visible;
    }

    .appointment-report-table th,
    .appointment-report-table td {
        padding: 6px;
        font-size: 6.5px;
    }

    .appointment-report-summary-grid {
        gap: 5px;
    }

    .appointment-report-summary-grid article {
        padding: 7px;
    }

    .appointment-report-signature {
        margin-top: 35px;
    }
}
.special-report-purple {
    border-left: 5px solid #7c3aed;
}

.special-report-purple
.admin-special-report-icon {
    background: #f3e8ff;
    color: #7c3aed;
}

/* ======================================================
HALAMAN TAMBAH PESAKIT
====================================================== */

.admin-add-patient-page {
    min-height: 100vh;
    background: linear-gradient(135deg, #eef6ff, #f1fff9);
    color: #172033;
}

.admin-add-patient-header {
    background: #ffffff;
    box-shadow: 0 2px 9px rgba(30, 55, 90, .1);
}

.admin-add-patient-header-content {
    width: min(94%, 1100px);
    min-height: 72px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-add-patient-heading {
    display: flex;
    align-items: center;
    gap: 11px;
}

.admin-add-patient-back,
.admin-add-patient-header-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.admin-add-patient-back {
    background: #e2ebff;
    color: #2463f5;
}

.admin-add-patient-back:hover {
    background: #2463f5;
    color: #ffffff;
}

.admin-add-patient-header-icon {
    background: #2463f5;
    color: #ffffff;
}

.admin-add-patient-heading h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
}

.admin-add-patient-heading p {
    margin: 3px 0 0;
    color: #6f7a8d;
    font-size: 10px;
}

.admin-add-patient-logout {
    color: #556174;
    font-size: 11px;
    font-weight: 600;
}

.admin-add-patient-container {
    width: min(94%, 1100px);
    margin: 25px auto 50px;
}

.add-patient-alert {
    margin-bottom: 17px;
    padding: 13px 15px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
}

.add-patient-alert-error {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #b91c1c;
}

.admin-add-patient-banner {
    padding: 22px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: linear-gradient(135deg, #2463f5, #1749de);
    color: #ffffff;
    box-shadow: 0 9px 20px rgba(36, 99, 245, .2);
}

.admin-add-patient-banner h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
}

.admin-add-patient-banner p {
    margin: 5px 0 0;
    font-size: 10px;
    opacity: .85;
}

.admin-add-patient-banner-icon {
    width: 52px;
    height: 52px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .16);
    font-size: 21px;
}

.admin-add-patient-grid {
    margin-top: 20px;
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 18px;
}

.admin-add-patient-card {
    padding: 22px;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-add-patient-card-heading {
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    gap: 11px;
}

.admin-add-patient-card-icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
}

.admin-add-patient-card-icon.blue {
    background: #e2ebff;
    color: #2463f5;
}

.admin-add-patient-card-icon.green {
    background: #ddf8e8;
    color: #00a85b;
}

.admin-add-patient-card-heading h2 {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
}

.admin-add-patient-card-heading p {
    margin: 3px 0 0;
    color: #748093;
    font-size: 9px;
}

.add-patient-field {
    margin-bottom: 15px;
}

.add-patient-field label {
    display: block;
    margin-bottom: 6px;
    color: #405064;
    font-size: 10px;
    font-weight: 600;
}

.add-patient-field .form-control,
.add-patient-field .form-select {
    min-height: 44px;
    border: 1px solid #dbe2ec;
    border-radius: 10px;
    font-size: 11px;
}

.add-patient-field textarea.form-control {
    min-height: 115px;
}

.add-patient-two-column {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}

.add-patient-error {
    min-height: 15px;
    margin-top: 4px;
    display: block;
    color: #dc3545;
    font-size: 8px;
}

.add-patient-password-group {
    position: relative;
}

.add-patient-password-group input {
    padding-right: 42px;
}

.add-patient-password-group button {
    position: absolute;
    top: 50%;
    right: 12px;
    border: none;
    background: transparent;
    color: #7f8a9b;
    transform: translateY(-50%);
}

.admin-add-patient-role-box {
    margin-top: 10px;
    padding: 15px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 11px;
    background: #edf4ff;
}

.admin-add-patient-role-box > div:first-child {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #2463f5;
    color: #ffffff;
}

.admin-add-patient-role-box span,
.admin-add-patient-role-box strong {
    display: block;
}

.admin-add-patient-role-box span {
    color: #748093;
    font-size: 8px;
}

.admin-add-patient-role-box strong {
    margin-top: 3px;
    font-size: 11px;
}

.admin-add-patient-note {
    margin-top: 14px;
    padding: 12px;
    border-radius: 10px;
    background: #f6f9fc;
    color: #6f7a8d;
    font-size: 9px;
    line-height: 1.6;
}

.admin-add-patient-note i {
    margin-right: 5px;
    color: #2463f5;
}

.admin-add-patient-save-bar {
    margin-top: 18px;
    padding: 17px 20px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(35, 57, 82, .1);
}

.admin-add-patient-cancel,
.admin-add-patient-submit {
    min-height: 42px;
    padding: 0 18px;
    border: none;
    border-radius: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 600;
}

.admin-add-patient-cancel {
    background: #e9edf3;
    color: #566174;
}

.admin-add-patient-submit {
    background: #2463f5;
    color: #ffffff;
}

@media (max-width: 800px) {

    .admin-add-patient-grid,
    .add-patient-two-column {
        grid-template-columns: 1fr;
    }

    .admin-add-patient-save-bar {
        flex-direction: column-reverse;
    }

    .admin-add-patient-cancel,
    .admin-add-patient-submit {
        width: 100%;
    }
}

/* =====================================================
GAMBAR PROFIL PESAKIT
===================================================== */

.patient-profile-photo-area {
    margin-bottom: 7px;
    display: flex;
    justify-content: center;
}

.patient-profile-photo-label {
    position: relative;
    display: inline-block;
    border-radius: 50%;
    cursor: pointer;
}

.patient-profile-photo {
    width: 120px;
    height: 120px;
    display: block;
    border: 5px solid #ffffff;
    border-radius: 50%;
    object-fit: cover;
    background: #e6edfa;
    box-shadow:
        0 7px 22px
        rgba(35, 57, 82, .18);
    transition:
        transform .2s ease,
        filter .2s ease;
}


/* INITIAL LETTER */

.patient-profile-photo-label
.profile-large-avatar {
    width: 120px;
    height: 120px;
    margin: 0;
    border: 5px solid #ffffff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(
            135deg,
            #2463f5,
            #1749de
        );
    color: #ffffff;
    font-size: 38px;
    font-weight: 700;
    box-shadow:
        0 7px 22px
        rgba(35, 57, 82, .18);
}


/* CAMERA */

.patient-profile-camera {
    position: absolute;
    right: 2px;
    bottom: 5px;

    width: 37px;
    height: 37px;

    border: 3px solid #ffffff;
    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #2463f5;
    color: #ffffff;

    font-size: 13px;

    box-shadow:
        0 4px 12px
        rgba(0, 0, 0, .18);

    transition: .2s;
}

.patient-profile-photo-label:hover
.patient-profile-photo {
    filter: brightness(.88);
}

.patient-profile-photo-label:hover
.patient-profile-camera {
    background: #1749de;
    transform: scale(1.08);
}


/* HIDE FILE INPUT */

.patient-profile-file-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}


/* CHANGE PHOTO TEXT */

.patient-profile-change-text {
    margin: 4px 0 15px;
    color: #7b8798;
    text-align: center;
    font-size: 9px;
}

.patient-profile-change-text i {
    margin-right: 4px;
    color: #2463f5;
}


/* MOBILE */

@media (max-width: 600px) {

    .patient-profile-photo,
    .patient-profile-photo-label
    .profile-large-avatar {
        width: 105px;
        height: 105px;
    }

    .patient-profile-camera {
        width: 34px;
        height: 34px;
        right: 0;
        bottom: 2px;
    }
}

/* =====================================================
   PATIENT DASHBOARD PROFILE IMAGE
===================================================== */

.patient-user-icon {
    width: 42px;
    height: 42px;

    flex-shrink: 0;

    border-radius: 50%;

    overflow: hidden;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #2463f5;
    color: #ffffff;

    text-decoration: none;

    box-shadow:
        0 3px 10px
        rgba(36, 99, 245, .18);

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}


/* IMAGE */

.patient-dashboard-profile-img {
    width: 100%;
    height: 100%;

    display: block;

    border-radius: 50%;

    object-fit: cover;

    object-position: center;
}


/* DEFAULT USER ICON */

.patient-user-icon > i {
    color: #ffffff;
    font-size: 17px;
}


/* HOVER */

.patient-user-icon:hover {
    transform: scale(1.06);

    box-shadow:
        0 5px 14px
        rgba(36, 99, 245, .25);
}


/* MOBILE */

@media (max-width: 600px) {

    .patient-user-icon {
        width: 40px;
        height: 40px;
    }
}

/* =====================================================
   DOCTOR PROFILE PICTURE
===================================================== */

.doctor-profile-photo-area {
    display: flex;
    justify-content: center;
    margin-bottom: 7px;
}


.doctor-profile-photo-label {
    position: relative;
    display: inline-block;
    border-radius: 50%;
    cursor: pointer;
}


.doctor-profile-photo {
    width: 120px;
    height: 120px;

    display: block;

    border: 5px solid #ffffff;
    border-radius: 50%;

    object-fit: cover;
    object-position: center;

    background: #e8f7ee;

    box-shadow:
        0 7px 22px
        rgba(0, 0, 0, .16);

    transition:
        filter .2s ease,
        transform .2s ease;
}


/* AVATAR HURUF JIKA BELUM ADA GAMBAR */

.doctor-profile-photo-label
.doctor-profile-avatar {

    width: 120px;
    height: 120px;

    margin: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 5px solid #ffffff;
    border-radius: 50%;

    color: #ffffff;

    font-size: 38px;
    font-weight: 700;

    box-shadow:
        0 7px 22px
        rgba(0, 0, 0, .16);
}


/* CAMERA BUTTON */

.doctor-profile-camera {

    position: absolute;

    right: 2px;
    bottom: 5px;

    width: 37px;
    height: 37px;

    border: 3px solid #ffffff;
    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #16a085;
    color: #ffffff;

    font-size: 13px;

    box-shadow:
        0 4px 12px
        rgba(0, 0, 0, .18);

    transition:
        transform .2s ease,
        background .2s ease;
}


/* HOVER */

.doctor-profile-photo-label:hover
.doctor-profile-photo {

    filter: brightness(.88);
}


.doctor-profile-photo-label:hover
.doctor-profile-camera {

    transform: scale(1.08);

    background: #117864;
}


/* HIDE FILE INPUT */

.doctor-profile-file-input {

    position: absolute;

    width: 1px;
    height: 1px;

    opacity: 0;

    pointer-events: none;
}


/* TEXT BAWAH GAMBAR */

.doctor-profile-change-text {

    margin: 4px 0 15px;

    color: #7b8798;

    text-align: center;

    font-size: 9px;
}


.doctor-profile-change-text i {

    margin-right: 4px;

    color: #16a085;
}


/* MOBILE */

@media (max-width: 600px) {

    .doctor-profile-photo,
    .doctor-profile-photo-label
    .doctor-profile-avatar {

        width: 105px;
        height: 105px;
    }


    .doctor-profile-camera {

        width: 34px;
        height: 34px;

        right: 0;
        bottom: 2px;
    }
}

/* =====================================================
   DOCTOR DASHBOARD PROFILE PICTURE
===================================================== */

.doctor-dashboard-profile-picture {

    width: 46px;
    height: 46px;

    flex-shrink: 0;

    border-radius: 50%;

    overflow: hidden;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #16a085;

    color: #ffffff;

    text-decoration: none;

    box-shadow:
        0 4px 12px
        rgba(0, 0, 0, .15);

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}


/* DOCTOR IMAGE */

.doctor-dashboard-profile-img {

    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    object-position: center;

    border-radius: 50%;
}


/* DEFAULT ICON */

.doctor-dashboard-profile-picture > i {

    color: #ffffff;

    font-size: 18px;
}


/* HOVER */

.doctor-dashboard-profile-picture:hover {

    transform: scale(1.06);

    color: #ffffff;

    box-shadow:
        0 5px 15px
        rgba(0, 0, 0, .20);
}


/* MOBILE */

@media (max-width: 600px) {

    .doctor-dashboard-profile-picture {

        width: 42px;
        height: 42px;
    }
}

/* =====================================================
   ADMIN PROFILE
===================================================== */

.admin-profile-page {
    background: #f6f4fb;
    min-height: 100vh;
}


/* HEADER */

.admin-profile-header {
    background: #6f42c1;
    color: white;
}

.admin-profile-header-content {
    max-width: 1200px;
    margin: auto;
    padding: 18px 25px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-profile-heading {
    display: flex;
    align-items: center;
    gap: 14px;
}

.admin-profile-heading h1 {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
}

.admin-profile-heading p {
    margin: 2px 0 0;
    font-size: 12px;
    opacity: .85;
}

.admin-profile-back,
.admin-profile-header-icon {
    width: 42px;
    height: 42px;

    border-radius: 12px;

    display: flex;
    align-items: center;
    justify-content: center;

    color: white;
    text-decoration: none;

    background:
        rgba(255,255,255,.15);
}

.admin-profile-logout {
    color: white;
    text-decoration: none;
    font-size: 13px;
}


/* CONTAINER */

.admin-profile-container {
    max-width: 1150px;
    margin: 35px auto;
    padding: 0 20px;
}

.admin-profile-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 25px;
}


/* LEFT CARD */

.admin-profile-summary {
    background: white;

    border-radius: 18px;

    padding: 30px 25px;

    text-align: center;

    box-shadow:
        0 8px 25px
        rgba(0,0,0,.08);
}


/* PROFILE PICTURE */

.admin-profile-photo-area {
    display: flex;
    justify-content: center;

    margin-bottom: 7px;
}

.admin-profile-photo-label {
    position: relative;

    display: inline-block;

    border-radius: 50%;

    cursor: pointer;
}

.admin-profile-photo,
.admin-profile-avatar {
    width: 120px;
    height: 120px;

    border-radius: 50%;

    border: 5px solid white;

    box-shadow:
        0 7px 22px
        rgba(0,0,0,.16);
}

.admin-profile-photo {
    display: block;

    object-fit: cover;
    object-position: center;
}

.admin-profile-avatar {
    display: flex;
    align-items: center;
    justify-content: center;

    background:
        linear-gradient(
            135deg,
            #7b4fd1,
            #5632a5
        );

    color: white;

    font-size: 40px;
    font-weight: 700;
}


/* CAMERA */

.admin-profile-camera {
    position: absolute;

    right: 2px;
    bottom: 5px;

    width: 37px;
    height: 37px;

    border: 3px solid white;
    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #6f42c1;
    color: white;

    font-size: 13px;

    box-shadow:
        0 4px 12px
        rgba(0,0,0,.18);
}

.admin-profile-photo-label:hover
.admin-profile-photo {
    filter: brightness(.88);
}

.admin-profile-photo-label:hover
.admin-profile-camera {
    transform: scale(1.08);
}

.admin-profile-file-input {
    position: absolute;

    width: 1px;
    height: 1px;

    opacity: 0;

    pointer-events: none;
}

.admin-profile-change-text {
    margin: 5px 0 15px;

    color: #888;

    font-size: 10px;
}

.admin-profile-change-text i {
    color: #6f42c1;
}

.admin-profile-summary h2 {
    margin: 5px 0;

    font-size: 19px;
    font-weight: 700;
}

.admin-profile-summary > p {
    color: #777;
    font-size: 12px;
}

.admin-profile-role {
    display: inline-block;

    padding: 6px 12px;

    margin-bottom: 20px;

    border-radius: 20px;

    background: #eee7fa;
    color: #6f42c1;

    font-size: 11px;
    font-weight: 700;
}

.admin-profile-summary-row {
    padding: 13px 0;

    border-top: 1px solid #eee;

    display: flex;
    justify-content: space-between;

    font-size: 11px;

    text-align: left;
}

.admin-profile-summary-row span {
    color: #888;
}


/* RIGHT CARD */

.admin-profile-form-card {
    background: white;

    border-radius: 18px;

    padding: 30px;

    box-shadow:
        0 8px 25px
        rgba(0,0,0,.08);
}

.admin-profile-form-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;

    margin-bottom: 25px;
}

.admin-profile-form-heading h2 {
    margin: 0;

    font-size: 19px;
    font-weight: 700;
}

.admin-profile-form-heading p {
    margin: 5px 0 0;

    color: #888;

    font-size: 12px;
}

.admin-profile-form-icon {
    width: 45px;
    height: 45px;

    border-radius: 12px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #eee7fa;
    color: #6f42c1;
}

.admin-profile-form-grid {
    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 18px;
}

.admin-profile-field label {
    display: block;

    margin-bottom: 7px;

    font-size: 12px;
    font-weight: 600;
}

.admin-profile-field small {
    color: #999;
    font-size: 10px;
}


/* PASSWORD */

.admin-password-section {
    margin-top: 30px;

    padding-top: 25px;

    border-top: 1px solid #eee;
}

.admin-password-heading {
    display: flex;
    align-items: center;

    gap: 12px;

    margin-bottom: 20px;
}

.admin-password-heading h3 {
    margin: 0;

    font-size: 16px;
    font-weight: 700;
}

.admin-password-heading p {
    margin: 3px 0 0;

    color: #888;

    font-size: 11px;
}

.admin-password-icon {
    width: 40px;
    height: 40px;

    border-radius: 10px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #eee7fa;
    color: #6f42c1;
}

.admin-password-input {
    position: relative;
}

.admin-password-toggle {
    position: absolute;

    right: 10px;
    top: 50%;

    transform:
        translateY(-50%);

    border: 0;
    background: transparent;

    color: #777;
}


/* SAVE */

.admin-profile-save {
    width: 100%;

    margin-top: 28px;

    padding: 12px;

    border: none;
    border-radius: 10px;

    background: #6f42c1;
    color: white;

    font-size: 13px;
    font-weight: 600;
}

.admin-profile-save:hover {
    background: #59359d;
}


/* ALERT */

.admin-profile-alert {
    margin-bottom: 20px;

    padding: 13px 15px;

    border-radius: 10px;

    font-size: 12px;
}

.admin-profile-alert-error {
    background: #fdecec;
    color: #b42318;
}

.admin-profile-alert-success {
    background: #e9f8ef;
    color: #147a3d;
}


/* MOBILE */

@media (max-width: 800px) {

    .admin-profile-layout {
        grid-template-columns: 1fr;
    }

    .admin-profile-form-grid {
        grid-template-columns: 1fr;
    }

    .admin-profile-header-content {
        padding: 15px;
    }

    .admin-profile-heading p {
        display: none;
    }

    .admin-profile-logout {
        font-size: 0;
    }

    .admin-profile-logout i {
        font-size: 17px;
    }
}



/* =========================================
BUTANG PROFIL DI BAHAGIAN WELCOME ADMIN
========================================= */

.admin-welcome-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}


.admin-profile-button {
    min-height: 38px;

    padding: 0 15px;

    border-radius: 20px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    background:
        linear-gradient(
            135deg,
            #6f42c1,
            #5630a5
        );

    color: #ffffff;

    text-decoration: none;

    font-size: 10px;
    font-weight: 600;

    box-shadow:
        0 5px 13px
        rgba(111, 66, 193, .18);

    transition: .2s;
}


.admin-profile-button:hover {
    color: #ffffff;

    transform:
        translateY(-2px);

    box-shadow:
        0 7px 17px
        rgba(111, 66, 193, .25);
}


/* ADMIN PROFILE IMAGE IN HEADER */

.admin-dashboard-avatar {
    overflow: hidden;
}


.admin-dashboard-profile-img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    object-position: center;

    border-radius: 50%;
}


@media (max-width: 650px) {

    .admin-welcome-section {
        align-items: flex-start;
        flex-direction: column;

        gap: 12px;
    }


    .admin-welcome-actions {
        width: 100%;

        justify-content: space-between;
    }
}

/* =====================================================
   MANAGE ADMIN PROFILE IMAGE
===================================================== */

.manage-admin-avatar {
    overflow: hidden;
    flex-shrink: 0;
}

.manage-admin-avatar-image {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
    object-position: center;

    border-radius: 50%;
}

/* =====================================
HALAMAN EDIT DOKTOR
===================================== */

body.edit-doctor-page {
    background: #f4f7fb;
    min-height: 100vh;
}


/* =====================================
   HEADER
===================================== */

.edit-doctor-header {
    background: #ffffff;
    padding: 16px 0;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.edit-doctor-header-content {
    max-width: 1200px;
    margin: auto;
    padding: 0 20px;

    display: flex;
    justify-content: space-between;
    align-items: center;
}

.edit-header-left {
    display: flex;
    align-items: center;
    gap: 15px;
}


/* =====================================
   BACK BUTTON
===================================== */

.edit-back {
    width: 45px;
    height: 45px;

    border-radius: 50%;

    background: #eef4ff;
    color: #2463eb;

    display: flex;
    align-items: center;
    justify-content: center;

    text-decoration: none;
    font-size: 18px;
}

.edit-back:hover {
    background: #dce9ff;
    color: #2463eb;
}


/* =====================================
   DOCTOR AVATAR
===================================== */

.edit-avatar {
    width: 60px;
    height: 60px;

    border-radius: 50%;

    background: linear-gradient(
        135deg,
        #1976d2,
        #00a878
    );

    color: #ffffff;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 25px;
    font-weight: 700;
}


/* =====================================
   HEADER TEXT
===================================== */

.edit-doctor-header h2 {
    margin: 0;

    font-size: 25px;
    color: #172b4d;
}

.edit-doctor-header p {
    margin: 3px 0 0;

    color: #718096;
}


/* =====================================
   LOGOUT BUTTON
===================================== */

.logout-btn {
    background: #ef4444;
    color: #ffffff;

    padding: 10px 22px;

    border-radius: 9px;

    text-decoration: none;
    font-weight: 600;
}

.logout-btn:hover {
    background: #dc2626;
    color: #ffffff;
}


/* =====================================
   CARD
===================================== */

.edit-doctor-page .card {
    border-radius: 16px;
    overflow: hidden;
}

.edit-doctor-page .card-header {
    padding: 16px 20px;
}

.edit-doctor-page .card-header h5 {
    margin: 0;
    font-weight: 600;
}


/* =====================================
   FORM LABEL
===================================== */

.edit-doctor-page label {
    font-weight: 600;

    margin-bottom: 7px;

    color: #243b53;
}


/* =====================================
   INPUT & SELECT
===================================== */

.edit-doctor-page .form-control,
.edit-doctor-page .form-select {
    min-height: 45px;

    border-radius: 9px;

    border: 1px solid #d7dee8;
}

.edit-doctor-page .form-control:focus,
.edit-doctor-page .form-select:focus {
    border-color: #4285f4;

    box-shadow:
        0 0 0 3px
        rgba(66, 133, 244, 0.12);
}


/* =====================================
   ROOM NUMBER DROPDOWN
===================================== */

.room-select {
    cursor: pointer;
}

.room-select option {
    padding: 8px;
}


/* =====================================
   SHIFT DROPDOWN
===================================== */

.shift-select {
    cursor: pointer;
}


/* =====================================
   SAVE BUTTON
===================================== */

.save-doctor-btn {
    min-height: 48px;

    border-radius: 9px;

    font-weight: 600;
}


/* =====================================
   ALERT
===================================== */

.edit-doctor-page .alert {
    border-radius: 10px;
}


/* =====================================
   MOBILE
===================================== */

@media (max-width: 768px) {

    .edit-doctor-header-content {
        padding: 0 15px;
    }

    .edit-doctor-header h2 {
        font-size: 20px;
    }

    .edit-avatar {
        width: 50px;
        height: 50px;

        font-size: 21px;
    }

    .logout-btn {
        padding: 8px 15px;
        font-size: 14px;
    }
}

/* =====================================================
BAHAGIAN EDIT MAKLUMAT ADMIN
===================================================== */

.manage-admin-edit-card {
    max-width: 950px;
    margin: 25px auto 35px;
    padding: 30px;
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}


/* HEADER */

.manage-admin-edit-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 1px solid #e5e7eb;
}

.manage-admin-edit-heading h2 {
    margin: 0;
    font-size: 26px;
    font-weight: 700;
    color: #172b4d;
}

.manage-admin-edit-heading h2 i {
    color: #2563eb;
    margin-right: 8px;
}

.manage-admin-edit-heading p {
    margin: 6px 0 0;
    color: #718096;
    font-size: 14px;
}


/* CLOSE BUTTON */

.manage-admin-edit-close {
    width: 40px;
    height: 40px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #f1f5f9;
    color: #64748b;

    text-decoration: none;

    transition: 0.2s;
}

.manage-admin-edit-close:hover {
    background: #ef4444;
    color: #ffffff;
}


/* FORM GRID */

.manage-admin-edit-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}


/* FORM FIELD */

.manage-admin-edit-field {
    width: 100%;
}

.manage-admin-edit-field label {
    display: block;

    margin-bottom: 8px;

    font-size: 14px;
    font-weight: 600;

    color: #243b53;
}


/* INPUT & SELECT */

.manage-admin-edit-field .form-control,
.manage-admin-edit-field .form-select {
    width: 100%;
    height: 48px;

    padding: 10px 14px;

    border: 1px solid #d7dee8;
    border-radius: 10px;

    background: #ffffff;

    color: #243b53;

    font-size: 14px;

    box-shadow: none;

    transition: 0.2s;
}


/* FOCUS */

.manage-admin-edit-field .form-control:focus,
.manage-admin-edit-field .form-select:focus {
    border-color: #2563eb;

    box-shadow:
        0 0 0 3px rgba(37, 99, 235, 0.12);

    outline: none;
}


/* READ ONLY */

.manage-admin-edit-field .form-control[readonly] {
    background: #f5f7fa;
    color: #667085;
}


/* SELECT */

.manage-admin-edit-field .form-select {
    cursor: pointer;
}


/* PASSWORD */

.manage-admin-password-wrapper {
    position: relative;
}

.manage-admin-password-wrapper .form-control {
    padding-right: 48px;
}

.manage-admin-password-wrapper button {
    position: absolute;

    right: 8px;
    top: 50%;

    transform: translateY(-50%);

    width: 35px;
    height: 35px;

    border: none;

    background: transparent;

    color: #64748b;

    cursor: pointer;
}

.manage-admin-password-wrapper button:hover {
    color: #2563eb;
}


/* HELP TEXT */

.manage-admin-edit-field small {
    display: block;

    margin-top: 6px;

    font-size: 12px;

    color: #718096;
}


/* BUTTON AREA */

.manage-admin-edit-actions {
    display: flex;

    justify-content: flex-end;

    gap: 12px;

    margin-top: 28px;

    padding-top: 22px;

    border-top: 1px solid #e5e7eb;
}


/* CANCEL */

.manage-admin-cancel-button {
    min-width: 120px;
    height: 46px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    padding: 0 20px;

    border-radius: 9px;

    background: #6b7280;

    color: #ffffff;

    text-decoration: none;

    font-size: 14px;
    font-weight: 600;

    transition: 0.2s;
}

.manage-admin-cancel-button:hover {
    background: #4b5563;
    color: #ffffff;
}


/* UPDATE */

.manage-admin-update-button {
    min-width: 150px;
    height: 46px;

    padding: 0 20px;

    border: none;

    border-radius: 9px;

    background: #2563eb;

    color: #ffffff;

    font-size: 14px;
    font-weight: 600;

    cursor: pointer;

    transition: 0.2s;
}

.manage-admin-update-button:hover {
    background: #1d4ed8;

    transform: translateY(-1px);

    box-shadow:
        0 5px 12px rgba(37, 99, 235, 0.25);
}


/* MOBILE */

@media (max-width: 768px) {

    .manage-admin-edit-card {
        margin: 20px 15px;
        padding: 20px;
    }

    .manage-admin-edit-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }

    .manage-admin-edit-actions {
        flex-direction: column;
    }

    .manage-admin-update-button,
    .manage-admin-cancel-button {
        width: 100%;
    }

}

.clinic-image {
    height: 360px;
    overflow: hidden;
    border-radius: 10px;
    position: relative;
}

.clinic-image img {
    width: 124% !important;
    max-width: none !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block;
    position: relative;
    left: -12%;
    border-radius: 0 !important;
}

/*admin management css*/

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Arial, Helvetica, sans-serif;
    background: #f0f8ff;
    color: #1e293b;
}


/* =========================
   HEADER
========================= */

.topbar {
    background: white;
    padding: 22px 40px;

    display: flex;
    justify-content: space-between;
    align-items: center;

    border-bottom: 1px solid #e2e8f0;
}

.topbar h1 {
    font-size: 26px;
    margin-bottom: 6px;
}

.topbar p {
    color: #64748b;
    font-size: 14px;
}

.back-btn {
    background: #2563eb;
    color: white;

    text-decoration: none;

    padding: 11px 18px;

    border-radius: 9px;

    font-size: 14px;
    font-weight: bold;
}


/* =========================
   MAIN
========================= */

.container {
    width: 94%;
    max-width: 1450px;

    margin: 30px auto;
}


/* =========================
   SUCCESS
========================= */

.success {
    background: #dcfce7;
    color: #166534;

    border: 1px solid #86efac;

    padding: 15px 20px;

    border-radius: 10px;

    margin-bottom: 20px;

    font-weight: bold;
}


/* =========================
   CARD
========================= */

.card {
    background: white;

    border-radius: 16px;

    box-shadow:
        0 4px 20px
        rgba(0, 0, 0, 0.06);

    overflow: hidden;
}

.card-title {
    padding: 25px;

    border-bottom: 1px solid #e2e8f0;
}

.card-title h2 {
    font-size: 20px;
    margin-bottom: 5px;
}

.card-title p {
    color: #64748b;
    font-size: 13px;
}


/* =========================
   TABLE
========================= */

.table-container {
    width: 100%;
    overflow-x: auto;
}

table {
    width: 100%;
    border-collapse: collapse;
}

thead {
    background: #f8fafc;
}

th {
    padding: 15px;

    text-align: left;

    font-size: 12px;

    color: #475569;

    white-space: nowrap;
}

td {
    padding: 16px 15px;

    border-top: 1px solid #edf2f7;

    font-size: 13px;

    vertical-align: middle;
}

td strong {
    display: block;

    color: #1e293b;
}

td small {
    display: block;

    color: #64748b;

    margin-top: 4px;

    font-size: 11px;
}


/* =========================
   QUEUE
========================= */

.queue {
    display: inline-block;

    background: #e0f2fe;

    color: #0369a1;

    padding: 7px 12px;

    border-radius: 8px;

    font-weight: bold;
}

.empty {
    color: #94a3b8;
}


/* =========================
   STATUS
========================= */

.status {
    display: inline-block;

    padding: 7px 12px;

    border-radius: 20px;

    font-size: 11px;

    font-weight: bold;
}

.status.pending {
    background: #fef3c7;
    color: #92400e;
}

.status.approved {
    background: #dcfce7;
    color: #166534;
}

.status.completed {
    background: #dbeafe;
    color: #1d4ed8;
}

.status.cancelled {
    background: #fee2e2;
    color: #b91c1c;
}


/* =========================
   BUTTONS
========================= */

.actions {
    display: flex;

    gap: 7px;

    flex-wrap: wrap;
}

.actions form {
    margin: 0;
}

.btn {
    border: none;

    padding: 8px 13px;

    border-radius: 8px;

    cursor: pointer;

    font-size: 11px;

    font-weight: bold;
}

.approve {
    background: #16a34a;
    color: white;
}

.approve:hover {
    background: #15803d;
}

.cancel {
    background: #fee2e2;
    color: #dc2626;
}

.cancel:hover {
    background: #fecaca;
}

.complete {
    background: #2563eb;
    color: white;
}

.complete:hover {
    background: #1d4ed8;
}

.none {
    color: #94a3b8;
}


/* =========================
   NO DATA
========================= */

.no-data {
    text-align: center;

    padding: 60px 20px;

    color: #64748b;
}


/* =========================
   MOBILE
========================= */

@media (max-width: 768px) {

    .topbar {
        padding: 18px;

        flex-direction: column;

        align-items: flex-start;

        gap: 15px;
    }

    .container {
        width: 96%;

        margin-top: 20px;
    }

    .card-title {
        padding: 18px;
    }

    th,
    td {
        padding: 12px 10px;
    }

}