* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;

    font-family:
        Arial,
        sans-serif;
}


html {
    scroll-behavior: smooth;
}


body {
    background: #fffafb;
    color: #281d29;
}


a {
    text-decoration: none;
}


/* ==================================
   HOMEPAGE
================================== */

.home-topbar {
    background: #a95e82;

    color: white;

    text-align: center;

    padding: 18px;

    font-size: 20px;

    font-weight: bold;

    letter-spacing: 7px;
}


.home-nav {

    max-width: 1150px;

    margin: 25px auto;

    padding: 0 25px;

    display: flex;

    justify-content: space-between;

    align-items: center;
}


.nav-links {

    background: #ffcce3;

    border-radius: 35px;

    padding: 15px 35px;

    display: flex;

    gap: 45px;
}


.nav-links a {
    color: #23151d;
}


.nav-auth {
    display: flex;

    gap: 12px;
}


.small-button {
    padding: 10px 22px;

    border-radius: 20px;

    font-weight: bold;
}


.dark-button {
    background: #bd3978;

    color: white;
}


.hero {

    max-width: 1150px;

    margin: auto;

    padding: 50px 35px 80px;

    display: flex;

    align-items: center;

    justify-content: space-between;
}


.hero-text {
    width: 55%;
}


.hero h1 {

    font-size: 52px;

    line-height: 1.2;

    color: #b24c7f;

    margin-bottom: 18px;
}


.hero p {

    font-size: 19px;

    line-height: 1.5;

    max-width: 520px;

    margin-bottom: 35px;
}


.get-started {

    display: inline-block;

    padding: 14px 35px;

    border-radius: 25px;

    background: #f9bcd8;

    color: #2d1822;

    font-weight: bold;

    transition: .2s;
}


.get-started:hover {
    transform: translateY(-2px);

    background: #ef9ec3;
}


.hero-image {

    width: 300px;
    height: 300px;

    border-radius: 50%;

    background:
        linear-gradient(
            135deg,
            #f9c7df,
            #f1a3ca
        );

    display: flex;

    align-items: center;

    justify-content: center;

    position: relative;
}

.hero-logo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.section {

    padding: 75px 30px;

    text-align: center;
}


.section h2 {

    color: #a84676;

    font-size: 32px;

    margin-bottom: 15px;
}


.section-description {

    max-width: 700px;

    margin: auto;

    line-height: 1.7;
}


.feature-section {
    background: #fff1f6;
}


.feature-grid {

    max-width: 1050px;

    margin: 40px auto 0;

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 20px;
}


.feature-card {

    background: white;

    padding: 30px 20px;

    border-radius: 20px;

    box-shadow:
        0 5px 15px
        rgba(130, 52, 88, .08);
}


.feature-card span {
    font-size: 42px;
}


.feature-card h3 {

    margin: 15px 0 10px;

    color: #a94072;
}


.feature-card p {
    line-height: 1.5;

    font-size: 14px;
}

footer {

    background: #a95e82;

    color: white;

    text-align: center;

    padding: 18px;

    font-size: 13px;
}


/* ==================================
   AUTH
================================== */

.auth-body {
    background: white;
}


.auth-topbar {

    background: #a95e82;

    color: white;

    text-align: center;

    padding: 15px;

    font-weight: bold;

    letter-spacing: 4px;

    font-size: 19px;
}


.auth-container {

    width: 430px;

    max-width: 90%;

    margin: 28px auto;
}


.auth-subtitle {

    text-align: center;

    margin-bottom: 12px;

    font-size: 17px;

    color: #4d4549;
}


.auth-container label {

    display: block;

    margin-bottom: 8px;

    font-weight: bold;

    font-size: 16px;
}


.auth-container input {

    width: 100%;

    padding: 17px;

    background: #ffcbe2;

    border: 2px solid transparent;

    border-radius: 12px;

    margin-bottom: 20px;

    outline: none;

    font-size: 15px;
}


.auth-container input:focus {
    border-color: #bb4e80;
}


.password-container {
    position: relative;
}


.password-container input {
    padding-right: 65px;
}


.show-password {

    position: absolute;

    right: 12px;

    top: 17px;

    border: none;

    background: none;

    color: #9b2e61;

    cursor: pointer;
}


.forgot-link {

    display: block;

    color: #2f2328;

    text-align: right;

    margin-top: -10px;

    margin-bottom: 28px;
}


.auth-button {

    display: block;

    width: 195px;

    margin: 10px auto 20px;

    padding: 16px;

    border: none;

    border-radius: 10px;

    background: #bd3978;

    color: white;

    font-size: 19px;

    cursor: pointer;
}


.auth-bottom {
    text-align: center;
}


.auth-bottom a {
    color: #e33d69;
}


.form-message {

    text-align: center;

    margin-top: 18px;
}


.error-message {
    color: #d7394b;
}


.success-message {
    color: #318653;
}


/* ==================================
   DASHBOARD
================================== */

.dashboard-layout {
    min-height: 100vh;

    display: flex;
}


.dashboard-sidebar {

    width: 220px;

    background:
        linear-gradient(
            #91406c,
            #b15b84
        );

    color: white;

    padding: 30px 18px;

    position: fixed;

    top: 0;
    left: 0;
    bottom: 0;

    display: flex;

    flex-direction: column;

    justify-content: space-between;
}


.dashboard-logo {

    padding: 5px 10px 30px;

    border-bottom:
        1px solid
        rgba(255,255,255,.2);
}


.dashboard-logo h2 {

    letter-spacing: 4px;

    margin-bottom: 5px;
}


.dashboard-logo small {
    font-size: 10px;

    line-height: 1.4;
}


.sidebar-menu {

    margin-top: 25px;

    display: flex;

    flex-direction: column;

    gap: 10px;
}


.sidebar-menu a {

    color: white;

    padding: 13px 14px;

    border-radius: 9px;

    font-size: 14px;

    transition: .2s;
}


.sidebar-menu a:hover,
.sidebar-menu .active {

    background:
        rgba(255,255,255,.22);
}


.sidebar-logout {

    border: none;

    background:
        rgba(255,255,255,.15);

    color: white;

    padding: 13px;

    border-radius: 10px;

    cursor: pointer;
}


.dashboard-main {

    margin-left: 220px;

    width:
        calc(100% - 220px);

    padding: 30px;

    background: #fffafb;

    min-height: 100vh;
}


.dashboard-header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-bottom: 30px;
}


.dashboard-header h2 {
    margin-bottom: 5px;
}


.dashboard-header p {

    font-size: 13px;

    color: #756875;
}


.user-mini-profile {

    display: flex;

    align-items: center;

    gap: 15px;
}


.avatar {

    width: 42px;
    height: 42px;

    border-radius: 50%;

    background: #f7bdd5;

    color: #a63569;

    display: flex;

    align-items: center;

    justify-content: center;

    font-weight: bold;
}


.hidden {
    display: none !important;
}


/* NEW USER */

.new-user-banner {

    min-height: 270px;

    background:
        linear-gradient(
            120deg,
            #fff,
            #fde8f1
        );

    border:
        1px solid #f3d5e2;

    border-radius: 20px;

    padding: 45px;

    display: flex;

    justify-content: space-between;

    align-items: center;

    box-shadow:
        0 7px 20px
        rgba(129, 69, 95, .07);
}


.new-user-banner h1 {

    font-size: 32px;

    margin: 10px 0;

    color: #a73f72;
}


.new-user-banner p {

    max-width: 520px;

    line-height: 1.5;

    margin-bottom: 25px;

    color: #665761;
}


.big-heart {
    font-size: 42px;
}


.welcome-decoration {
    font-size: 70px;
}


.dashboard-main-button {

    background: #d9568b;

    color: white;

    padding: 13px 25px;

    border-radius: 25px;

    display: inline-block;
}


.dashboard-section-title {

    margin:
        28px 0 15px;
}


.getting-started-grid {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 15px;
}


.start-card {

    background: white;

    color: #2a2025;

    border: 1px solid #f2d6e1;

    border-radius: 17px;

    padding: 25px;

    transition: .2s;
}


.start-card:hover {

    transform: translateY(-4px);

    box-shadow:
        0 8px 20px
        rgba(145, 62, 97, .10);
}


.start-icon {
    font-size: 35px;
}


.start-card h3 {
    margin: 15px 0 8px;
}


.start-card p {

    min-height: 45px;

    color: #756871;

    font-size: 13px;

    line-height: 1.4;
}


.start-card span {

    display: block;

    color: #bc3f78;

    margin-top: 16px;
}


.gentle-message {

    margin-top: 25px;

    background: #fff1f6;

    border-radius: 18px;

    padding: 24px;

    display: flex;

    gap: 18px;

    align-items: center;
}


.gentle-message span {
    font-size: 38px;
}


/* EXISTING USER */

.dashboard-top-grid {

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 18px;
}


.summary-card {

    background: white;

    border:
        1px solid #f2d2df;

    border-radius: 16px;

    padding: 25px;

    display: flex;

    gap: 20px;

    align-items: center;
}


.summary-icon {

    width: 65px;
    height: 65px;

    border-radius: 50%;

    background: #ffe0eb;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 30px;
}


.summary-card small {

    color: #d5487e;

    font-size: 10px;
}


.summary-card h3 {

    margin: 8px 0;

    font-size: 18px;
}


.summary-card p {

    color: #756871;

    font-size: 12px;
}


.quick-grid {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 14px;
}


.quick-card {

    background: white;

    border:
        1px solid #f0d6e0;

    border-radius: 14px;

    padding: 18px;

    display: grid;

    grid-template-columns:
        42px 1fr 20px;

    gap: 8px;

    align-items: center;

    color: #32272d;
}


.quick-card > span {
    font-size: 26px;
}


.quick-card strong {
    font-size: 13px;
}


.quick-card p {

    color: #756a70;

    font-size: 10px;

    margin-top: 4px;
}


.quick-card b {
    color: #e14983;
}


.dashboard-bottom-grid {

    margin-top: 20px;

    display: grid;

    grid-template-columns:
        1.3fr 1fr 1fr;

    gap: 18px;
}


.dashboard-panel {

    background: white;

    border:
        1px solid #f0d5df;

    border-radius: 15px;

    padding: 20px;

    min-height: 230px;
}


.dashboard-panel h3 {
    font-size: 14px;
}


.panel-header {

    display: flex;

    justify-content: space-between;

    margin-bottom: 15px;
}


.panel-header a {

    color: #da417b;

    font-size: 11px;
}


.simple-mood-trend {

    height: 165px;

    display: flex;

    justify-content: space-around;

    align-items: flex-end;
}


.simple-mood-trend div {

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 10px;
}


.simple-mood-trend strong {

    width: 35px;
    height: 80px;

    background: #fce1eb;

    border-radius: 10px;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 24px;
}


.simple-mood-trend span {

    font-size: 10px;

    color: #756870;
}


.empty-text {

    color: #87767f;

    margin-top: 35px;

    text-align: center;

    font-size: 13px;
}


.recent-journal-card {

    background: #fff0f5;

    border-radius: 12px;

    padding: 17px;
}


.recent-journal-card small {

    color: #d23e76;
}


.recent-journal-card p {

    font-size: 12px;

    line-height: 1.5;

    margin: 12px 0;
}


.recent-journal-card a {

    color: #ca3f74;

    font-size: 12px;
}


.recommend-small {

    display: flex;

    flex-direction: column;

    gap: 10px;
}


.recommend-small div {

    background: #fff3f7;

    padding: 12px;

    border-radius: 10px;

    font-size: 12px;

    display: flex;

    gap: 10px;

    align-items: center;
}


/* ==================================
   RESPONSIVE
================================== */

@media(max-width:1000px) {

    .feature-grid,
    .getting-started-grid,
    .quick-grid {

        grid-template-columns:
            repeat(2, 1fr);
    }


    .dashboard-bottom-grid {

        grid-template-columns: 1fr;
    }


    .welcome-decoration {
        display: none;
    }

}


@media(max-width:700px) {

    .home-nav {

        flex-direction: column;

        gap: 15px;
    }


    .nav-links {
        gap: 15px;

        padding: 14px 20px;
    }


    .hero {

        flex-direction: column;

        gap: 40px;
    }


    .hero-text {

        width: 100%;

        text-align: center;
    }


    .hero h1 {
        font-size: 37px;
    }


    .feature-grid {

        grid-template-columns: 1fr;
    }


    .dashboard-sidebar {
        display: none;
    }


    .dashboard-main {

        margin-left: 0;

        width: 100%;

        padding: 20px;
    }


    .dashboard-top-grid,
    .quick-grid,
    .getting-started-grid {

        grid-template-columns: 1fr;
    }


    .dashboard-header {

        align-items: flex-start;
    }


    .new-user-banner {
        padding: 25px;
    }

}

/* ==================================
   MOOD POPUP
================================== */

.mood-popup-overlay {

    position: fixed;

    inset: 0;

    background:
        rgba(45, 25, 35, 0.45);

    backdrop-filter: blur(4px);

    display: none;

    align-items: center;
    justify-content: center;

    z-index: 1000;
}


.mood-popup {

    width: 650px;

    max-width: 90%;

    max-height: 90vh;

    overflow-y: auto;

    background: white;

    padding: 35px;

    border-radius: 22px;

    position: relative;

    text-align: center;

    box-shadow:
        0 15px 40px
        rgba(87, 40, 62, 0.18);
}


.mood-popup h2 {

    color: #a94072;

    margin-bottom: 7px;
}


.mood-popup > p {

    color: #776771;

    margin-bottom: 25px;
}


.popup-close {

    position: absolute;

    right: 20px;
    top: 15px;

    border: none;

    background: none;

    font-size: 28px;

    cursor: pointer;

    color: #9c476e;
}


/* MOOD OPTIONS */

.mood-grid {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 13px;
}


.mood-grid button {

    border: 2px solid transparent;

    background: #fff3f7;

    padding: 18px 8px;

    border-radius: 16px;

    font-size: 35px;

    cursor: pointer;

    transition: .2s;
}


.mood-grid button:hover {

    transform: translateY(-3px);

    border-color: #e59cbb;
}


.mood-grid button span {

    display: block;

    font-size: 12px;

    margin-top: 8px;
}


/* SPECIFIC FEELING */

#specificFeelingSection {

    margin-top: 25px;

    padding-top: 20px;

    border-top:
        1px solid #f1dbe4;
}


#specificFeelingSection h3 {

    font-size: 15px;

    margin-bottom: 15px;
}


#specificFeelingOptions {

    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 8px;
}


#specificFeelingOptions button {

    border: 1px solid #efbfd3;

    background: white;

    color: #9f3c69;

    padding: 8px 14px;

    border-radius: 20px;

    cursor: pointer;
}


#specificFeelingOptions button.selected {

    background: #d9578a;

    color: white;

    border-color: #d9578a;
}


/* NOTE */

#moodNote {

    width: 100%;

    height: 80px;

    margin-top: 22px;

    padding: 12px;

    border:

        1px solid #efd4df;

    border-radius: 12px;

    resize: none;

    outline: none;
}


.save-mood-button {

    margin-top: 18px;

    border: none;

    background: #cf4e82;

    color: white;

    padding: 13px 35px;

    border-radius: 25px;

    cursor: pointer;

    font-weight: bold;
}


.mood-checkin-card {

    cursor: pointer;

    transition: .2s;
}


.mood-checkin-card:hover {

    transform: translateY(-3px);

    box-shadow:
        0 8px 20px
        rgba(145, 62, 97, .10);
}

/* ==================================
   PASSWORD CONTAINER
================================== */

.password-container {

    position: relative;

    display: flex;

    align-items: center;

}


.password-container input {

    width: 100%;

    padding-right: 70px;

}


.show-password {

    position: absolute;

    right: 12px;

    border: none;

    background: transparent;

    cursor: pointer;

    font-size: 13px;

    color: #98677e;

    font-weight: 600;

}



/* ==================================
   PASSWORD STRENGTH
================================== */

.password-strength {

    margin-top: 8px;

    margin-bottom: 10px;

}


.strength-bar {

    width: 100%;

    height: 7px;

    background-color: #eedde5;

    border-radius: 10px;

    overflow: hidden;

}


#strengthFill {

    width: 0%;

    height: 100%;

    border-radius: 10px;

    transition:
        width 0.3s ease,
        background-color 0.3s ease;

}



/* WEAK */

#strengthFill.weak {

    background-color: #e56572;

}


.weak-text {

    color: #d94d5b;

}



/* MEDIUM */

#strengthFill.medium {

    background-color: #e5ac56;

}


.medium-text {

    color: #bd812d;

}



/* STRONG */

#strengthFill.strong {

    background-color: #64b583;

}


.strong-text {

    color: #418f62;

}



#strengthText {

    margin-top: 7px;

    margin-bottom: 0;

    font-size: 13px;

    font-weight: 600;

}



/* ==================================
   PASSWORD REQUIREMENTS
================================== */

.password-rules {

    margin-top: 10px;

    margin-bottom: 20px;

    padding: 12px 15px;

    border-radius: 12px;

    background-color: #fff6f9;

}


.password-rules p {

    margin: 5px 0;

    font-size: 12px;

    transition: 0.2s;

}


.rule-valid {

    color: #499369;

}


.rule-invalid {

    color: #927e88;

}

/* ==================================
   AUTH MODAL
================================== */

.auth-modal-overlay {

    display: none;

    position: fixed;

    inset: 0;

    background: rgba(50, 30, 40, 0.45);

    backdrop-filter: blur(6px);

    justify-content: center;

    align-items: center;

    z-index: 9999;

    padding: 20px;

}


.auth-modal {

    position: relative;

    width: 100%;

    max-width: 430px;

    max-height: 90vh;

    overflow-y: auto;

    background: white;

    border-radius: 24px;

    padding: 35px;

    box-shadow:
        0 20px 50px
        rgba(80, 40, 60, 0.25);

}


.auth-modal h2 {

    margin-bottom: 8px;

    color: #7d4f68;

}


.auth-modal > div > p {

    color: #8f7c86;

    margin-bottom: 25px;

}


.auth-close {

    position: absolute;

    top: 15px;

    right: 18px;

    border: none;

    background: transparent;

    font-size: 28px;

    cursor: pointer;

    color: #9b7b89;

}


.auth-modal label {

    display: block;

    margin-top: 15px;

    margin-bottom: 7px;

    font-size: 14px;

    font-weight: 600;

    color: #6f5964;

}


.auth-modal input {

    width: 100%;

    padding: 12px 14px;

    border: 1px solid #eadbe2;

    border-radius: 12px;

    outline: none;

    box-sizing: border-box;

}


.auth-modal input:focus {

    border-color: #c391aa;

}


.auth-button {

    width: 100%;

    margin-top: 20px;

    padding: 13px;

    border: none;

    border-radius: 12px;

    background: #b77f99;

    color: white;

    font-size: 15px;

    font-weight: 600;

    cursor: pointer;

}


.auth-button:hover {

    background: #a86f8a;

}


.auth-switch {

    text-align: center;

    margin-top: 20px;

    font-size: 14px;

}


.auth-link-button {

    border: none;

    background: transparent;

    color: #a45f80;

    font-weight: 600;

    cursor: pointer;

}


.hidden {

    display: none;

}

/* ==================================
   MOOD POPUP
================================== */

.mood-popup-overlay {

    display: none;

    position: fixed;

    inset: 0;

    background:
        rgba(50, 30, 40, 0.45);

    backdrop-filter: blur(6px);

    align-items: center;

    justify-content: center;

    padding: 20px;

    z-index: 9999;

}


.mood-popup {

    position: relative;

    width: 100%;

    max-width: 560px;

    max-height: 90vh;

    overflow-y: auto;

    background: white;

    border-radius: 25px;

    padding: 35px;

    box-shadow:
        0 20px 50px
        rgba(70, 40, 55, 0.25);

}


.mood-popup h2 {

    margin-bottom: 8px;

    color: #765368;

}


.mood-popup > p {

    color: #927f89;

    margin-bottom: 25px;

}


.popup-close {

    position: absolute;

    top: 15px;

    right: 18px;

    border: none;

    background: transparent;

    font-size: 28px;

    cursor: pointer;

    color: #987b89;

}


/* MOOD BUTTONS */

.mood-grid {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 12px;

    margin-bottom: 25px;

}


.mood-grid button {

    border: 1px solid #eadbe2;

    background: #fff8fb;

    border-radius: 15px;

    padding: 15px 8px;

    font-size: 25px;

    cursor: pointer;

    transition: 0.2s;

}


.mood-grid button span {

    display: block;

    margin-top: 6px;

    font-size: 12px;

    color: #735d68;

}


.mood-grid button:hover {

    transform: translateY(-2px);

    background: #fbeaf1;

    border-color: #d8a8bc;

}


/* SPECIFIC FEELING */

#specificFeelingSection {

    margin-bottom: 20px;

}


#specificFeelingSection h3 {

    font-size: 14px;

    color: #765368;

}


#specificFeelingOptions {

    display: flex;

    flex-wrap: wrap;

    gap: 8px;

    margin-top: 10px;

}


#specificFeelingOptions button {

    border: 1px solid #dfc3cf;

    background: white;

    border-radius: 20px;

    padding: 8px 12px;

    cursor: pointer;

    color: #765368;

}


#specificFeelingOptions button.selected {

    background: #b97f9a;

    color: white;

    border-color: #b97f9a;

}


/* NOTE */

#moodNote {

    width: 100%;

    min-height: 90px;

    resize: vertical;

    padding: 12px;

    box-sizing: border-box;

    border: 1px solid #eadbe2;

    border-radius: 12px;

    outline: none;

    font-family: inherit;

}


#moodNote:focus {

    border-color: #bd8da4;

}


/* SAVE BUTTON */

.save-mood-button {

    width: 100%;

    border: none;

    background: #ad748f;

    color: white;

    padding: 13px;

    border-radius: 12px;

    margin-top: 15px;

    font-weight: 600;

    cursor: pointer;

}


.save-mood-button:hover {

    background: #99627c;

}


/* MOBILE */

@media (max-width: 600px) {

    .mood-grid {

        grid-template-columns:
            repeat(2, 1fr);

    }

}

/* ==================================
   CLEAN EXISTING USER DASHBOARD
================================== */

#existingUserDashboard {
    max-width: 1250px;
    margin: 0 auto;
}


/* TOP CARDS */

.dashboard-top-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 24px;
}


.summary-card {
    position: relative;

    background: white;

    border:
        1px solid #f0d5df;

    border-radius: 20px;

    padding: 25px;

    display: flex;

    align-items: center;

    gap: 20px;

    min-height: 150px;

    transition: 0.2s;
}


.summary-icon {
    width: 65px;
    height: 65px;

    min-width: 65px;

    border-radius: 18px;

    background: #ffe5ef;

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 30px;
}


.summary-card small {
    color: #cf4e82;

    font-size: 11px;

    font-weight: 600;

    letter-spacing: 0.5px;
}


.summary-card h3 {
    margin: 7px 0 5px;

    font-size: 20px;
}


.summary-card p {
    color: #756871;

    font-size: 13px;

    line-height: 1.5;
}


/* TODAY'S MOOD */

.mood-checkin-card {
    cursor: pointer;
}


.mood-checkin-card:hover {
    transform: translateY(-3px);

    box-shadow:
        0 10px 25px
        rgba(145, 62, 97, 0.09);
}


.mood-summary-content {
    flex: 1;
}


.mood-specific-feeling {
    color: #a9597e !important;

    font-weight: 600;

    margin-top: 3px;
}


.mood-user-note {
    margin-top: 10px;

    color: #756871 !important;

    font-style: italic;

    line-height: 1.5;
}


.card-action {
    position: absolute;

    right: 20px;
    bottom: 18px;

    color: #cf4e82;

    font-size: 12px;

    font-weight: 600;
}


/* MOOD TREND */

.mood-trend-panel {
    min-height: auto;

    margin-bottom: 25px;

    padding: 25px;
}


.panel-subtitle {
    margin-top: 5px;

    font-size: 12px;

    color: #8d7a84;
}


.simple-mood-trend {
    height: auto;

    margin-top: 25px;

    display: grid;

    grid-template-columns:
        repeat(7, 1fr);

    gap: 12px;
}


.simple-mood-trend div {
    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 8px;
}


.simple-mood-trend span {
    font-size: 11px;

    color: #806f78;
}


.simple-mood-trend strong {
    width: 100%;

    height: 70px;

    border-radius: 15px;

    background: #fff0f5;

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 26px;
}


/* QUICK ACCESS */

.dashboard-section-title {
    margin:
        5px 0 15px;
}


.quick-grid {
    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 14px;

    margin-bottom: 25px;
}


.quick-card {
    min-height: 90px;

    background: white;

    border:
        1px solid #f0d6e0;

    border-radius: 16px;

    padding: 17px;

    display: grid;

    grid-template-columns:
        38px 1fr 20px;

    gap: 10px;

    align-items: center;

    color: #32272d;

    transition: 0.2s;
}


.quick-card:hover {
    transform: translateY(-3px);

    box-shadow:
        0 8px 20px
        rgba(145, 62, 97, 0.08);

    border-color: #eabfd0;
}


.quick-card > span {
    font-size: 27px;
}


.quick-card strong {
    font-size: 13px;
}


.quick-card p {
    color: #81727a;

    font-size: 11px;

    margin-top: 5px;
}


.quick-card b {
    color: #d84b80;
}


/* BOTTOM SECTION */

.dashboard-lower-grid {
    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 20px;
}


.dashboard-panel {
    background: white;

    border:
        1px solid #f0d5df;

    border-radius: 18px;

    padding: 22px;

    min-height: 190px;
}


.panel-header {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    margin-bottom: 18px;
}


.panel-header h3 {
    font-size: 15px;
}


.panel-header a {
    color: #d7487d;

    font-size: 11px;

    white-space: nowrap;
}


/* JOURNAL */

.empty-text {
    color: #87767f;

    margin-top: 35px;

    text-align: center;

    font-size: 13px;
}


/* RECOMMENDED */

.recommend-small {
    display: flex;

    flex-direction: column;

    gap: 10px;
}


.recommend-small a {
    background: #fff3f7;

    padding: 13px 15px;

    border-radius: 12px;

    color: #413139;

    font-size: 12px;

    display: grid;

    grid-template-columns:
        25px 1fr 20px;

    gap: 8px;

    align-items: center;

    transition: 0.2s;
}


.recommend-small a:hover {
    background: #fce5ee;

    transform: translateX(3px);
}


.recommend-small b {
    color: #d7487d;
}


/* RESPONSIVE */

@media (max-width: 1000px) {

    .quick-grid {
        grid-template-columns:
            repeat(2, 1fr);
    }

}


@media (max-width: 700px) {

    .dashboard-top-grid,
    .dashboard-lower-grid {
        grid-template-columns: 1fr;
    }


    .quick-grid {
        grid-template-columns: 1fr;
    }


    .simple-mood-trend {
        overflow-x: auto;

        grid-template-columns:
            repeat(7, 80px);

        padding-bottom: 8px;
    }

}

/* ===================================== */
/* MOOD TRACKER PAGE */
/* ===================================== */

.mood-page {
    background: #fffafa;
}


/* MAIN CARD */

.mood-main-card {
    background: #ffffff;
    border: 1px solid #f3dce7;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 5px 18px rgba(122, 50, 86, 0.05);
}


.mood-top-grid {
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}


.mood-middle-grid {
    display: grid;
    grid-template-columns: 1.5fr 0.9fr;
    gap: 20px;
    margin-bottom: 20px;
}


.mood-card-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 20px;
}


.mood-card-heading h2 {
    margin: 4px 0 0;
    color: #2f2430;
}


.mood-small-label {
    color: #ac4777;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.3px;
}


/* ===================================== */
/* TODAY CARD */
/* ===================================== */

.mood-today-card {
    background:
        linear-gradient(
            135deg,
            #fff7fb,
            #ffe8f3
        );
}


.mood-edit-button {
    border: none;
    background: #ffffff;
    color: #aa3f73;
    border-radius: 20px;
    padding: 10px 17px;
    font-weight: 600;
    cursor: pointer;
    transition: 0.2s;
}


.mood-edit-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(163, 57, 107, 0.15);
}


.today-mood-content {
    display: flex;
    align-items: center;
    gap: 25px;
}


.today-big-emoji {
    width: 105px;
    height: 105px;
    background: rgba(255, 255, 255, 0.75);
    border-radius: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 58px;
    flex-shrink: 0;
}


.today-mood-info {
    flex: 1;
}


.today-mood-info small {
    color: #8d7080;
}


.today-mood-info h2 {
    margin: 4px 0 10px;
    color: #33232e;
}


.today-feeling-badge {
    display: inline-block;
    background: #ffffff;
    color: #a33a6b;
    border-radius: 18px;
    padding: 6px 13px;
    font-size: 13px;
    font-weight: 600;
}


.today-feeling-badge:empty {
    display: none;
}


.today-note-box {
    background: rgba(255, 255, 255, 0.65);
    padding: 12px 15px;
    border-radius: 14px;
    margin-top: 14px;
}


.today-note-box small {
    color: #ac4777;
    font-weight: 600;
}


.today-note-box p {
    margin: 5px 0 0;
    color: #4b3541;
    line-height: 1.5;
}


.mood-gentle-message {
    background: rgba(255, 255, 255, 0.65);
    padding: 12px 15px;
    border-radius: 14px;
    margin-top: 20px;
    color: #6d4558;
    font-size: 14px;
}


/* ===================================== */
/* WEEKLY SUMMARY */
/* ===================================== */

.weekly-summary-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}


.summary-mini-box {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #fff8fb;
    padding: 15px;
    border-radius: 16px;
}


.summary-mini-box > span {
    font-size: 27px;
}


.summary-mini-box strong {
    font-size: 22px;
    color: #382633;
}


.summary-mini-box p {
    margin: 2px 0 0;
    color: #7e6472;
    font-size: 12px;
}


.weekly-summary-message {
    margin-top: 16px;
    background: #ffe7f2;
    border-radius: 14px;
    padding: 14px;
    color: #78465d;
    font-size: 14px;
    line-height: 1.5;
}


/* ===================================== */
/* CALENDAR */
/* ===================================== */

.calendar-header {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-bottom: 18px;
}


.calendar-header h2 {
    min-width: 180px;
    text-align: center;
    color: #34252e;
}


.calendar-arrow {
    width: 38px;
    height: 38px;
    border: none;
    border-radius: 50%;
    background: #fff1f7;
    color: #9e3c6b;
    font-size: 25px;
    cursor: pointer;
}


.calendar-arrow:hover {
    background: #f8c9de;
}


.calendar-weekdays {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    margin-bottom: 8px;
}


.calendar-weekdays span {
    text-align: center;
    font-weight: 600;
    color: #785b69;
    font-size: 13px;
}


.mood-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    border-top: 1px solid #f2e3ea;
    border-left: 1px solid #f2e3ea;
}


.calendar-day {
    min-height: 76px;
    padding: 8px;
    border-right: 1px solid #f2e3ea;
    border-bottom: 1px solid #f2e3ea;
    position: relative;
    cursor: default;
    transition: 0.2s;
}


.calendar-day.has-mood {
    cursor: pointer;
}


.calendar-day.has-mood:hover {
    background: #fff3f8;
    transform: scale(1.02);
    z-index: 2;
}


.calendar-day.today {
    background: #fff0f7;
}


.calendar-day.other-month {
    background: #fafafa;
    color: #c8bec3;
}


.calendar-number {
    font-size: 12px;
}


.calendar-emoji {
    font-size: 29px;
    display: block;
    text-align: center;
    margin-top: 5px;
}


.calendar-empty-dot {
    width: 7px;
    height: 7px;
    background: #e7dde2;
    border-radius: 50%;
    display: block;
    margin: 15px auto 0;
}


.mood-calendar-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 15px;
    margin-top: 16px;
    font-size: 11px;
    color: #765e6a;
}


/* ===================================== */
/* MOOD HISTORY */
/* ===================================== */

.mood-text-button {
    border: none;
    background: transparent;
    color: #bd3c78;
    font-weight: 600;
    cursor: pointer;
}


.mood-history-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}


.mood-history-item {
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid #f2dce7;
    border-radius: 15px;
    padding: 11px 13px;
    cursor: pointer;
    transition: 0.2s;
}


.mood-history-item:hover {
    background: #fff5f9;
    transform: translateX(3px);
}


.history-emoji {
    font-size: 31px;
    flex-shrink: 0;
}


.history-info {
    flex: 1;
}


.history-info strong {
    display: block;
    color: #3c2933;
}


.history-info span {
    font-size: 12px;
    color: #9e7186;
}


.history-date {
    font-size: 10px;
    color: #8c7480;
    text-align: right;
}


/* ===================================== */
/* ANALYSIS */
/* ===================================== */

.mood-analysis-section {
    background:
        linear-gradient(
            135deg,
            #ffe7f1,
            #fff1f7
        );
    border-radius: 22px;
    padding: 23px;
    margin-bottom: 30px;
}


.analysis-heading > div {
    display: flex;
    align-items: center;
    gap: 12px;
}


.analysis-icon {
    font-size: 28px;
}


.analysis-heading h2 {
    margin: 0;
    color: #362631;
}


.analysis-heading p {
    margin: 4px 0 0;
    color: #806574;
}


.analysis-content {
    display: grid;
    grid-template-columns: 1.1fr 2fr;
    gap: 20px;
    margin-top: 20px;
}


.analysis-message-box {
    background: rgba(255, 255, 255, 0.7);
    border-radius: 17px;
    padding: 18px;
    display: flex;
    align-items: center;
    gap: 15px;
}


.analysis-robot {
    font-size: 50px;
}


.analysis-message-box p {
    margin: 0;
    color: #674a59;
    line-height: 1.55;
}


.recommendation-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}


.recommendation-card {
    text-decoration: none;
    background: #ffffff;
    border-radius: 16px;
    padding: 15px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: #392833;
    transition: 0.2s;
}


.recommendation-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 15px rgba(130, 57, 91, 0.12);
}


.recommendation-card > span {
    font-size: 27px;
}


.recommendation-card div {
    flex: 1;
}


.recommendation-card strong {
    font-size: 13px;
}


.recommendation-card p {
    margin: 4px 0 0;
    font-size: 11px;
    color: #806975;
    line-height: 1.4;
}


.recommendation-card b {
    color: #c34480;
}


/* ===================================== */
/* MOOD DETAIL POPUP */
/* ===================================== */

.mood-detail-overlay {
    position: fixed;
    inset: 0;
    background: rgba(48, 24, 36, 0.35);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
}


.mood-detail-card {
    width: 90%;
    max-width: 400px;
    background: #ffffff;
    border-radius: 24px;
    padding: 30px;
    text-align: center;
    position: relative;
}


.detail-big-emoji {
    font-size: 60px;
}


.detail-feeling {
    color: #ac4777;
    font-weight: 600;
}


.detail-date {
    color: #99808c;
    font-size: 13px;
}


.detail-note {
    text-align: left;
    background: #fff3f8;
    padding: 15px;
    border-radius: 15px;
    margin-top: 18px;
}


.detail-note small {
    color: #aa4272;
    font-weight: 600;
}


.detail-note p {
    line-height: 1.5;
    margin-bottom: 0;
}


/* ===================================== */
/* RESPONSIVE */
/* ===================================== */

@media (max-width: 1100px) {

    .mood-top-grid,
    .mood-middle-grid,
    .analysis-content {
        grid-template-columns: 1fr;
    }

    .recommendation-grid {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 700px) {

    .weekly-summary-grid {
        grid-template-columns: 1fr;
    }

    .today-mood-content {
        flex-direction: column;
        align-items: flex-start;
    }

    .today-big-emoji {
        width: 80px;
        height: 80px;
        font-size: 45px;
    }

    .calendar-day {
        min-height: 58px;
        padding: 5px;
    }

    .calendar-emoji {
        font-size: 22px;
    }

    .mood-calendar-legend {
        display: none;
    }

}

/* =========================================================
   C.A.T.S HOMEPAGE - FINAL DESIGN
   ========================================================= */


/* -------------------------
   NAVIGATION
------------------------- */

.home-nav {
    position: relative;
    z-index: 20;
}

.nav-links {
    background: #ffcce3;
    border-radius: 35px;
    padding: 6px;
    display: flex;
    gap: 5px;
}

.nav-links a {
    color: #23151d;
    padding: 10px 18px;
    border-radius: 25px;

    transition:
        background-color 0.25s ease,
        color 0.25s ease,
        transform 0.2s ease;
}

.nav-links a:hover {
    background: rgba(189, 57, 120, 0.15);
    color: #a7356b;
}

.nav-links a.active {
    background: #bd3978;
    color: white;

    box-shadow:
        0 4px 12px
        rgba(189, 57, 120, 0.18);
}


/* -------------------------
   HERO SECTION
------------------------- */

.cats-new-hero {
    position: relative;
    overflow: hidden;

    min-height: 520px;

    background:
        radial-gradient(
            circle at 5% 15%,
            rgba(231, 134, 177, 0.22) 0 85px,
            transparent 87px
        ),

        radial-gradient(
            circle at 92% 80%,
            rgba(240, 160, 196, 0.22) 0 120px,
            transparent 122px
        ),

        linear-gradient(
            135deg,
            #fffafb 0%,
            #fff4f8 100%
        );

    border-radius: 0 0 45px 45px;

    border-bottom:
        1px solid rgba(185, 67, 119, 0.12);
}


/* Large decorative circle - left */

.cats-new-hero::before {
    content: "";

    position: absolute;

    width: 330px;
    height: 330px;

    left: -180px;
    bottom: -170px;

    border-radius: 50%;

    background: #efb0cc;

    opacity: 0.32;

    pointer-events: none;
}


/* Decorative ring - right */

.cats-new-hero::after {
    content: "";

    position: absolute;

    width: 250px;
    height: 250px;

    right: -120px;
    top: 80px;

    border-radius: 50%;

    border: 45px solid #f0b1cd;

    opacity: 0.22;

    pointer-events: none;
}


/* Keep content above decorations */

.cats-new-hero .hero-text,
.cats-new-hero .hero-image {
    position: relative;
    z-index: 3;
}


/* Small label */

.cats-small-tag {
    display: inline-block;

    margin-bottom: 12px;

    color: #c65387;

    font-size: 11px;
    font-weight: bold;

    letter-spacing: 2px;
}


/* -------------------------
   HERO LOGO
------------------------- */

.cats-logo-container {
    position: relative;

    background: transparent;

    z-index: 3;
}

.hero-logo {
    width: 100%;
    height: 100%;

    object-fit: cover;

    border-radius: 50%;

    position: relative;

    z-index: 2;

    box-shadow:
        0 15px 35px
        rgba(167, 63, 111, 0.14);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.hero-logo:hover {
    transform: translateY(-5px);

    box-shadow:
        0 20px 40px
        rgba(167, 63, 111, 0.20);
}

.cats-logo-glow {
    position: absolute;

    width: 330px;
    height: 330px;

    border-radius: 50%;

    background: #f7c5db;

    opacity: 0.30;

    z-index: 1;
}


/* -------------------------
   SMALL HERO DECORATIONS
------------------------- */

.cats-decoration {
    position: absolute;

    pointer-events: none;

    z-index: 2;

    color: #d86d9e;
}

.cats-heart-one {
    top: 80px;
    left: 25px;

    font-size: 42px;

    opacity: 0.25;

    transform: rotate(-15deg);
}

.cats-heart-two {
    right: 360px;
    bottom: 60px;

    font-size: 34px;

    opacity: 0.30;

    transform: rotate(15deg);
}

.cats-paw-one {
    right: 40px;
    top: 75px;

    font-size: 28px;

    opacity: 0.20;

    transform: rotate(15deg);
}

.cats-paw-two {
    left: 48%;
    bottom: 45px;

    font-size: 25px;

    opacity: 0.18;

    transform: rotate(-20deg);
}


/* Soft shape at bottom of hero */

.cats-hero-wave {
    position: absolute;

    width: 120%;
    height: 85px;

    left: -10%;
    bottom: -55px;

    background:
        linear-gradient(
            90deg,
            #f7c6da,
            #efabc9,
            #f7c6da
        );

    border-radius: 50% 50% 0 0;

    opacity: 0.45;

    transform: rotate(-1deg);

    z-index: 1;
}


/* =========================================================
   ABOUT SECTION
   Stronger pink = clear separation from hero
   ========================================================= */

.cats-about-section {
    position: relative;

    background:
        linear-gradient(
            135deg,
            #f8d9e7 0%,
            #fce5ee 50%,
            #f7d4e3 100%
        );

    padding-top: 90px;
    padding-bottom: 90px;

    border-top:
        1px solid #efbfd3;

    border-bottom:
        1px solid #efbfd3;
}


/* Subtle background decoration */

.cats-about-section::before {
    content: "";

    position: absolute;

    width: 190px;
    height: 190px;

    top: 35px;
    left: -85px;

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.30);

    pointer-events: none;
}

.cats-about-section::after {
    content: "";

    position: absolute;

    width: 150px;
    height: 150px;

    right: -55px;
    bottom: 25px;

    border-radius: 50%;

    border:
        25px solid
        rgba(255, 255, 255, 0.28);

    pointer-events: none;
}


/* Keep About content above decoration */

.cats-about-section > * {
    position: relative;
    z-index: 2;
}


/* Section label */

.cats-section-label {
    display: inline-block;

    margin-bottom: 9px;

    color: #b53f75;

    font-size: 10px;
    font-weight: bold;

    letter-spacing: 2px;
}


/* About cards */

.cats-about-grid {
    max-width: 900px;

    margin: 38px auto 0;

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 18px;
}

.cats-about-card {
    background:
        rgba(255, 255, 255, 0.78);

    border:
        1px solid
        rgba(218, 139, 175, 0.45);

    border-radius: 20px;

    padding: 22px;

    display: flex;

    align-items: center;

    gap: 15px;

    text-align: left;

    box-shadow:
        0 8px 20px
        rgba(145, 62, 97, 0.07);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.cats-about-card:hover {
    transform: translateY(-5px);

    box-shadow:
        0 12px 25px
        rgba(145, 62, 97, 0.12);
}

.cats-about-icon {
    min-width: 48px;

    width: 48px;
    height: 48px;

    border-radius: 50%;

    background: #f9c6dc;

    display: flex;

    align-items: center;
    justify-content: center;

    color: #b63e75;

    font-size: 23px;
}

.cats-about-card h3 {
    color: #a94072;

    font-size: 14px;

    margin-bottom: 6px;
}

.cats-about-card p {
    color: #756871;

    font-size: 12px;

    line-height: 1.5;
}


/* =========================================================
   SUPPORT TOOLS SECTION
   Lighter again to create 3 clear layers
   ========================================================= */

.cats-support-section {
    position: relative;

    overflow: hidden;

    background:
        linear-gradient(
            180deg,
            #fff4f8 0%,
            #fdebf3 100%
        );

    padding-top: 90px;
    padding-bottom: 90px;
}


/* Decorative background circles */

.cats-support-section::before {
    content: "";

    position: absolute;

    width: 280px;
    height: 280px;

    left: -150px;
    bottom: -130px;

    border-radius: 50%;

    background: #f3b9d2;

    opacity: 0.22;
}

.cats-support-section::after {
    content: "";

    position: absolute;

    width: 230px;
    height: 230px;

    right: -120px;
    top: 35px;

    border-radius: 50%;

    background: #2f0c1b;

    opacity: 0.20;
}


/* Keep support content above decoration */

.cats-support-section > * {
    position: relative;
    z-index: 2;
}

.cats-support-intro {
    max-width: 550px;

    margin: 0 auto 10px;

    color: #806d77;

    font-size: 14px;

    line-height: 1.6;
}


/* Support cards */

.cats-feature-card {
    position: relative;

    overflow: hidden;

    min-height: 220px;

    display: flex;

    flex-direction: column;

    align-items: center;
    justify-content: center;

    border:
        1px solid
        rgba(226, 174, 197, 0.35);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}

.cats-feature-card:hover {
    transform: translateY(-7px);

    box-shadow:
        0 12px 30px
        rgba(145, 62, 97, 0.12);
}

.cats-feature-card::before {
    content: "";

    position: absolute;

    width: 90px;
    height: 90px;

    border-radius: 50%;

    background:
        rgba(255, 210, 229, 0.32);

    top: -35px;
    right: -25px;
}

.cats-feature-icon {
    width: 60px;
    height: 60px;

    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            #fff1f6,
            #ffd9e9
        );

    display: flex;

    align-items: center;
    justify-content: center;

    font-size: 30px;

    margin-bottom: 3px;
}

.cats-bottom-decoration {
    margin-top: 45px;

    display: flex;

    align-items: center;
    justify-content: center;

    gap: 35px;

    color: #cf6796;

    opacity: 0.65;

    font-size: 22px;
}


/* =========================================================
   HOMEPAGE RESPONSIVE
   ========================================================= */

@media (max-width: 900px) {

    .cats-about-grid {
        grid-template-columns: 1fr;

        max-width: 520px;
    }

    .cats-new-hero {
        min-height: auto;
    }

    .cats-decoration {
        opacity: 0.10;
    }
}


@media (max-width: 700px) {

    .nav-links {
        gap: 3px;
        padding: 5px;
    }

    .nav-links a {
        padding: 9px 12px;
        font-size: 13px;
    }

    .cats-about-section,
    .cats-support-section {
        padding:
            70px 20px;
    }

    .cats-about-card {
        padding: 18px;
    }

    .cats-logo-glow {
        width: 280px;
        height: 280px;
    }
}

#about {
    position: relative;
    background: #f8d9e7 !important;

    border-top: none !important;
    border-bottom: none !important;
}

#about::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 12px;

    background:
        linear-gradient(
            90deg,
            #b94b7d,
            #e69abb,
            #f4bed4,
            #e69abb,
            #b94b7d
        );

    opacity: 0.75;
}

#features {
    position: relative;
    background: #fff1f6 !important;
}

#features::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 12px;

    background:
        linear-gradient(
            90deg,
            #b94b7d,
            #e69abb,
            #f4bed4,
            #e69abb,
            #b94b7d
        );

    opacity: 0.75;
}


/* =========================================================
   SELF-CARE ARTICLES PAGE
   ========================================================= */

.articles-main {
    margin-left: 260px;
    min-height: 100vh;
    padding: 45px 55px 70px;
    background: #fff9fb;
}


/* =========================
   HEADER
========================= */

.articles-header {
    background:
        linear-gradient(
            135deg,
            #f9d9e8,
            #fff0f6
        );

    border: 1px solid #f1c8da;
    border-radius: 25px;

    padding: 35px 40px;
    margin-bottom: 25px;

    position: relative;
    overflow: hidden;
}


/* Decorative circle */

.articles-header::after {
    content: "";

    position: absolute;

    width: 180px;
    height: 180px;

    right: -50px;
    top: -70px;

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.45);
}


.articles-label {
    display: block;

    color: #bd3978;

    font-size: 11px;
    font-weight: bold;

    letter-spacing: 2px;

    margin-bottom: 8px;
}


.articles-header h1 {
    color: #24121c;

    font-size: 32px;

    margin-bottom: 8px;
}


.articles-header p {
    color: #765665;

    font-size: 15px;

    line-height: 1.6;
}


/* =========================
   SEARCH BAR
========================= */

.articles-tools {
    margin-bottom: 18px;
}


.articles-search {
    max-width: 520px;

    display: flex;
    align-items: center;

    gap: 10px;

    background: white;

    border: 1px solid #efcada;

    border-radius: 15px;

    padding: 12px 17px;

    box-shadow:
        0 5px 15px
        rgba(154, 61, 104, 0.05);
}


.articles-search input {
    width: 100%;

    border: none;
    outline: none;

    background: transparent;

    font-size: 14px;

    color: #37232d;
}


.articles-search input::placeholder {
    color: #a98c99;
}


/* =========================
   CATEGORY FILTER
========================= */

.article-categories {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;

    margin-bottom: 30px;
}


.article-category {
    border: 1px solid #e7b6cc;

    background: white;

    color: #9d456d;

    padding: 9px 18px;

    border-radius: 25px;

    font-size: 13px;

    cursor: pointer;

    transition: 0.25s ease;
}


.article-category:hover {
    background: #f9d6e6;

    transform: translateY(-2px);
}


.article-category.active {
    background: #bd3978;

    border-color: #bd3978;

    color: white;

    box-shadow:
        0 4px 12px
        rgba(189, 57, 120, 0.18);
}


/* =========================
   ARTICLE GRID
========================= */

.articles-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 22px;
}


/* =========================
   ARTICLE CARD
========================= */

.article-card {
    background: white;

    border:
        1px solid #f0d4e0;

    border-radius: 22px;

    padding: 26px;

    min-height: 300px;

    display: flex;
    flex-direction: column;

    position: relative;
    overflow: hidden;

    box-shadow:
        0 7px 20px
        rgba(139, 58, 95, 0.06);

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease;
}


.article-card:hover {
    transform: translateY(-6px);

    box-shadow:
        0 14px 30px
        rgba(139, 58, 95, 0.12);
}


/* Decorative circle */

.article-card::after {
    content: "";

    position: absolute;

    width: 100px;
    height: 100px;

    top: -45px;
    right: -35px;

    border-radius: 50%;

    background: #fde6f0;

    z-index: 0;
}


/* Keep card content above decoration */

.article-card > * {
    position: relative;
    z-index: 1;
}


/* Article icon */

.article-card-icon {
    width: 58px;
    height: 58px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #fde8f1;

    border-radius: 17px;

    font-size: 29px;

    margin-bottom: 18px;
}


/* Category label */

.article-tag {
    width: fit-content;

    background: #fbe0eb;

    color: #af3d70;

    border-radius: 20px;

    padding: 5px 11px;

    font-size: 11px;
    font-weight: bold;

    margin-bottom: 12px;
}


/* Article title */

.article-card h2 {
    color: #29151f;

    font-size: 19px;

    line-height: 1.35;

    margin-bottom: 10px;
}


/* Article description */

.article-card p {
    color: #755e69;

    font-size: 13px;

    line-height: 1.6;

    margin-bottom: 22px;
}


/* Read button */

.article-read-btn {
    margin-top: auto;

    align-self: flex-start;

    border: none;

    background: transparent;

    color: #bd3978;

    font-size: 13px;
    font-weight: bold;

    cursor: pointer;

    padding: 0;

    transition: 0.2s ease;
}


.article-read-btn:hover {
    color: #8f2858;

    transform: translateX(4px);
}


/* =========================
   RESPONSIVE
========================= */

@media (max-width: 1100px) {

    .articles-grid {
        grid-template-columns:
            repeat(2, 1fr);
    }
}


@media (max-width: 850px) {

    .articles-main {
        margin-left: 0;

        padding:
            35px 25px 60px;
    }

    .articles-grid {
        grid-template-columns: 1fr;
    }

    .articles-header {
        padding: 28px 25px;
    }
}


@media (max-width: 500px) {

    .articles-main {
        padding:
            25px 16px 50px;
    }

    .articles-header h1 {
        font-size: 26px;
    }

    .article-categories {
        gap: 7px;
    }

    .article-category {
        padding: 8px 13px;

        font-size: 12px;
    }
}

/* =========================================================
   ARTICLE READING MODAL
========================================================= */

.article-modal-overlay {
    position: fixed;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    background: rgba(64, 30, 47, 0.45);

    display: none;
    align-items: center;
    justify-content: center;

    padding: 30px;

    z-index: 9999;
}

.article-modal-overlay.show {
    display: flex;
}

.article-modal {
    position: relative;

    width: 100%;
    max-width: 760px;
    max-height: 80vh;

    overflow-y: auto;

    background: #fffafb;

    border-radius: 25px;

    padding: 45px;

    box-shadow:
        0 20px 60px
        rgba(80, 30, 55, 0.20);

    scrollbar-width: thin;
    scrollbar-color: #e7a8c4 transparent;
}

.article-modal-close {
    position: absolute;

    top: 18px;
    right: 22px;

    width: 38px;
    height: 38px;

    border: none;
    border-radius: 50%;

    background: #f9d9e7;

    color: #a83d70;

    font-size: 24px;

    cursor: pointer;
}

.article-modal-tag {
    display: inline-block;

    background: #f9d9e7;
    color: #ae3f72;

    padding: 6px 13px;

    border-radius: 20px;

    font-size: 12px;
    font-weight: bold;

    margin-bottom: 15px;
}

.article-modal h1 {
    color: #29151f;

    font-size: 30px;

    margin-bottom: 10px;
}

.article-modal-intro {
    color: #806672;

    line-height: 1.7;

    margin-bottom: 25px;
}

.article-modal h2 {
    color: #ad4274;

    font-size: 19px;

    margin-top: 25px;
    margin-bottom: 10px;
}

.article-modal p,
.article-modal li {
    color: #5f4c55;

    font-size: 14px;

    line-height: 1.8;
}

.article-modal ul {
    padding-left: 22px;

    margin-top: 10px;
}

.article-reminder {
    background: #fde8f1;

    border-left: 4px solid #c64b83;

    border-radius: 12px;

    padding: 16px 18px;

    margin-top: 28px;
}

.article-card {
    display: flex;
    flex-direction: column;
}

.article-card-bottom {
    margin-top: auto;
    padding-top: 25px;
}

.article-source {
    display: block;
    margin: 0 0 18px 0;
    color: #a06b82;
    font-size: 12px;
    font-weight: 600;
}

.article-read-btn {
    align-self: flex-start;
}

/* =========================================
   JOURNAL PAGE
========================================= */

.journal-page {
    padding: 40px 45px 50px;
    min-height: 100vh;
    background: #fffafa;
}


/* =========================================
   JOURNAL HEADING
========================================= */

.journal-heading {
    margin-bottom: 30px;
}

.journal-heading h1 {
    margin: 0 0 8px;
    font-size: 30px;
    font-weight: 700;
    color: #222222;
    letter-spacing: 0.5px;
}

.journal-heading p {
    margin: 0;
    font-size: 16px;
    color: #777777;
}


/* =========================================
   MAIN JOURNAL CONTAINER
========================================= */

.journal-container {
    display: grid;
    grid-template-columns: 280px 1fr;

    min-height: 500px;

    background: #ffffff;

    border: 1px solid #eeeeee;
    border-radius: 16px;

    overflow: hidden;

    box-shadow:
        0 5px 20px rgba(0, 0, 0, 0.05);
}


/* =========================================
   LEFT SIDE - LOG HISTORY
========================================= */

.journal-history {
    background: #fff5f7;

    border-right:
        1px solid #eeeeee;

    padding: 25px 20px;
}

.journal-history h2 {
    margin: 0 0 22px;

    font-size: 18px;
    font-weight: 700;

    color: #333333;
}


/* =========================================
   JOURNAL HISTORY LIST
========================================= */

.journal-history-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}


/* =========================================
   EMPTY JOURNAL MESSAGE
========================================= */

.empty-journal {
    margin-top: 20px;

    font-size: 14px;
    line-height: 1.6;

    text-align: center;

    color: #999999;
}


/* =========================================
   JOURNAL HISTORY ITEM
   JS WILL USE THIS LATER
========================================= */

.journal-history-item {
    width: 100%;

    padding: 14px 15px;

    background: #ffffff;

    border:
        1px solid transparent;

    border-radius: 10px;

    cursor: pointer;

    transition: 0.2s ease;
}

.journal-history-item:hover {
    border-color: #f5b6c6;

    background: #fffafb;

    transform:
        translateY(-1px);
}

.journal-history-item.active {
    background: #ffe5ec;

    border-color: #f4a9bb;
}

.journal-history-item strong {
    display: block;

    margin-bottom: 5px;

    font-size: 14px;

    color: #333333;
}

.journal-history-item small {
    font-size: 12px;

    color: #888888;
}


/* =========================================
   RIGHT SIDE - JOURNAL EDITOR
========================================= */

.journal-editor {
    display: flex;
    flex-direction: column;

    min-width: 0;

    background: #ffffff;
}


/* =========================================
   DATE BAR
========================================= */

.journal-date-bar {
    display: flex;
    align-items: center;

    gap: 10px;

    min-height: 60px;

    padding: 0 25px;

    background: #fff5f7;

    border-bottom:
        1px solid #eeeeee;

    font-size: 15px;
    font-weight: 600;

    color: #555555;
}


/* =========================================
   JOURNAL TEXTAREA
========================================= */

#journalContent {
    flex: 1;

    width: 100%;
    min-height: 360px;

    padding: 25px;

    border: none;
    outline: none;

    resize: none;

    box-sizing: border-box;

    background: #ffffff;

    font-family: inherit;
    font-size: 16px;
    line-height: 1.8;

    color: #333333;
}

#journalContent::placeholder {
    color: #bbbbbb;
}


/* =========================================
   EDITOR BOTTOM ACTION
========================================= */

.journal-editor-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    min-height: 65px;

    padding: 10px 20px;

    border-top:
        1px solid #eeeeee;
}


/* =========================================
   SAVE BUTTON
========================================= */

.journal-save-btn {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    flex-shrink: 0;

    border: none;
    border-radius: 12px;

    background: #f4a9bb;

    font-size: 20px;

    cursor: pointer;

    transition: 0.2s ease;
}

.journal-save-btn:hover {
    transform:
        translateY(-2px);

    box-shadow:
        0 5px 12px rgba(244, 169, 187, 0.35);
}

.journal-save-btn:active {
    transform:
        translateY(0);
}


/* =========================================
   JOURNAL MESSAGE
========================================= */

.journal-message {
    flex: 1;

    font-size: 14px;

    color: #777777;
}

.journal-message.success {
    color: #388e5a;
}

.journal-message.error {
    color: #c94c5c;
}


/* =========================================
   BOTTOM SECTION
========================================= */

.journal-bottom {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-top: 25px;
}


/* =========================================
   NEW ENTRY BUTTON
========================================= */

.new-journal-btn {
    padding: 13px 24px;

    border: none;
    border-radius: 10px;

    background: #d63384;

    color: #ffffff;

    font-family: inherit;
    font-size: 15px;
    font-weight: 600;

    cursor: pointer;

    box-shadow:
        0 4px 10px rgba(244, 169, 187, 0.25);

    transition: 0.2s ease;
}

.new-journal-btn:hover {
    transform:
        translateY(-2px);

    box-shadow:
        0 6px 14px rgba(244, 169, 187, 0.35);
}

.new-journal-btn:active {
    transform:
        translateY(0);
}


/* =========================================
   PRIVACY MESSAGE
========================================= */

.journal-privacy {
    display: flex;
    align-items: center;

    gap: 10px;

    padding: 12px 18px;

    background: #fff5f7;

    border-radius: 10px;

    color: #777777;
}

.journal-privacy span {
    font-size: 18px;
}

.journal-privacy p {
    margin: 0;

    font-size: 13px;
}


/* =========================================
   RESPONSIVE - TABLET
========================================= */

@media (max-width: 900px) {

    .journal-page {
        padding:
            30px 25px 40px;
    }

    .journal-container {
        grid-template-columns:
            220px 1fr;
    }

}


/* =========================================
   RESPONSIVE - MOBILE
========================================= */

@media (max-width: 700px) {

    .journal-page {
        padding:
            25px 15px 35px;
    }

    .journal-heading h1 {
        font-size: 24px;
    }

    .journal-container {
        display: flex;
        flex-direction: column;
    }

    .journal-history {
        border-right: none;

        border-bottom:
            1px solid #eeeeee;
    }

    .journal-history-list {
        max-height: 200px;

        overflow-y: auto;
    }

    #journalContent {
        min-height: 300px;
    }

    .journal-bottom {
        flex-direction: column;
        align-items: stretch;
    }

    .new-journal-btn {
        width: 100%;
    }

    .journal-privacy {
        justify-content: center;
    }

}

/* =========================================
   JOURNAL ACTION BUTTONS
========================================= */

.journal-action-buttons {
    display: flex;
    align-items: center;
    gap: 10px;
}


/* DELETE BUTTON */

.journal-delete-btn {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 46px;
    height: 46px;

    border: 1px solid #e5738f;
    border-radius: 12px;

    background: #ffffff;

    font-size: 19px;

    cursor: pointer;

    transition: 0.2s ease;
}

.journal-delete-btn:hover {
    background: #ffe8ee;

    transform: translateY(-2px);

    box-shadow:
        0 5px 12px rgba(214, 51, 132, 0.15);
}

/* =========================================
   FIX JOURNAL BOTTOM POSITION
========================================= */

.journal-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-top: 25px;
    padding: 0;

    width: 100%;
}


/* NEW ENTRY BUTTON */

.new-journal-btn {
    position: static;

    padding: 13px 25px;

    border: none;
    border-radius: 10px;

    background: #d63384;
    color: white;

    font-family: inherit;
    font-size: 15px;
    font-weight: 600;

    cursor: pointer;

    box-shadow:
        0 4px 10px rgba(214, 51, 132, 0.25);

    transition: 0.2s ease;
}


.new-journal-btn:hover {
    background: #bd2c74;

    transform: translateY(-2px);

    box-shadow:
        0 6px 14px rgba(214, 51, 132, 0.35);
}


/* PRIVACY MESSAGE */

.journal-privacy {
    position: static;

    display: flex;
    align-items: center;

    gap: 10px;

    padding: 12px 18px;

    background: #fff5f7;

    border-radius: 10px;

    color: #777;
}


.journal-privacy p {
    margin: 0;

    font-size: 13px;
}

/* ========================================= */
/* AI COUNSELLOR PAGE */
/* ========================================= */

.ai-counsellor-page {
    max-width: 1250px;
    margin: 0 auto;
}


/* ========================================= */
/* AI HEADING */
/* ========================================= */

.ai-counsellor-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    margin-bottom: 20px;
    padding: 18px 22px;

    background:
        linear-gradient(
            135deg,
            #fff4f8,
            #ffe8f2
        );

    border: 1px solid #f2d5e1;
    border-radius: 20px;
}


.ai-counsellor-title {
    display: flex;
    align-items: center;
    gap: 15px;
}


.ai-main-avatar {
    width: 58px;
    height: 58px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    background: white;

    border: 2px solid #efc4d6;
    border-radius: 50%;

    font-size: 30px;

    box-shadow:
        0 5px 15px
        rgba(154, 61, 105, 0.08);
}


.ai-counsellor-title h1 {
    margin: 0 0 5px;

    color: #32232b;

    font-size: 21px;
    letter-spacing: 2px;
}


.ai-counsellor-title p {
    margin: 0;

    color: #8a707c;

    font-size: 13px;
}


.ai-status {
    display: flex;
    align-items: center;
    gap: 8px;

    padding: 9px 14px;

    background: white;

    border-radius: 20px;

    color: #9b3d6b;

    font-size: 12px;
    font-weight: 600;

    white-space: nowrap;
}


.ai-status span {
    width: 8px;
    height: 8px;

    background: #66b98b;

    border-radius: 50%;
}


/* ========================================= */
/* CHAT CONTAINER */
/* ========================================= */

.ai-chat-container {
    background: #fffafb;

    border: 1px solid #f0d7e1;
    border-radius: 24px;

    overflow: hidden;

    box-shadow:
        0 7px 22px
        rgba(114, 54, 82, 0.06);
}


/* ========================================= */
/* CHAT MESSAGES */
/* ========================================= */

.ai-chat-messages {
    min-height: 480px;
    max-height: 580px;

    overflow-y: auto;

    padding: 30px 35px;

    background:
        linear-gradient(
            180deg,
            #fffafb,
            #fff6f9
        );
}


/* ========================================= */
/* AI MESSAGE */
/* ========================================= */

.ai-message-row {
    display: flex;
    align-items: flex-start;

    gap: 12px;

    margin-bottom: 25px;
}


.ai-message-avatar {
    width: 42px;
    height: 42px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #ffffff;

    border: 1px solid #efc8d8;
    border-radius: 50%;

    font-size: 22px;

    box-shadow:
        0 4px 10px
        rgba(130, 55, 90, 0.08);
}


.ai-message-content {
    max-width: 72%;
}


.ai-message-bubble {
    display: inline-block;

    padding: 15px 18px;

    background:
        linear-gradient(
            135deg,
            #bd3978,
            #c94d87
        );

    color: white;

    border-radius:
        7px 20px 20px 20px;

    box-shadow:
        0 7px 15px
        rgba(168, 51, 106, 0.18);
}


.ai-message-bubble p {
    margin: 0;

    font-size: 14px;
    line-height: 1.6;
}


.ai-message-bubble p + p {
    margin-top: 5px;
}


/* ========================================= */
/* QUICK FEELING BUTTONS */
/* ========================================= */

.ai-quick-feelings {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;

    margin-top: 13px;
}


.ai-quick-feelings button {
    padding: 8px 13px;

    background: #ffffff;

    border: 1px solid #efbfd2;
    border-radius: 20px;

    color: #9e3e6c;

    font-family: inherit;
    font-size: 12px;

    cursor: pointer;

    transition: 0.2s ease;
}


.ai-quick-feelings button:hover {
    background: #ffe6f0;

    border-color: #dc8caf;

    transform: translateY(-2px);
}


/* ========================================= */
/* USER MESSAGE */
/* ========================================= */

.user-message-row {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;

    gap: 12px;

    margin: 25px 0;
}


.user-message-bubble {
    max-width: 65%;

    padding: 15px 18px;

    background: #ffd2e3;

    color: #8d2e5d;

    border-radius:
        20px 20px 7px 20px;

    box-shadow:
        0 6px 14px
        rgba(170, 76, 118, 0.10);
}


.user-message-bubble p {
    margin: 0;

    font-size: 14px;
    line-height: 1.6;
}


.user-chat-avatar {
    width: 42px;
    height: 42px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #a84676;

    border-radius: 50%;

    color: white;

    font-size: 14px;
    font-weight: 700;
}


/* ========================================= */
/* HELPFUL COPING CARD */
/* ========================================= */

.ai-helpful-card {
    max-width: 540px;

    margin-top: 12px;
    padding: 14px 15px;

    display: grid;

    grid-template-columns:
        42px 1fr auto;

    align-items: center;

    gap: 12px;

    background: white;

    border:
        1px solid #efd5e0;

    border-radius: 16px;

    box-shadow:
        0 5px 15px
        rgba(110, 52, 80, 0.05);
}


.helpful-card-icon {
    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #fff0f5;

    border-radius: 12px;

    font-size: 23px;
}


.helpful-card-text {
    display: flex;
    flex-direction: column;
}


.helpful-card-text small {
    margin-bottom: 3px;

    color: #c0447c;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.6px;
}


.helpful-card-text strong {
    color: #3b2b33;

    font-size: 13px;
}


.helpful-card-text p {
    margin: 4px 0 0;

    color: #85717a;

    font-size: 11px;
    line-height: 1.4;
}


.helpful-card-button {
    padding: 9px 13px;

    border: none;
    border-radius: 18px;

    background: #f3a9c7;

    color: #73334f;

    font-family: inherit;
    font-size: 11px;
    font-weight: 600;

    cursor: pointer;

    transition: 0.2s ease;
}


.helpful-card-button:hover {
    background: #e991b6;

    transform: translateY(-1px);
}


/* ========================================= */
/* INPUT */
/* ========================================= */

.ai-input-area {
    padding: 18px 25px;

    background: #ffffff;

    border-top:
        1px solid #f1dce5;
}


.ai-message-input-wrapper {
    max-width: 850px;

    margin: 0 auto;

    display: flex;
    align-items: center;

    gap: 10px;

    padding: 7px 8px 7px 18px;

    background: #fff8fb;

    border:
        2px solid #dc76a5;

    border-radius: 30px;

    transition: 0.2s ease;
}


.ai-message-input-wrapper:focus-within {
    border-color: #bd3978;

    box-shadow:
        0 0 0 3px
        rgba(189, 57, 120, 0.08);
}


#aiMessageInput {
    flex: 1;

    min-height: 25px;
    max-height: 100px;

    padding: 6px 0;

    border: none;
    outline: none;

    resize: none;

    background: transparent;

    color: #3b2d34;

    font-family: inherit;
    font-size: 13px;

    line-height: 1.5;
}


#aiMessageInput::placeholder {
    color: #a28e97;
}


.ai-send-button {
    width: 40px;
    height: 40px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    border: none;
    border-radius: 50%;

    background: #bd3978;

    color: white;

    font-size: 18px;

    cursor: pointer;

    transition: 0.2s ease;
}


.ai-send-button:hover {
    background: #a92f6a;

    transform: scale(1.05);
}


/* ========================================= */
/* BOTTOM NOTES */
/* ========================================= */

.ai-support-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-top: 18px;
}


.ai-privacy-note,
.ai-safety-note {
    display: flex;
    align-items: center;

    gap: 9px;

    padding: 11px 15px;

    background: #fff2f7;

    border-radius: 12px;

    color: #78656e;
}


.ai-privacy-note p,
.ai-safety-note p {
    margin: 0;

    font-size: 11px;
    line-height: 1.4;
}


.ai-safety-note {
    max-width: 500px;
}


/* ========================================= */
/* AI PAGE RESPONSIVE */
/* ========================================= */

@media (max-width: 800px) {

    .ai-counsellor-heading {
        align-items: flex-start;
    }


    .ai-counsellor-title h1 {
        font-size: 17px;
    }


    .ai-status {
        display: none;
    }


    .ai-chat-messages {
        padding: 22px 18px;

        min-height: 430px;
    }


    .ai-message-content {
        max-width: 85%;
    }


    .user-message-bubble {
        max-width: 80%;
    }


    .ai-helpful-card {
        grid-template-columns:
            38px 1fr;
    }


    .helpful-card-button {
        grid-column: 2;

        justify-self: start;
    }


    .ai-support-footer {
        flex-direction: column;

        align-items: stretch;
    }

}


@media (max-width: 550px) {

    .ai-main-avatar {
        width: 48px;
        height: 48px;

        font-size: 24px;
    }


    .ai-counsellor-title h1 {
        letter-spacing: 1px;

        font-size: 15px;
    }


    .ai-message-avatar,
    .user-chat-avatar {
        width: 35px;
        height: 35px;
    }


    .ai-message-content {
        max-width: 90%;
    }


    .user-message-bubble {
        max-width: 85%;
    }


    .ai-message-bubble,
    .user-message-bubble {
        padding: 12px 14px;
    }


    .ai-input-area {
        padding: 14px;
    }

}

/* =====================================================
   C.A.T.S AI SUPPORT - RIGHT SIDE PANEL
   ===================================================== */


/* =========================================
   MAIN 2-COLUMN LAYOUT
========================================= */

.ai-support-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 22px;

    width: 100%;
    max-width: 1400px;
    margin: 0 auto;

    align-items: start;
}


/* =========================================
   LEFT CHAT COLUMN
========================================= */

.ai-main-column {
    min-width: 0;
    width: 100%;
}


/* =========================================
   COUNSELLOR HEADER
========================================= */

.ai-counsellor-heading {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding: 18px 22px;
    margin-bottom: 18px;

    background:
        linear-gradient(
            135deg,
            #fff7fa,
            #fdebf3
        );

    border: 1px solid #f2ccdc;
    border-radius: 18px;

    box-sizing: border-box;
}


.ai-heading-left {
    display: flex;
    align-items: center;
    gap: 14px;
}


.ai-heading-avatar {
    width: 48px;
    height: 48px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    font-size: 25px;

    background: white;

    border: 1px solid #f1c9da;
    border-radius: 50%;

    box-shadow:
        0 5px 12px
        rgba(166, 61, 111, 0.08);
}


.ai-heading-left h2 {
    margin: 0 0 3px;

    font-size: 20px;
    font-weight: 700;

    color: #302833;

    letter-spacing: 1px;
}


.ai-heading-left p {
    margin: 0;

    font-size: 13px;

    color: #796b73;
}


.ai-status {
    display: flex;
    align-items: center;
    gap: 7px;

    flex-shrink: 0;

    padding: 8px 14px;

    background: white;

    border-radius: 30px;

    font-size: 12px;
    font-weight: 600;

    color: #b83e77;
}


.ai-status-dot {
    width: 8px;
    height: 8px;

    border-radius: 50%;

    background: #56c991;
}


/* =========================================
   CHAT CONTAINER
========================================= */

.ai-chat-container {
    display: flex;
    flex-direction: column;

    width: 100%;
    height: 650px;

    overflow: hidden;

    background:
        linear-gradient(
            180deg,
            #fffafb 0%,
            #fff7f9 100%
        );

    border: 1px solid #efd5df;
    border-radius: 20px;

    box-sizing: border-box;
}


/* =========================================
   CHAT MESSAGE AREA
========================================= */

.ai-chat-messages {
    flex: 1;

    min-height: 0;

    overflow-y: auto;

    padding: 25px 28px;

    scroll-behavior: smooth;
}


.ai-chat-messages::-webkit-scrollbar {
    width: 7px;
}


.ai-chat-messages::-webkit-scrollbar-track {
    background: transparent;
}


.ai-chat-messages::-webkit-scrollbar-thumb {
    background: #d7a3b9;

    border-radius: 20px;
}


/* =========================================
   AI MESSAGE
========================================= */

.ai-message-row {
    display: flex;
    align-items: flex-start;

    gap: 12px;

    margin-bottom: 24px;
}


.ai-message-avatar {
    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: white;

    border: 1px solid #f0cad9;
    border-radius: 50%;

    box-shadow:
        0 4px 10px
        rgba(166, 61, 111, 0.08);
}


.ai-message-content {
    max-width: 75%;
}


.ai-message-bubble {
    padding: 15px 18px;

    background:
        linear-gradient(
            135deg,
            #c73578,
            #cc4c88
        );

    color: white;

    border-radius:
        8px 18px 18px 18px;

    box-shadow:
        0 8px 18px
        rgba(178, 53, 111, 0.12);
}


.ai-message-bubble p {
    margin: 0;

    font-size: 14px;
    line-height: 1.6;
}


/* =========================================
   USER MESSAGE
========================================= */

.user-message-row {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;

    gap: 10px;

    margin-bottom: 24px;
}


.user-message-bubble {
    max-width: 65%;

    padding: 13px 17px;

    background: #ffd5e5;

    color: #9e3767;

    border-radius:
        18px 8px 18px 18px;

    box-shadow:
        0 6px 15px
        rgba(180, 70, 120, 0.08);
}


.user-message-bubble p {
    margin: 0;

    font-size: 14px;
    line-height: 1.5;
}


.user-chat-avatar {
    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: #ad3f73;

    color: white;

    font-size: 13px;
    font-weight: 700;

    border-radius: 50%;
}


/* =========================================
   INPUT AREA
========================================= */

.ai-input-area {
    padding: 16px 22px 12px;

    background: rgba(255, 255, 255, 0.92);

    border-top: 1px solid #f1d5df;
}


.ai-input-wrapper {
    display: flex;
    align-items: center;

    gap: 10px;

    width: 100%;

    padding: 5px 6px 5px 16px;

    background: white;

    border: 1.5px solid #ce3d7b;
    border-radius: 30px;

    box-sizing: border-box;
}


#aiMessageInput {
    flex: 1;

    min-width: 0;

    resize: none;

    border: none;
    outline: none;

    background: transparent;

    font-family: Arial, sans-serif;
    font-size: 13px;

    color: #45353d;
}


#aiMessageInput::placeholder {
    color: #ae9aa3;
}


.ai-send-button {
    width: 40px;
    height: 40px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    border: none;
    border-radius: 50%;

    background: #c73578;

    color: white;

    font-size: 17px;

    cursor: pointer;

    transition:
        transform 0.2s ease,
        background 0.2s ease;
}


.ai-send-button:hover {
    background: #ad3269;

    transform: scale(1.05);
}


.ai-send-button:disabled {
    opacity: 0.65;
    cursor: not-allowed;

    transform: none;
}


.ai-input-hint {
    margin: 7px 0 0 12px;

    font-size: 11px;

    color: #aa929d;
}


/* =========================================
   RIGHT SIDE PANEL
========================================= */

.ai-side-panel {
    display: flex;
    flex-direction: column;

    gap: 16px;

    width: 100%;
}


/* =========================================
   SIDE CARD
========================================= */

.ai-side-card {
    width: 100%;

    padding: 18px;

    background:
        linear-gradient(
            145deg,
            #fffdfd,
            #fff7fa
        );

    border: 1px solid #efd3df;
    border-radius: 18px;

    box-sizing: border-box;

    box-shadow:
        0 6px 18px
        rgba(156, 57, 101, 0.05);
}


.ai-side-card-title {
    display: flex;
    align-items: center;

    gap: 8px;
}


.ai-side-card-title h3 {
    margin: 0;

    font-size: 15px;
    font-weight: 700;

    color: #392b34;
}


.ai-side-icon {
    font-size: 20px;

    color: #cc3d7c;
}


.ai-heart {
    margin-left: auto;

    color: #d13e7d;

    font-size: 22px;
}


.ai-side-description {
    margin: 8px 0 15px;

    color: #806d76;

    font-size: 12px;
    line-height: 1.5;
}


/* =========================================
   FEELING GRID
========================================= */

.ai-feeling-grid {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 9px;
}


.ai-feeling-grid button {
    min-height: 72px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 6px;

    padding: 9px 5px;

    background: #fff5f8;

    border: 1px solid #f2d6e0;
    border-radius: 12px;

    color: #47343d;

    font-family: Arial, sans-serif;
    font-size: 12px;

    cursor: pointer;

    transition:
        transform 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease;
}


.ai-feeling-grid button span {
    font-size: 24px;
}


.ai-feeling-grid button:hover {
    transform: translateY(-2px);

    background: #ffe9f1;

    border-color: #e8aac4;
}


/* =========================================
   TRY ASKING
========================================= */

.ai-suggestion-list {
    display: flex;
    flex-direction: column;

    gap: 8px;
}


.ai-suggestion-button {
    width: 100%;

    padding: 10px 12px;

    text-align: left;

    background: #ffeaf2;

    border: none;
    border-radius: 12px;

    color: #ae3b70;

    font-family: Arial, sans-serif;
    font-size: 12px;

    cursor: pointer;

    transition:
        background 0.2s ease,
        transform 0.2s ease;
}


.ai-suggestion-button:hover {
    background: #ffdce9;

    transform: translateX(3px);
}


/* =========================================
   REMEMBER CARD
========================================= */

.ai-reminder-box {
    margin-top: 14px;

    padding: 14px;

    background:
        linear-gradient(
            135deg,
            #fff4e6,
            #fff8ed
        );

    border: 1px solid #f2dfc5;
    border-radius: 12px;
}


.ai-reminder-box p {
    display: flex;
    align-items: center;

    gap: 9px;

    margin: 0 0 10px;

    color: #5d4b4f;

    font-size: 12px;
}


.ai-reminder-box p:last-child {
    margin-bottom: 0;
}


.ai-reminder-box p span {
    color: #cc4b80;

    font-weight: 700;
}


/* =========================================
   THINKING / LISTENING BUBBLE
========================================= */

.ai-typing-bubble {
    opacity: 0.9;
}


.typing-dots {
    display: inline-block;

    letter-spacing: 2px;
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1150px) {

    .ai-support-layout {
        grid-template-columns:
            minmax(0, 1fr) 270px;
    }


    .ai-feeling-grid {
        grid-template-columns:
            repeat(2, 1fr);
    }

}


@media (max-width: 900px) {

    .ai-support-layout {
        grid-template-columns: 1fr;
    }


    .ai-side-panel {
        display: grid;

        grid-template-columns:
            repeat(2, 1fr);
    }


    .ai-remember-card {
        grid-column:
            1 / -1;
    }

}


@media (max-width: 650px) {

    .ai-side-panel {
        display: flex;
    }


    .ai-counsellor-heading {
        align-items: flex-start;
        flex-direction: column;
    }


    .ai-chat-container {
        height: 600px;
    }


    .ai-message-content {
        max-width: 85%;
    }


    .user-message-bubble {
        max-width: 80%;
    }


    .ai-feeling-grid {
        grid-template-columns:
            repeat(3, 1fr);
    }

}

/* =====================================================
   C.A.T.S DYNAMIC COPING SUGGESTION
   ===================================================== */

.ai-coping-card-row {
    width: calc(100% - 50px);
    margin: -10px 0 24px 50px;
    box-sizing: border-box;
}


.ai-coping-card {
    display: flex;
    align-items: center;
    gap: 15px;

    width: 100%;
    max-width: 675px;

    padding: 15px 18px;

    background: #ffffff;

    border: 1px solid #efd1dd;
    border-radius: 18px;

    box-sizing: border-box;

    box-shadow:
        0 8px 20px
        rgba(177, 61, 111, 0.06);
}


.ai-coping-icon {
    width: 52px;
    height: 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: #fff1f5;

    border-radius: 14px;

    font-size: 27px;
}


.ai-coping-info {
    flex: 1;
    min-width: 0;
}


.ai-coping-label {
    display: block;

    margin-bottom: 3px;

    color: #cc3f7b;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 1.2px;
}


.ai-coping-info h4 {
    margin: 0 0 4px;

    color: #31272c;

    font-size: 15px;
    font-weight: 700;
}


.ai-coping-info p {
    margin: 0;

    color: #806d76;

    font-size: 12px;
    line-height: 1.45;
}


.ai-coping-button {
    flex-shrink: 0;

    padding: 10px 18px;

    border: none;
    border-radius: 22px;

    background: #f3a4c3;

    color: #96355f;

    font-family: Arial, sans-serif;
    font-size: 12px;
    font-weight: 700;

    cursor: pointer;

    transition:
        transform 0.2s ease,
        background 0.2s ease;
}


.ai-coping-button:hover {
    background: #ed8db3;
    transform: translateY(-2px);
}


.ai-coping-button:active {
    transform: translateY(0);
}


/* MOBILE */

@media (max-width: 650px) {

    .ai-coping-card-row {
        width: 100%;
        margin:
            -8px 0 20px;
    }


    .ai-coping-card {
        align-items: flex-start;
        flex-wrap: wrap;

        max-width: 100%;
    }


    .ai-coping-button {
        width: 100%;
    }
}

.ai-heading-avatar img {
    width: 100%;
    height: 100%;

    object-fit: cover;
    border-radius: 50%;
}

.ai-message-avatar {
    padding: 0;
    overflow: hidden;
}

.ai-message-avatar img {
    width: 100%;
    height: 100%;
    display: block;

    object-fit: cover;
    border-radius: 50%;
}




/* =====================================================
   C.A.T.S USER PROFILE PAGE
   ===================================================== */


/* =========================================
   PROFILE PAGE
========================================= */

.profile-page {
    width: 100%;
    padding: 26px 0 40px;
    box-sizing: border-box;
}


/* =========================================
   PROFILE LAYOUT
========================================= */

.profile-layout {
    display: grid;
    grid-template-columns: 360px minmax(0, 1fr);
    gap: 24px;

    width: 100%;
    max-width: 1250px;
    margin: 0 auto;

    align-items: stretch;
}


/* =========================================
   LEFT PROFILE CARD
========================================= */

.profile-card {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: center;

    min-height: 560px;

    padding: 28px;

    background:
        linear-gradient(
            145deg,
            #fffdfd 0%,
            #fff6fa 100%
        );

    border: 1px solid #efd4df;
    border-radius: 22px;

    box-sizing: border-box;

    box-shadow:
        0 8px 24px
        rgba(172, 65, 111, 0.06);
}


/* =========================================
   PROFILE CARD HEADING
========================================= */

.profile-card-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    width: 100%;

    margin-bottom: 32px;
}


.profile-small-label {
    display: block;

    margin-bottom: 5px;

    color: #c8427c;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 1.5px;
}


.profile-card-heading h2 {
    margin: 0;

    color: #342930;

    font-size: 21px;
    font-weight: 700;
}


.profile-heart {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;

    background: #ffeaf2;

    color: #cc3f7b;

    border-radius: 50%;

    font-size: 22px;
}


/* =========================================
   PROFILE PICTURE
========================================= */

.profile-picture-wrapper {
    position: relative;

    width: 132px;
    height: 132px;

    margin: 4px auto 20px;
}


.profile-picture {
    width: 132px;
    height: 132px;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            #f8c2d7,
            #e993b6
        );

    border: 5px solid #ffffff;
    border-radius: 50%;

    box-sizing: border-box;

    box-shadow:
        0 8px 22px
        rgba(173, 62, 111, 0.16);
}


.profile-picture img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;
}


/* =========================================
   CAMERA BUTTON
========================================= */

.profile-camera-button {
    position: absolute;

    right: 0;
    bottom: 4px;

    width: 38px;
    height: 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    background: #c73d79;

    border: 3px solid white;
    border-radius: 50%;

    color: white;

    font-size: 15px;

    cursor: pointer;

    box-shadow:
        0 5px 12px
        rgba(166, 53, 105, 0.2);

    transition:
        transform 0.2s ease,
        background 0.2s ease;
}


.profile-camera-button:hover {
    background: #ad3269;

    transform: scale(1.07);
}


/* =========================================
   USER INFORMATION
========================================= */

.profile-user-info {
    width: 100%;

    text-align: center;

    margin-bottom: 18px;
}


.profile-user-info h3 {
    margin: 0 0 7px;

    color: #342930;

    font-size: 22px;
    font-weight: 700;
}


.profile-user-info p {
    margin: 0;

    color: #8d7882;

    font-size: 13px;

    word-break: break-word;
}


/* =========================================
   PROFILE MESSAGE
========================================= */

.profile-message {
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    width: 100%;

    margin: 8px 0 22px;

    padding: 11px 14px;

    background: #fff1f6;

    border: 1px solid #f3d5e1;
    border-radius: 12px;

    box-sizing: border-box;
}


.profile-message span {
    font-size: 17px;
}


.profile-message p {
    margin: 0;

    color: #806d76;

    font-size: 12px;
}


/* =========================================
   EDIT PROFILE BUTTON
========================================= */

.profile-edit-button {
    width: 100%;

    margin-top: auto;

    padding: 12px 18px;

    background: #c73d79;

    border: none;
    border-radius: 25px;

    color: white;

    font-family: Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;

    cursor: pointer;

    box-shadow:
        0 6px 15px
        rgba(183, 56, 111, 0.15);

    transition:
        transform 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
}


.profile-edit-button:hover {
    background: #ad3269;

    transform: translateY(-2px);

    box-shadow:
        0 9px 18px
        rgba(183, 56, 111, 0.2);
}


/* =====================================================
   ACCOUNT SETTINGS CARD
   ===================================================== */

.account-settings-card {
    min-width: 0;
    min-height: 560px;

    padding: 28px;

    background: #ffffff;

    border: 1px solid #efd4df;
    border-radius: 22px;

    box-sizing: border-box;

    box-shadow:
        0 8px 24px
        rgba(172, 65, 111, 0.06);
}


/* =========================================
   SETTINGS HEADING
========================================= */

.account-settings-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 24px;
}


.account-settings-heading h2 {
    margin: 0 0 7px;

    color: #342930;

    font-size: 21px;
    font-weight: 700;
}


.account-settings-heading p {
    margin: 0;

    color: #8b7881;

    font-size: 12px;
    line-height: 1.5;
}


.settings-decoration {
    width: 44px;
    height: 44px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: #ffeaf2;

    border-radius: 14px;

    font-size: 21px;
}


/* =========================================
   SETTING ITEMS
========================================= */

.account-setting-item {
    display: flex;
    align-items: center;

    gap: 14px;

    width: 100%;

    margin-bottom: 12px;
    padding: 15px 17px;

    background: #fff9fb;

    border: 1px solid #f0d7e1;
    border-radius: 15px;

    box-sizing: border-box;

    text-align: left;

    font-family: Arial, sans-serif;

    cursor: pointer;

    transition:
        transform 0.2s ease,
        background 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}


.account-setting-item:hover {
    background: #fff0f6;

    border-color: #e9b4c9;

    transform: translateX(3px);

    box-shadow:
        0 5px 13px
        rgba(177, 61, 111, 0.06);
}


/* =========================================
   SETTING ICON
========================================= */

.setting-icon {
    width: 43px;
    height: 43px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: #ffe7f0;

    border-radius: 12px;

    font-size: 19px;
}


/* =========================================
   SETTING TEXT
========================================= */

.setting-text {
    display: flex;
    flex: 1;
    flex-direction: column;

    min-width: 0;

    gap: 4px;
}


.setting-text strong {
    color: #44323b;

    font-size: 13px;
    font-weight: 700;
}


.setting-text small {
    color: #95818a;

    font-size: 11px;
    line-height: 1.4;
}


/* =========================================
   SETTING ARROW
========================================= */

.setting-arrow {
    flex-shrink: 0;

    margin-left: auto;

    color: #c3467d;

    font-size: 25px;
    font-weight: 400;

    transition:
        transform 0.2s ease;
}


.account-setting-item:hover
.setting-arrow {
    transform: translateX(3px);
}


/* =========================================
   DELETE ACCOUNT
========================================= */

.delete-setting-item {
    margin-top: 20px;

    background: #fff8f8;

    border-color: #f1d2d5;
}


.delete-setting-item
.setting-icon {
    background: #ffe8ea;
}


.delete-setting-item
.setting-text strong {
    color: #b84655;
}


.delete-setting-item
.setting-arrow {
    color: #c35a67;
}


.delete-setting-item:hover {
    background: #fff0f1;

    border-color: #eab7bd;
}


/* =========================================
   SECURITY NOTE
========================================= */

.account-security-note {
    display: flex;
    align-items: flex-start;

    gap: 10px;

    margin-top: 22px;
    padding: 14px 16px;

    background:
        linear-gradient(
            135deg,
            #fff8ec,
            #fffdf7
        );

    border: 1px solid #f1e1c9;
    border-radius: 13px;
}


.account-security-note span {
    flex-shrink: 0;

    font-size: 18px;
}


.account-security-note p {
    margin: 0;

    color: #76666b;

    font-size: 11px;
    line-height: 1.55;
}


/* =====================================================
   RESPONSIVE PROFILE PAGE
   ===================================================== */

@media (max-width: 1050px) {

    .profile-layout {
        grid-template-columns:
            320px minmax(0, 1fr);

        gap: 18px;
    }

}


@media (max-width: 850px) {

    .profile-layout {
        grid-template-columns: 1fr;
    }


    .profile-card,
    .account-settings-card {
        min-height: auto;
    }


    .profile-edit-button {
        margin-top: 20px;
    }

}


@media (max-width: 600px) {

    .profile-page {
        padding-top: 18px;
    }


    .profile-card,
    .account-settings-card {
        padding: 20px;
        border-radius: 18px;
    }


    .profile-picture-wrapper,
    .profile-picture {
        width: 115px;
        height: 115px;
    }


    .account-settings-heading {
        gap: 12px;
    }


    .account-setting-item {
        padding: 13px;
    }


    .setting-icon {
        width: 40px;
        height: 40px;
    }

}




/* =========================================
   PROFILE INITIAL AVATAR
========================================= */

.profile-picture {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;
}

.profile-initial {
    width: 100%;
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    background:
        linear-gradient(
            135deg,
            #f6bfd4,
            #e892b5
        );

    color: white;

    font-size: 48px;
    font-weight: 700;
    text-transform: uppercase;
}





/* =========================================================
   C.A.T.S ADMIN DASHBOARD
   ========================================================= */


/* =========================
   ADMIN MAIN AREA
   ========================= */

.admin-main {
    background:
        linear-gradient(
            135deg,
            #fff9fc 0%,
            #fff4f8 50%,
            #fffafd 100%
        );
    min-height: 100vh;
}


/* =========================
   ADMIN BADGE - SIDEBAR
   ========================= */

.admin-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    margin-top: 14px;
    padding: 7px 12px;

    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.2);

    border-radius: 20px;

    color: white;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.7px;
}


/* =========================
   ADMIN HEADER
   ========================= */

.admin-header-label {
    margin: 0 0 5px 0;

    color: #b94f7d;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 1.4px;
}


/* =========================
   ADMIN WELCOME CARD
   ========================= */

.admin-welcome-card {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-top: 25px;
    margin-bottom: 28px;

    padding: 28px 32px;

    background:
        linear-gradient(
            135deg,
            #f8d6e5,
            #fce8f0,
            #fff5f9
        );

    border: 1px solid #f3cada;
    border-radius: 22px;

    box-shadow:
        0 8px 25px rgba(174, 74, 118, 0.08);

    overflow: hidden;
}


.admin-welcome-card > div:first-child {
    display: flex;
    align-items: center;
    gap: 20px;
}


.admin-welcome-icon {
    width: 65px;
    height: 65px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: white;

    border-radius: 18px;

    font-size: 30px;

    box-shadow:
        0 5px 15px rgba(166, 67, 111, 0.12);
}


.admin-welcome-card small {
    color: #ad4a76;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 1.2px;
}


.admin-welcome-card h1 {
    margin: 5px 0 7px;

    color: #492337;

    font-size: 27px;
}


.admin-welcome-card p {
    margin: 0;

    max-width: 620px;

    color: #765768;

    font-size: 14px;
    line-height: 1.6;
}


.admin-welcome-decoration {
    position: absolute;

    right: 35px;
    top: 50%;

    transform: translateY(-50%);

    font-size: 50px;
    opacity: 0.55;
}


/* =========================
   SECTION TITLE
   ========================= */

.admin-main .dashboard-section-title {
    margin-top: 5px;
    margin-bottom: 15px;

    color: #492337;

    font-size: 18px;
}


/* =========================
   ADMIN STATISTICS
   ========================= */

.admin-stats-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 18px;

    margin-bottom: 32px;
}


.admin-stat-card {
    min-height: 125px;

    display: flex;
    align-items: center;

    gap: 17px;

    padding: 22px;

    background: white;

    border: 1px solid #f1dce5;
    border-radius: 18px;

    box-shadow:
        0 6px 20px rgba(113, 55, 81, 0.06);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.admin-stat-card:hover {
    transform: translateY(-3px);

    box-shadow:
        0 10px 25px rgba(113, 55, 81, 0.1);
}


.admin-stat-icon {
    width: 55px;
    height: 55px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: #fce8f1;

    border-radius: 16px;

    font-size: 25px;
}


.admin-stat-card small {
    color: #a16a82;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 1px;
}


.admin-stat-card h2 {
    margin: 4px 0 2px;

    color: #a64070;

    font-size: 29px;
}


.admin-stat-card p {
    margin: 0;

    color: #8a7480;

    font-size: 12px;
}


/* =========================
   MANAGEMENT GRID
   ========================= */

.admin-management-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 18px;

    margin-bottom: 28px;
}


.admin-management-card {
    position: relative;

    display: grid;

    grid-template-columns:
        55px 1fr;

    gap: 16px;

    min-height: 145px;

    padding: 23px;

    background: white;

    border: 1px solid #f0dce5;
    border-radius: 19px;

    box-shadow:
        0 6px 20px rgba(113, 55, 81, 0.055);

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}


.admin-management-card:hover {
    transform: translateY(-3px);

    border-color: #e9bdd0;

    box-shadow:
        0 10px 25px rgba(113, 55, 81, 0.09);
}


.admin-management-icon {
    width: 52px;
    height: 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #fceaf2;

    border-radius: 15px;

    font-size: 23px;
}


.admin-management-card h3 {
    margin: 2px 0 7px;

    color: #492337;

    font-size: 16px;
}


.admin-management-card p {
    margin: 0;

    max-width: 390px;

    color: #826c78;

    font-size: 13px;
    line-height: 1.5;
}


.admin-manage-button {
    grid-column: 2;

    width: fit-content;

    margin-top: 4px;

    padding: 8px 14px;

    background: #f9dbe8;

    border: none;
    border-radius: 10px;

    color: #9f3f6b;

    font-size: 12px;
    font-weight: 700;

    cursor: pointer;

    transition:
        background 0.2s ease,
        transform 0.2s ease;
}


.admin-manage-button:hover {
    background: #efc1d5;

    transform: translateX(2px);
}


/* =========================
   PRIVACY PANEL
   ========================= */

.admin-privacy-panel {
    display: flex;
    align-items: flex-start;

    gap: 15px;

    margin-top: 8px;
    margin-bottom: 30px;

    padding: 20px 22px;

    background: #fff;

    border: 1px solid #efdce5;
    border-left: 4px solid #b4537e;

    border-radius: 15px;

    box-shadow:
        0 5px 18px rgba(113, 55, 81, 0.05);
}


.admin-privacy-icon {
    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: #fce9f1;

    border-radius: 12px;

    font-size: 19px;
}


.admin-privacy-panel h3 {
    margin: 0 0 5px;

    color: #492337;

    font-size: 14px;
}


.admin-privacy-panel p {
    margin: 0;

    max-width: 800px;

    color: #826c78;

    font-size: 12px;
    line-height: 1.6;
}


/* =========================
   ADMIN AVATAR
   ========================= */

#adminAvatarLetter {
    background:
        linear-gradient(
            135deg,
            #b24d7a,
            #d678a1
        );

    color: white;

    font-weight: 700;

    box-shadow:
        0 4px 12px rgba(178, 77, 122, 0.2);
}


/* =========================
   RESPONSIVE
   ========================= */

@media (max-width: 1000px) {

    .admin-stats-grid {
        grid-template-columns: 1fr;
    }

    .admin-management-grid {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 700px) {

    .admin-welcome-card {
        padding: 22px;
    }

    .admin-welcome-decoration {
        display: none;
    }

    .admin-welcome-card > div:first-child {
        align-items: flex-start;
    }

    .admin-management-card {
        grid-template-columns: 45px 1fr;
    }

    .admin-management-icon {
        width: 45px;
        height: 45px;
    }

}





/* =========================================
   C.A.T.S ADMIN - USER MANAGEMENT
========================================= */


/* ---------- USER MANAGEMENT HERO ---------- */

.admin-users-hero {
    background: linear-gradient(
        135deg,
        #f8c8dc,
        #f4b6cf
    );
    border-radius: 24px;
    padding: 28px 32px;
    margin-bottom: 25px;
    box-shadow: 0 10px 25px rgba(145, 72, 108, 0.10);
}

.admin-users-hero > div {
    display: flex;
    align-items: center;
    gap: 18px;
}

.admin-users-hero-icon {
    width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.65);
    border-radius: 18px;
    font-size: 27px;
}

.admin-users-hero small {
    display: block;
    color: #8b5270;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.5px;
    margin-bottom: 5px;
}

.admin-users-hero h1 {
    margin: 0 0 5px;
    color: #58374a;
    font-size: 27px;
}

.admin-users-hero p {
    margin: 0;
    color: #79586a;
    font-size: 14px;
}


/* ---------- SEARCH + TOTAL USERS ---------- */

.admin-users-tools {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.admin-user-search {
    flex: 1;
    max-width: 520px;
    display: flex;
    align-items: center;
    gap: 10px;
    background: #ffffff;
    border: 1px solid #f1d5e1;
    border-radius: 14px;
    padding: 4px 15px;
    box-shadow: 0 5px 18px rgba(145, 72, 108, 0.06);
}

.admin-user-search span {
    font-size: 17px;
}

.admin-user-search input {
    width: 100%;
    border: none;
    outline: none;
    background: transparent;
    padding: 12px 0;
    font-size: 14px;
    color: #58374a;
    font-family: inherit;
}

.admin-user-search input::placeholder {
    color: #b99aaa;
}


/* ---------- USER COUNT ---------- */

.admin-user-count {
    min-width: 145px;
    background: #ffffff;
    border: 1px solid #f1d5e1;
    border-radius: 14px;
    padding: 10px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    box-shadow: 0 5px 18px rgba(145, 72, 108, 0.06);
}

.admin-user-count span {
    color: #8b6a7b;
    font-size: 12px;
    font-weight: 600;
}

.admin-user-count strong {
    color: #9d4f75;
    font-size: 22px;
}


/* ---------- TABLE CONTAINER ---------- */

.admin-users-section {
    background: #ffffff;
    border-radius: 20px;
    padding: 8px 0;
    margin-bottom: 25px;
    border: 1px solid #f2dce6;
    box-shadow: 0 8px 25px rgba(145, 72, 108, 0.07);
    overflow: hidden;
}

.admin-users-table-wrapper {
    width: 100%;
    overflow-x: auto;
}


/* ---------- TABLE ---------- */

.admin-users-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 650px;
}

.admin-users-table thead {
    background: #fff5f9;
}

.admin-users-table th {
    text-align: left;
    padding: 17px 22px;
    color: #80566b;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.7px;
    text-transform: uppercase;
    border-bottom: 1px solid #f1dbe5;
}

.admin-users-table td {
    padding: 17px 22px;
    color: #624b57;
    font-size: 14px;
    border-bottom: 1px solid #f7eaf0;
    vertical-align: middle;
}

.admin-users-table tbody tr {
    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.admin-users-table tbody tr:hover {
    background: #fff8fb;
}

.admin-users-table tbody tr:last-child td {
    border-bottom: none;
}


/* ---------- USER INFO ---------- */

.admin-user-info {
    display: flex;
    align-items: center;
    gap: 13px;
}

.admin-user-avatar {
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(
        135deg,
        #efb3cc,
        #d988ae
    );
    color: #ffffff;
    font-size: 16px;
    font-weight: 700;
    box-shadow: 0 4px 10px rgba(157, 79, 117, 0.15);
}

.admin-user-info strong {
    display: block;
    color: #58374a;
    font-size: 14px;
    margin-bottom: 3px;
}

.admin-user-info small {
    display: block;
    color: #ae8c9c;
    font-size: 11px;
}


/* ---------- ROLE BADGES ---------- */

.admin-role-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 68px;
    padding: 6px 12px;
    border-radius: 30px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.6px;
}

.admin-role-badge.user-role {
    background: #fce8f0;
    color: #9d4f75;
}

.admin-role-badge.admin-role {
    background: #eee4f7;
    color: #75528f;
}


/* ---------- LOADING ---------- */

.admin-users-loading {
    text-align: center !important;
    padding: 35px !important;
    color: #a78596 !important;
}


/* ---------- NO SEARCH RESULTS ---------- */

.admin-no-users {
    text-align: center;
    padding: 45px 20px;
}

.admin-no-users[hidden] {
    display: none;
}

.admin-no-users > div {
    font-size: 30px;
    margin-bottom: 8px;
}

.admin-no-users h3 {
    margin: 0 0 6px;
    color: #664759;
}

.admin-no-users p {
    margin: 0;
    color: #a18090;
    font-size: 13px;
}


/* ---------- RESPONSIVE ---------- */

@media (max-width: 768px) {

    .admin-users-tools {
        flex-direction: column;
        align-items: stretch;
    }

    .admin-user-search {
        max-width: none;
    }

    .admin-user-count {
        width: 100%;
    }

    .admin-users-hero {
        padding: 22px;
    }

    .admin-users-hero h1 {
        font-size: 23px;
    }
}





/* =========================================
   C.A.T.S ADMIN - MOOD OVERVIEW
========================================= */


/* ---------- MOOD HERO ---------- */

.admin-mood-hero {
    background: linear-gradient(
        135deg,
        #f8c8dc,
        #f4b6cf
    );
    border-radius: 24px;
    padding: 28px 32px;
    margin-bottom: 25px;
    box-shadow: 0 10px 25px rgba(145, 72, 108, 0.10);
}

.admin-mood-hero > div {
    display: flex;
    align-items: center;
    gap: 18px;
}

.admin-mood-hero-icon {
    width: 58px;
    height: 58px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.65);
    border-radius: 18px;
    font-size: 28px;
}

.admin-mood-hero small {
    display: block;
    color: #8b5270;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.5px;
    margin-bottom: 5px;
}

.admin-mood-hero h1 {
    margin: 0 0 5px;
    color: #58374a;
    font-size: 27px;
}

.admin-mood-hero p {
    margin: 0;
    color: #79586a;
    font-size: 14px;
}


/* ---------- SUMMARY CARDS ---------- */

.admin-mood-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 30px;
}

.admin-mood-summary-card {
    background: #ffffff;
    border: 1px solid #f2dce6;
    border-radius: 18px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
    box-shadow: 0 7px 22px rgba(145, 72, 108, 0.07);
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.admin-mood-summary-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 26px rgba(145, 72, 108, 0.11);
}

.admin-mood-summary-card > span {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff0f6;
    border-radius: 15px;
    font-size: 23px;
}

.admin-mood-summary-card small {
    display: block;
    color: #a17a8e;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.7px;
    margin-bottom: 4px;
}

.admin-mood-summary-card strong {
    display: block;
    color: #633f53;
    font-size: 21px;
}


/* ---------- DISTRIBUTION CARD ---------- */

.admin-mood-distribution {
    background: #ffffff;
    border: 1px solid #f2dce6;
    border-radius: 20px;
    padding: 25px;
    margin-bottom: 30px;
    box-shadow: 0 8px 25px rgba(145, 72, 108, 0.07);
}

.admin-mood-distribution-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 20px;
    margin-bottom: 5px;
    border-bottom: 1px solid #f7e7ee;
}

.admin-mood-distribution-header h3 {
    margin: 0 0 5px;
    color: #604052;
    font-size: 18px;
}

.admin-mood-distribution-header p {
    margin: 0;
    color: #a07e8e;
    font-size: 13px;
}

.admin-anonymous-badge {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    background: #fff0f6;
    color: #975371;
    padding: 7px 12px;
    border-radius: 30px;
    font-size: 11px;
    font-weight: 700;
}


/* ---------- MOOD ROW ---------- */

.admin-mood-row {
    padding: 18px 0;
    border-bottom: 1px solid #f8ebf1;
}

.admin-mood-row:last-child {
    border-bottom: none;
}

.admin-mood-row-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 9px;
}

.admin-mood-name {
    display: flex;
    align-items: center;
    gap: 9px;
}

.admin-mood-name span {
    font-size: 21px;
}

.admin-mood-name strong {
    color: #604052;
    font-size: 14px;
}

.admin-mood-number {
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.admin-mood-number strong {
    color: #8e4c6b;
    font-size: 16px;
}

.admin-mood-number small {
    color: #aa8798;
    font-size: 11px;
}


/* ---------- PROGRESS BAR ---------- */

.admin-mood-progress {
    width: calc(100% - 55px);
    height: 9px;
    background: #faedf3;
    border-radius: 30px;
    overflow: hidden;
    display: inline-block;
    vertical-align: middle;
}

.admin-mood-progress-fill {
    height: 100%;
    min-width: 0;
    background: linear-gradient(
        90deg,
        #e9a8c4,
        #c96f9a
    );
    border-radius: 30px;
    transition: width 0.6s ease;
}

.admin-mood-percentage {
    width: 45px;
    display: inline-block;
    text-align: right;
    color: #9d7488;
    font-size: 11px;
    font-weight: 600;
}


/* ---------- 8 MOOD CATEGORY CARDS ---------- */

.admin-mood-category-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.admin-mood-category-card {
    background: #ffffff;
    border: 1px solid #f2dce6;
    border-radius: 18px;
    padding: 20px 15px;
    text-align: center;
    box-shadow: 0 6px 20px rgba(145, 72, 108, 0.06);
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.admin-mood-category-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 9px 24px rgba(145, 72, 108, 0.11);
}

.admin-mood-category-card > span {
    display: block;
    font-size: 30px;
    margin-bottom: 8px;
}

.admin-mood-category-card strong {
    display: block;
    color: #604052;
    font-size: 14px;
    margin-bottom: 5px;
}

.admin-mood-category-card small {
    display: block;
    color: #a27f90;
    font-size: 11px;
}


/* ---------- LOADING ---------- */

.admin-mood-loading {
    padding: 35px 20px;
    text-align: center;
    color: #a27f90;
    font-size: 13px;
}


/* ---------- ERROR ---------- */

.admin-mood-error {
    margin-top: 20px;
    padding: 18px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: #fff4f6;
    border: 1px solid #f4d8e1;
    border-radius: 14px;
}

.admin-mood-error > span {
    font-size: 24px;
}

.admin-mood-error strong {
    display: block;
    color: #79495e;
    font-size: 13px;
    margin-bottom: 3px;
}

.admin-mood-error p {
    margin: 0;
    color: #a0798a;
    font-size: 12px;
}


/* ---------- RESPONSIVE ---------- */

@media (max-width: 1000px) {

    .admin-mood-summary {
        grid-template-columns: 1fr;
    }

    .admin-mood-category-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}


@media (max-width: 600px) {

    .admin-mood-hero {
        padding: 22px;
    }

    .admin-mood-hero h1 {
        font-size: 22px;
    }

    .admin-mood-distribution-header {
        flex-direction: column;
    }

    .admin-mood-category-grid {
        grid-template-columns: 1fr;
    }

    .admin-mood-summary-card strong {
        font-size: 18px;
    }
}





/* =========================================
   C.A.T.S ADMIN - JOURNAL OVERVIEW
========================================= */


/* ---------- JOURNAL HERO ---------- */

.admin-journal-hero {
    background: linear-gradient(
        135deg,
        #f8c8dc,
        #f4b6cf
    );
    border-radius: 24px;
    padding: 28px 32px;
    margin-bottom: 25px;
    box-shadow: 0 10px 25px rgba(145, 72, 108, 0.10);
}

.admin-journal-hero > div {
    display: flex;
    align-items: center;
    gap: 18px;
}

.admin-journal-hero-icon {
    width: 60px;
    height: 60px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.68);
    border-radius: 18px;
    font-size: 29px;
}

.admin-journal-hero small {
    display: block;
    color: #8b5270;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.5px;
    margin-bottom: 5px;
}

.admin-journal-hero h1 {
    margin: 0 0 6px;
    color: #58374a;
    font-size: 27px;
}

.admin-journal-hero p {
    margin: 0;
    color: #79586a;
    font-size: 14px;
    line-height: 1.6;
}


/* ---------- JOURNAL SUMMARY ---------- */

.admin-journal-summary {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 30px;
}

.admin-journal-summary-card {
    background: #ffffff;
    border: 1px solid #f2dce6;
    border-radius: 18px;
    padding: 21px;
    display: flex;
    align-items: center;
    gap: 15px;
    box-shadow: 0 7px 22px rgba(145, 72, 108, 0.07);
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.admin-journal-summary-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 26px rgba(145, 72, 108, 0.11);
}

.admin-journal-summary-card > span {
    width: 50px;
    height: 50px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff0f6;
    border-radius: 15px;
    font-size: 23px;
}

.admin-journal-summary-card small {
    display: block;
    color: #a17a8e;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.7px;
    margin-bottom: 4px;
}

.admin-journal-summary-card strong {
    display: block;
    color: #633f53;
    font-size: 23px;
    margin-bottom: 3px;
}

.admin-journal-summary-card p {
    margin: 0;
    color: #aa8798;
    font-size: 11px;
}


/* ---------- PRIVACY CARD ---------- */

.admin-journal-privacy-card {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 22px;
    background: linear-gradient(
        135deg,
        #fff7fa,
        #fff0f6
    );
    border: 1px solid #f1d5e1;
    border-radius: 22px;
    padding: 28px;
    margin-bottom: 25px;
    box-shadow: 0 8px 24px rgba(145, 72, 108, 0.06);
}

.admin-journal-privacy-card::after {
    content: "♡";
    position: absolute;
    right: 25px;
    top: -20px;
    font-size: 100px;
    color: rgba(221, 145, 178, 0.10);
    pointer-events: none;
}

.admin-journal-lock {
    width: 66px;
    height: 66px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffffff;
    border: 1px solid #f2dce6;
    border-radius: 20px;
    font-size: 29px;
    box-shadow: 0 6px 18px rgba(145, 72, 108, 0.08);
}

.admin-journal-privacy-card small {
    display: block;
    color: #a15f7d;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.admin-journal-privacy-card h2 {
    margin: 0 0 7px;
    color: #5d3d4f;
    font-size: 19px;
}

.admin-journal-privacy-card p {
    max-width: 720px;
    margin: 0;
    color: #8c6b7b;
    font-size: 13px;
    line-height: 1.7;
}


/* ---------- ACCESS CARDS ---------- */

.admin-journal-access-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
    margin-bottom: 30px;
}

.admin-journal-access-card {
    background: #ffffff;
    border: 1px solid #f2dce6;
    border-radius: 18px;
    padding: 22px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    box-shadow: 0 7px 22px rgba(145, 72, 108, 0.06);
}

.admin-journal-access-card.allowed {
    border-top: 3px solid #e7a9c3;
}

.admin-journal-access-card.protected {
    border-top: 3px solid #c987a7;
}

.admin-journal-access-icon {
    width: 45px;
    height: 45px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff0f6;
    border-radius: 14px;
    color: #9d4f75;
    font-size: 20px;
    font-weight: 700;
}

.admin-journal-access-card small {
    display: block;
    color: #a27b8e;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.8px;
    margin-bottom: 4px;
}

.admin-journal-access-card h3 {
    margin: 0 0 6px;
    color: #604052;
    font-size: 15px;
}

.admin-journal-access-card p {
    margin: 0;
    color: #987788;
    font-size: 12px;
    line-height: 1.6;
}


/* ---------- HOVER ---------- */

.admin-journal-access-card {
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.admin-journal-access-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 26px rgba(145, 72, 108, 0.10);
}


/* ---------- RESPONSIVE ---------- */

@media (max-width: 1000px) {

    .admin-journal-summary {
        grid-template-columns: 1fr;
    }

    .admin-journal-access-grid {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 600px) {

    .admin-journal-hero {
        padding: 22px;
    }

    .admin-journal-hero > div {
        align-items: flex-start;
    }

    .admin-journal-hero h1 {
        font-size: 22px;
    }

    .admin-journal-privacy-card {
        flex-direction: column;
        align-items: flex-start;
        padding: 22px;
    }

    .admin-journal-summary-card {
        padding: 18px;
    }

    .admin-journal-access-card {
        padding: 18px;
    }
}





/* =========================================
   C.A.T.S ADMIN - MONTHLY JOURNAL ACTIVITY
========================================= */


/* ---------- MONTHLY ACTIVITY CONTAINER ---------- */

.admin-journal-monthly {
    background: #ffffff;
    border: 1px solid #f2dce6;
    border-radius: 20px;
    padding: 25px;
    margin-bottom: 30px;
    box-shadow: 0 8px 25px rgba(145, 72, 108, 0.07);
}


/* ---------- HEADER ---------- */

.admin-journal-monthly-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;

    padding-bottom: 20px;
    margin-bottom: 5px;

    border-bottom: 1px solid #f7e7ee;
}

.admin-journal-monthly-header small {
    display: block;

    color: #a15f7d;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;

    margin-bottom: 5px;
}

.admin-journal-monthly-header h3 {
    margin: 0 0 5px;

    color: #604052;

    font-size: 18px;
}

.admin-journal-monthly-header p {
    margin: 0;

    color: #a07e8e;

    font-size: 13px;
}


/* ---------- MONTHLY LIST ---------- */

.admin-journal-monthly-list {
    width: 100%;
}


/* ---------- EACH MONTH ---------- */

.admin-journal-month-row {
    padding: 18px 0;

    border-bottom: 1px solid #f8ebf1;
}

.admin-journal-month-row:last-child {
    border-bottom: none;
}


/* ---------- MONTH INFORMATION ---------- */

.admin-journal-month-info {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 10px;
}

.admin-journal-month-name {
    color: #604052;

    font-size: 14px;
    font-weight: 600;
}


/* ---------- ENTRY COUNT ---------- */

.admin-journal-month-count {
    display: flex;
    align-items: baseline;

    gap: 5px;
}

.admin-journal-month-count strong {
    color: #8e4c6b;

    font-size: 16px;
}

.admin-journal-month-count small {
    color: #aa8798;

    font-size: 11px;
}


/* ---------- PROGRESS BAR ---------- */

.admin-journal-month-progress {
    width: 100%;
    height: 10px;

    overflow: hidden;

    background: #faedf3;

    border-radius: 30px;
}

.admin-journal-month-progress-fill {
    height: 100%;

    background: linear-gradient(
        90deg,
        #efb3cc,
        #d988ae
    );

    border-radius: 30px;

    transition: width 0.6s ease;
}


/* ---------- MONTH HOVER ---------- */

.admin-journal-month-row {
    transition:
        padding-left 0.2s ease,
        padding-right 0.2s ease;
}

.admin-journal-month-row:hover {
    padding-left: 8px;
    padding-right: 8px;
}


/* ---------- LOADING ---------- */

.admin-journal-monthly-loading {
    padding: 35px 20px;

    text-align: center;

    color: #a27f90;

    font-size: 13px;
}


/* ---------- EMPTY STATE ---------- */

.admin-journal-monthly-empty {
    padding: 35px 20px;

    text-align: center;

    color: #a27f90;

    font-size: 13px;

    background: #fff9fb;

    border-radius: 14px;

    margin-top: 15px;
}


/* ---------- ERROR ---------- */

.admin-journal-monthly-error {
    display: flex;
    align-items: center;

    gap: 13px;

    margin-top: 18px;
    padding: 18px;

    background: #fff4f6;

    border: 1px solid #f4d8e1;

    border-radius: 14px;
}

.admin-journal-monthly-error > span {
    font-size: 24px;
}

.admin-journal-monthly-error strong {
    display: block;

    color: #79495e;

    font-size: 13px;

    margin-bottom: 3px;
}

.admin-journal-monthly-error p {
    margin: 0;

    color: #a0798a;

    font-size: 12px;
}


/* ---------- RESPONSIVE ---------- */

@media (max-width: 600px) {

    .admin-journal-monthly {
        padding: 20px;
    }

    .admin-journal-monthly-header {
        flex-direction: column;
    }

    .admin-journal-month-info {
        gap: 10px;
    }

    .admin-journal-month-name {
        font-size: 13px;
    }

    .admin-journal-month-count strong {
        font-size: 14px;
    }

}





/* =========================================================
   C.A.T.S ADMIN - ARTICLE MANAGEMENT
========================================================= */


/* =========================
   ARTICLE HERO
========================= */

.admin-article-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;

    margin-bottom: 28px;
    padding: 28px 30px;

    background:
        linear-gradient(
            135deg,
            #fff0f7,
            #ffe0ef
        );

    border: 1px solid #f6c6dc;
    border-radius: 24px;

    box-shadow:
        0 8px 24px rgba(193, 94, 138, 0.08);
}


.admin-article-hero > div {
    display: flex;
    align-items: center;
    gap: 20px;
}


.admin-article-hero-icon {
    width: 68px;
    height: 68px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    font-size: 32px;

    background: #ffffff;

    border-radius: 20px;

    box-shadow:
        0 6px 18px rgba(193, 94, 138, 0.12);
}


.admin-article-hero small {
    display: block;

    margin-bottom: 5px;

    color: #b24f7a;

    font-size: 11px;
    font-weight: 800;

    letter-spacing: 1.4px;
}


.admin-article-hero h1 {
    margin: 0 0 6px;

    color: #53263a;

    font-size: 26px;
}


.admin-article-hero p {
    margin: 0;

    color: #80606e;

    line-height: 1.6;
}


/* =========================
   ADD ARTICLE BUTTON
========================= */

.admin-add-article-button {
    flex-shrink: 0;

    padding: 13px 20px;

    border: none;
    border-radius: 14px;

    background:
        linear-gradient(
            135deg,
            #e96b9e,
            #c94f82
        );

    color: #ffffff;

    font-size: 14px;
    font-weight: 700;

    cursor: pointer;

    box-shadow:
        0 7px 18px rgba(201, 79, 130, 0.22);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.admin-add-article-button:hover {
    transform: translateY(-2px);

    box-shadow:
        0 10px 22px rgba(201, 79, 130, 0.28);
}


/* =========================
   ARTICLE TOOLS
========================= */

.admin-article-tools {
    display: flex;
    align-items: center;

    gap: 14px;

    margin-bottom: 24px;
}


.admin-article-search {
    flex: 1;

    display: flex;
    align-items: center;

    gap: 10px;

    padding: 0 16px;

    min-height: 48px;

    background: #ffffff;

    border: 1px solid #ead4de;
    border-radius: 14px;
}


.admin-article-search span {
    font-size: 16px;
}


.admin-article-search input {
    width: 100%;

    border: none;
    outline: none;

    background: transparent;

    color: #533442;

    font-family: inherit;
    font-size: 14px;
}


.admin-article-search input::placeholder {
    color: #b59ba6;
}


.admin-article-category-filter {
    min-height: 48px;

    padding: 0 40px 0 15px;

    border: 1px solid #ead4de;
    border-radius: 14px;

    background: #ffffff;

    color: #60414e;

    font-family: inherit;
    font-size: 14px;

    cursor: pointer;
    outline: none;
}


.admin-article-count {
    min-width: 110px;

    padding: 13px 16px;

    text-align: center;

    background: #fff1f7;

    border: 1px solid #f1cadb;
    border-radius: 14px;

    color: #86556a;

    font-size: 13px;
    font-weight: 600;
}


.admin-article-count span {
    margin-right: 3px;

    color: #c64f82;

    font-size: 16px;
    font-weight: 800;
}


/* =========================
   ARTICLE SECTION
========================= */

.admin-article-section {
    margin-bottom: 26px;
    padding: 25px;

    background: #ffffff;

    border: 1px solid #f0dce5;
    border-radius: 22px;

    box-shadow:
        0 7px 22px rgba(104, 57, 78, 0.06);
}


.admin-article-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 22px;
}


.admin-article-section-header small {
    display: block;

    margin-bottom: 4px;

    color: #bc6288;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 1.2px;
}


.admin-article-section-header h3 {
    margin: 0;

    color: #523340;

    font-size: 20px;
}


.admin-article-trusted-badge {
    padding: 8px 13px;

    background: #fff0f6;

    border: 1px solid #f3cada;
    border-radius: 999px;

    color: #b44d79;

    font-size: 12px;
    font-weight: 700;
}


/* =========================
   ARTICLE LIST
========================= */

.admin-articles-list {
    display: flex;
    flex-direction: column;

    gap: 14px;
}


.admin-article-card {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 22px;

    padding: 20px;

    background:
        linear-gradient(
            135deg,
            #fffafd,
            #fff5f9
        );

    border: 1px solid #f1dbe5;
    border-radius: 18px;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}


.admin-article-card:hover {
    transform: translateY(-2px);

    border-color: #edbfd3;

    box-shadow:
        0 8px 20px rgba(173, 86, 125, 0.09);
}


.admin-article-card-main {
    flex: 1;

    display: flex;
    align-items: flex-start;

    gap: 17px;

    min-width: 0;
}


.admin-article-card-icon {
    width: 52px;
    height: 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: #ffffff;

    border: 1px solid #f1d5e1;
    border-radius: 15px;

    font-size: 25px;
}


.admin-article-card-content {
    min-width: 0;
}


.admin-article-card-top {
    margin-bottom: 6px;
}


.admin-article-category {
    display: inline-block;

    padding: 5px 10px;

    background: #ffe5f0;

    border-radius: 999px;

    color: #b94e7c;

    font-size: 10px;
    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 0.5px;
}


.admin-article-card-content h3 {
    margin: 0 0 7px;

    color: #50313e;

    font-size: 17px;
    line-height: 1.4;
}


.admin-article-description {
    max-width: 750px;

    margin: 0 0 9px;

    color: #806773;

    font-size: 13px;
    line-height: 1.6;
}


.admin-article-source {
    margin-bottom: 9px;

    color: #8c6c79;

    font-size: 12px;
}


.admin-article-source strong {
    color: #644451;
}


.admin-article-meta {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;
}


.admin-article-meta span {
    padding: 5px 9px;

    background: #ffffff;

    border: 1px solid #f0dce5;
    border-radius: 9px;

    color: #987181;

    font-size: 11px;
}


/* =========================
   ARTICLE ACTION BUTTONS
========================= */

.admin-article-card-actions {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-shrink: 0;
}


.admin-article-card-actions button {
    padding: 9px 12px;

    border-radius: 10px;

    font-family: inherit;
    font-size: 12px;
    font-weight: 700;

    cursor: pointer;

    transition:
        transform 0.2s ease,
        background 0.2s ease;
}


.admin-article-card-actions button:hover {
    transform: translateY(-1px);
}


.admin-article-open-button {
    background: #ffffff;

    border: 1px solid #e6cbd7;

    color: #8d5c71;
}


.admin-article-open-button:hover {
    background: #fff4f8;
}


.admin-article-edit-button {
    background: #ffe4ef;

    border: 1px solid #f0bed3;

    color: #b44373;
}


.admin-article-edit-button:hover {
    background: #ffd7e8;
}


.admin-article-delete-button {
    background: #fff1f3;

    border: 1px solid #f0c8ce;

    color: #c65362;
}


.admin-article-delete-button:hover {
    background: #ffe3e7;
}


/* =========================
   LOADING / EMPTY / ERROR
========================= */

.admin-articles-loading,
.admin-articles-error {
    padding: 35px 20px;

    text-align: center;

    color: #a17b8b;

    font-size: 14px;
}


.admin-articles-error {
    color: #bd5967;
}


.admin-no-articles {
    padding: 42px 20px;

    text-align: center;

    color: #8b6b78;
}


.admin-no-articles > div {
    margin-bottom: 10px;

    font-size: 32px;
}


.admin-no-articles h3 {
    margin: 0 0 5px;

    color: #5d3d4a;
}


.admin-no-articles p {
    margin: 0;

    font-size: 13px;
}


/* =========================================================
   ARTICLE MODAL
========================================================= */

.admin-article-modal {
    position: fixed;

    inset: 0;

    z-index: 9999;

    display: none;
    align-items: center;
    justify-content: center;

    padding: 25px;

    background:
        rgba(66, 34, 48, 0.45);

    backdrop-filter: blur(4px);
}


.admin-article-modal.show {
    display: flex;
}


.admin-article-modal-content {
    width: 100%;
    max-width: 650px;

    max-height: 90vh;

    overflow-y: auto;

    padding: 28px;

    background: #ffffff;

    border: 1px solid #f0d5e1;
    border-radius: 24px;

    box-shadow:
        0 20px 60px rgba(73, 38, 53, 0.22);
}


/* =========================
   MODAL HEADER
========================= */

.admin-article-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;

    margin-bottom: 25px;
}


.admin-article-modal-header small {
    display: block;

    margin-bottom: 4px;

    color: #c05c87;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 1.3px;
}


.admin-article-modal-header h2 {
    margin: 0;

    color: #50303e;

    font-size: 22px;
}


.admin-article-modal-close {
    width: 36px;
    height: 36px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    border: none;
    border-radius: 50%;

    background: #fff0f6;

    color: #ae567a;

    font-size: 24px;
    line-height: 1;

    cursor: pointer;
}


.admin-article-modal-close:hover {
    background: #ffe1ed;
}


/* =========================
   ARTICLE FORM
========================= */

.admin-article-form-group {
    margin-bottom: 18px;
}


.admin-article-form-group label {
    display: block;

    margin-bottom: 7px;

    color: #60404d;

    font-size: 13px;
    font-weight: 700;
}


.admin-article-form-group input,
.admin-article-form-group select,
.admin-article-form-group textarea {
    width: 100%;

    box-sizing: border-box;

    padding: 12px 14px;

    border: 1px solid #e8ceda;
    border-radius: 12px;

    background: #fffafd;

    color: #523641;

    font-family: inherit;
    font-size: 14px;

    outline: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}


.admin-article-form-group textarea {
    resize: vertical;

    min-height: 100px;
}


.admin-article-form-group input:focus,
.admin-article-form-group select:focus,
.admin-article-form-group textarea:focus {
    border-color: #df8caf;

    box-shadow:
        0 0 0 3px rgba(223, 140, 175, 0.12);
}


.admin-article-form-group small {
    display: block;

    margin-top: 6px;

    color: #aa8c98;

    font-size: 11px;
}


/* =========================
   FORM MESSAGE
========================= */

.admin-article-form-message {
    display: none;

    margin-bottom: 16px;
    padding: 11px 13px;

    border-radius: 11px;

    font-size: 12px;
    font-weight: 600;
}


.admin-article-form-message.success {
    display: block;

    background: #edf9f1;

    border: 1px solid #ccebd6;

    color: #4b8460;
}


.admin-article-form-message.error {
    display: block;

    background: #fff0f2;

    border: 1px solid #f0c8ce;

    color: #b34e5d;
}


/* =========================
   FORM ACTIONS
========================= */

.admin-article-form-actions {
    display: flex;
    justify-content: flex-end;

    gap: 10px;

    margin-top: 25px;
}


.admin-article-cancel-button,
.admin-article-save-button,
.admin-delete-confirm-button {
    padding: 11px 18px;

    border-radius: 11px;

    font-family: inherit;
    font-size: 13px;
    font-weight: 700;

    cursor: pointer;
}


.admin-article-cancel-button {
    background: #ffffff;

    border: 1px solid #dfc7d1;

    color: #765462;
}


.admin-article-cancel-button:hover {
    background: #fff7fa;
}


.admin-article-save-button {
    border: none;

    background:
        linear-gradient(
            135deg,
            #e96b9e,
            #c94f82
        );

    color: #ffffff;

    box-shadow:
        0 6px 16px rgba(201, 79, 130, 0.2);
}


.admin-article-save-button:hover {
    transform: translateY(-1px);
}


.admin-article-save-button:disabled,
.admin-delete-confirm-button:disabled {
    opacity: 0.6;

    cursor: not-allowed;
}


/* =========================================================
   DELETE ARTICLE MODAL
========================================================= */

.admin-delete-article-box {
    width: 100%;
    max-width: 420px;

    padding: 34px;

    text-align: center;

    background: #ffffff;

    border: 1px solid #f0d5df;
    border-radius: 24px;

    box-shadow:
        0 20px 60px rgba(73, 38, 53, 0.22);
}


.admin-delete-article-icon {
    width: 65px;
    height: 65px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 auto 17px;

    background: #fff0f2;

    border-radius: 20px;

    font-size: 28px;
}


.admin-delete-article-box h2 {
    margin: 0 0 9px;

    color: #573744;

    font-size: 22px;
}


.admin-delete-article-box p {
    max-width: 330px;

    margin: 0 auto 24px;

    color: #8a6b78;

    font-size: 13px;
    line-height: 1.6;
}


.admin-delete-article-actions {
    display: flex;
    justify-content: center;

    gap: 10px;
}


.admin-delete-confirm-button {
    border: none;

    background: #d85f70;

    color: #ffffff;
}


.admin-delete-confirm-button:hover {
    background: #c94e60;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1000px) {

    .admin-article-card {
        align-items: flex-start;
        flex-direction: column;
    }


    .admin-article-card-actions {
        width: 100%;

        justify-content: flex-end;
    }

}


@media (max-width: 800px) {

    .admin-article-hero {
        align-items: flex-start;
        flex-direction: column;
    }


    .admin-add-article-button {
        width: 100%;
    }


    .admin-article-tools {
        align-items: stretch;
        flex-direction: column;
    }


    .admin-article-category-filter {
        width: 100%;
    }


    .admin-article-count {
        width: 100%;

        box-sizing: border-box;
    }

}


@media (max-width: 600px) {

    .admin-article-hero {
        padding: 22px;
    }


    .admin-article-hero > div {
        align-items: flex-start;
    }


    .admin-article-hero-icon {
        width: 55px;
        height: 55px;

        font-size: 25px;
    }


    .admin-article-section {
        padding: 18px;
    }


    .admin-article-section-header {
        align-items: flex-start;
        flex-direction: column;
    }


    .admin-article-card-main {
        flex-direction: column;
    }


    .admin-article-card-actions {
        display: grid;

        grid-template-columns:
            repeat(3, 1fr);
    }


    .admin-article-card-actions button {
        width: 100%;
    }


    .admin-article-modal {
        padding: 12px;
    }


    .admin-article-modal-content {
        padding: 22px;

        border-radius: 20px;
    }


    .admin-article-form-actions {
        flex-direction: column-reverse;
    }


    .admin-article-form-actions button {
        width: 100%;
    }


    .admin-delete-article-actions {
        flex-direction: column-reverse;
    }


    .admin-delete-article-actions button {
        width: 100%;
    }

}





/* =========================================================
   C.A.T.S ADMIN - ADMIN PROFILE
========================================================= */


/* =========================
   PROFILE HERO
========================= */

.admin-profile-hero {
    display: flex;
    align-items: center;
    gap: 24px;

    margin-bottom: 28px;
    padding: 30px;

    background:
        linear-gradient(
            135deg,
            #fff0f7,
            #ffe1ef
        );

    border: 1px solid #f3c8da;
    border-radius: 24px;

    box-shadow:
        0 8px 24px rgba(193, 94, 138, 0.08);
}


.admin-profile-large-avatar {
    position: relative;

    width: 90px;
    height: 90px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background:
        linear-gradient(
            135deg,
            #ef8eb5,
            #c94f82
        );

    border: 5px solid #ffffff;
    border-radius: 50%;

    color: #ffffff;

    font-size: 36px;
    font-weight: 800;

    box-shadow:
        0 8px 20px rgba(190, 74, 123, 0.22);
}


.admin-profile-crown {
    position: absolute;

    right: -5px;
    bottom: -2px;

    width: 32px;
    height: 32px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #ffffff;

    border: 2px solid #f5cfdf;
    border-radius: 50%;

    font-size: 15px;
}


.admin-profile-hero-info small {
    display: block;

    margin-bottom: 5px;

    color: #b34f79;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 1.4px;
}


.admin-profile-hero-info h1 {
    margin: 0 0 5px;

    color: #522f3e;

    font-size: 28px;
}


.admin-profile-hero-info p {
    margin: 0 0 12px;

    color: #866775;

    font-size: 14px;
}


.admin-profile-role-badge {
    display: inline-block;

    padding: 7px 12px;

    background: #ffffff;

    border: 1px solid #edc2d4;
    border-radius: 999px;

    color: #b04d77;

    font-size: 11px;
    font-weight: 800;
}


/* =========================
   PROFILE GRID
========================= */

.admin-profile-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 22px;

    margin-bottom: 25px;
}


/* =========================
   PROFILE CARDS
========================= */

.admin-profile-card {
    padding: 26px;

    background: #ffffff;

    border: 1px solid #efdae4;
    border-radius: 22px;

    box-shadow:
        0 7px 22px rgba(104, 57, 78, 0.06);
}


.admin-profile-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 15px;

    margin-bottom: 24px;
}


.admin-profile-card-header small {
    display: block;

    margin-bottom: 4px;

    color: #bc6288;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 1.2px;
}


.admin-profile-card-header h3 {
    margin: 0;

    color: #523340;

    font-size: 20px;
}


.admin-profile-card-header > span {
    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: #fff0f6;

    border-radius: 13px;

    font-size: 20px;
}


/* =========================
   PROFILE FORM
========================= */

.admin-profile-form-group {
    margin-bottom: 19px;
}


.admin-profile-form-group label {
    display: block;

    margin-bottom: 7px;

    color: #60404d;

    font-size: 13px;
    font-weight: 700;
}


.admin-profile-form-group input {
    width: 100%;

    box-sizing: border-box;

    padding: 12px 14px;

    border: 1px solid #e8ceda;
    border-radius: 12px;

    background: #fffafd;

    color: #523641;

    font-family: inherit;
    font-size: 14px;

    outline: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}


.admin-profile-form-group input:focus {
    border-color: #df8caf;

    box-shadow:
        0 0 0 3px rgba(223, 140, 175, 0.12);
}


.admin-profile-form-group input:disabled {
    background: #f8f3f5;

    color: #9d858f;

    cursor: not-allowed;
}


.admin-profile-form-group small {
    display: block;

    margin-top: 6px;

    color: #a98b97;

    font-size: 11px;
    line-height: 1.5;
}


/* =========================
   ROLE FIELD
========================= */

.admin-profile-role-field {
    padding: 12px 14px;

    background:
        linear-gradient(
            135deg,
            #fff2f7,
            #ffe8f1
        );

    border: 1px solid #efcada;
    border-radius: 12px;

    color: #b04e78;

    font-size: 13px;
    font-weight: 800;
}


/* =========================
   SAVE BUTTON
========================= */

.admin-profile-save-button {
    width: 100%;

    margin-top: 5px;
    padding: 12px 18px;

    border: none;
    border-radius: 12px;

    background:
        linear-gradient(
            135deg,
            #e96b9e,
            #c94f82
        );

    color: #ffffff;

    font-family: inherit;
    font-size: 13px;
    font-weight: 700;

    cursor: pointer;

    box-shadow:
        0 6px 16px rgba(201, 79, 130, 0.2);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.admin-profile-save-button:hover {
    transform: translateY(-1px);

    box-shadow:
        0 8px 20px rgba(201, 79, 130, 0.25);
}


.admin-profile-save-button:disabled {
    opacity: 0.6;

    cursor: not-allowed;

    transform: none;
}


/* =========================
   PROFILE MESSAGE
========================= */

.admin-profile-message {
    display: none;

    margin-bottom: 15px;
    padding: 11px 13px;

    border-radius: 11px;

    font-size: 12px;
    font-weight: 600;
}


.admin-profile-message.success {
    display: block;

    background: #edf9f1;

    border: 1px solid #ccebd6;

    color: #4b8460;
}


.admin-profile-message.error {
    display: block;

    background: #fff0f2;

    border: 1px solid #f0c8ce;

    color: #b34e5d;
}


/* =========================
   SECURITY LIST
========================= */

.admin-profile-security-list {
    display: flex;
    flex-direction: column;

    gap: 13px;
}


.admin-profile-security-item {
    display: flex;
    align-items: flex-start;

    gap: 14px;

    padding: 16px;

    background:
        linear-gradient(
            135deg,
            #fffafd,
            #fff5f9
        );

    border: 1px solid #f0dce5;
    border-radius: 15px;
}


.admin-profile-security-icon {
    width: 40px;
    height: 40px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: #ffffff;

    border: 1px solid #efd4df;
    border-radius: 12px;

    font-size: 18px;
}


.admin-profile-security-item h4 {
    margin: 0 0 4px;

    color: #5b3947;

    font-size: 13px;
}


.admin-profile-security-item p {
    margin: 0;

    color: #8d6f7b;

    font-size: 12px;
    line-height: 1.55;

    overflow-wrap: anywhere;
}


/* =========================
   ADMIN ACCESS PANEL
========================= */

.admin-profile-access {
    display: flex;
    align-items: flex-start;

    gap: 17px;

    margin-bottom: 22px;
    padding: 22px 24px;

    background:
        linear-gradient(
            135deg,
            #fff4f8,
            #ffebf3
        );

    border: 1px solid #f1cedd;
    border-radius: 19px;
}


.admin-profile-access-icon {
    width: 48px;
    height: 48px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    background: #ffffff;

    border-radius: 14px;

    font-size: 22px;
}


.admin-profile-access small {
    display: block;

    margin-bottom: 3px;

    color: #bc5a83;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 1.1px;
}


.admin-profile-access h3 {
    margin: 0 0 6px;

    color: #573643;

    font-size: 17px;
}


.admin-profile-access p {
    max-width: 850px;

    margin: 0;

    color: #866875;

    font-size: 12px;
    line-height: 1.65;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 950px) {

    .admin-profile-grid {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 650px) {

    .admin-profile-hero {
        align-items: flex-start;
        flex-direction: column;

        padding: 23px;
    }


    .admin-profile-large-avatar {
        width: 75px;
        height: 75px;

        font-size: 30px;
    }


    .admin-profile-hero-info h1 {
        font-size: 23px;
    }


    .admin-profile-card {
        padding: 20px;
    }


    .admin-profile-access {
        flex-direction: column;
    }

}