@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&display=swap');

:root {
    --primary-teal: #008577; --primary-orange: #FF6801; --accent-yellow: #FFAE00;
    --dark-teal: #006157; --light-neutral: #FFF6EB; --text-dark: #333333;
    --text-light: #FFFFFF; --background-white: #FFFFFF; --border-color: #e0e0e0;
    --font-main: 'Poppins', sans-serif;
    --space-1: 8px; --space-2: 16px; --space-3: 24px; --space-4: 32px; --space-5: 40px; --space-6: 48px;
}

/* --- Main Plugin Container --- */
.mnm-course-container { 
    font-family: var(--font-main); 
    color: var(--text-dark); 
    line-height: 1.6;
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-6) var(--space-3);
    box-sizing: border-box;
}

/* --- Typography --- */
.mnm-course-container h1, .mnm-course-container h2, .mnm-course-container h3, .mnm-course-container h4 { 
    font-family: var(--font-main); 
    font-weight: 700;
}
.mnm-course-container h1 { font-size: clamp(2.5rem, 5vw, 3.5rem); }
.mnm-course-container h2 { font-size: clamp(1.8rem, 4vw, 2.25rem); }
.mnm-course-container h3 { font-size: 1.5rem; }
.mnm-course-container h4 { font-size: 1.25rem; }

/* --- Hero Section --- */
.mnm-course-hero {
    padding: var(--space-5); 
    background-color: var(--dark-teal); 
    color: var(--text-light);
    border-radius: 8px;
    margin-bottom: var(--space-5);
}
.mnm-course-hero h1 { color: var(--text-light); margin-top: 0; margin-bottom: var(--space-2); }
.mnm-course-hero p { font-size: 1.1rem; max-width: 800px; opacity: 0.9; font-weight: 400; }

/* --- Module Selector --- */
.mnm-module-selector { display: flex; flex-wrap: wrap; gap: var(--space-2); background-color: var(--background-white); padding: var(--space-2); border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); margin-bottom: var(--space-5); }
.mnm-module-select-btn { font-family: var(--font-main); flex: 1; padding: var(--space-2) var(--space-3); background-color: transparent; border: 2px solid var(--border-color); color: var(--dark-teal); font-weight: 600; font-size: 1rem; border-radius: 5px; cursor: pointer; transition: all 0.2s ease; }
.mnm-module-select-btn:hover { background-color: var(--light-neutral); border-color: var(--primary-teal); }
.mnm-module-select-btn.active { background-color: var(--primary-teal); color: var(--text-light); border-color: var(--primary-teal); }

/* --- Course Layout & Sidebar --- */
.mnm-course-layout { 
    display: grid; 
    grid-template-columns: 1fr 350px; 
    gap: var(--space-5); 
    align-items: flex-start;
}
.mnm-course-main-content > * { max-width: 100%; }
.mnm-course-main-content h2 { margin-top: 0; }
.mnm-course-sidebar { position: sticky; top: 100px; }
.mnm-course-sidebar h3 { margin-top: 0; border-bottom: 2px solid var(--border-color); padding-bottom: var(--space-2); }
.mnm-topic-list { list-style: none; padding: 0; margin: 0; max-height: 65vh; overflow-y: auto; }
.mnm-topic-item { padding: var(--space-2); border-bottom: 1px solid var(--border-color); cursor: pointer; transition: background-color 0.2s ease; display: flex; align-items: center; gap: var(--space-2); }
.mnm-topic-item.locked { color: #999; cursor: not-allowed; }
.mnm-topic-item:not(.locked):hover { background-color: var(--light-neutral); }
.mnm-topic-item.active { background-color: var(--accent-yellow); font-weight: 600; }

/* --- Content Sections --- */
.mnm-video-player { width: 100%; aspect-ratio: 16 / 9; background-color: #333; display: flex; justify-content: center; align-items: center; border-radius: 8px; color: #ccc; font-weight: bold; margin-bottom: var(--space-3); overflow: hidden;}
.mnm-video-player iframe, .mnm-video-player video { width: 100%; height: 100%; border:0;}
.mnm-content-section { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--border-color); }
.mnm-hidden { display: none !important; }
.mnm-hot-tips-list { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.mnm-hot-tip-btn { font-family: var(--font-main); flex-grow: 1; background-color: var(--light-neutral); border: 2px solid transparent; border-radius: 8px; padding: var(--space-2); font-weight: 600; cursor: pointer; transition: all 0.2s ease; }
.mnm-hot-tip-btn:hover { background-color: var(--accent-yellow); border-color: var(--primary-orange); }
.mnm-hot-tip-btn.active { background-color: var(--primary-orange); color: var(--text-light); border-color: var(--primary-orange); }
.mnm-hot-tip-btn.watched { background-color: var(--dark-teal); color: var(--text-light); border-color: var(--dark-teal); opacity: 0.7; }
.mnm-hot-tip-btn.watched::after { content: ' ✔'; }
.mnm-hot-tip-btn.locked { background-color: #f0f0f0; color: #999; cursor: not-allowed; opacity: 0.7; }
.mnm-hot-tip-btn.locked:hover { background-color: #f0f0f0; border-color: transparent; }

/* --- Other Components --- */
.mnm-resource-list { list-style: '⬇️'; padding-left: 20px; }
.mnm-resource-list a { text-decoration: none; color: var(--primary-teal); font-weight: 600; }
.mnm-resource-list a:hover { text-decoration: underline; }
.mnm-quiz-placeholder { background-color: var(--background-white); border: 2px dashed var(--border-color); border-radius: 8px; padding: var(--space-4); text-align: center; }
#mnm-recap-section.locked { opacity: 0.5; pointer-events: none; position: relative; }
#mnm-recap-section.locked::before { content: 'Complete all Hot Tips in this topic to unlock the recap!'; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.8); color: var(--text-dark); display: flex; justify-content: center; align-items: center; text-align: center; padding: 20px; font-weight: 700; z-index: 10; border-radius: 8px; }

/* --- Feedback System --- */
.mnm-feedback-container { margin-top: var(--space-3); padding: var(--space-3); background-color: #f9f9f9; border-radius: 8px; border: 1px solid var(--border-color); }
.mnm-feedback-prompt { display: flex; align-items: center; justify-content: center; gap: var(--space-2); font-weight: 600; }
.mnm-thumb-btn { background: none; border: none; font-size: 1.5rem; cursor: pointer; transition: transform 0.2s ease; }
.mnm-thumb-btn:hover { transform: scale(1.2); }
.mnm-feedback-form { margin-top: 0; }
.mnm-feedback-form textarea { display: block; width: 100%; min-height: 120px; padding: var(--space-2); border: 1px solid var(--border-color); border-radius: 5px; font-family: inherit; font-size: 1rem; resize: vertical; box-sizing: border-box; transition: border-color 0.2s ease; }
.mnm-feedback-form textarea:focus { border-color: var(--primary-teal); outline: none; }
.mnm-star-rating { font-size: 2rem; color: #ccc; cursor: pointer; }
.mnm-star-rating .star:hover, .mnm-star-rating .star.selected { color: var(--accent-yellow); }

/* --- Modal Styles --- */
.mnm-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.7); z-index: 1000; display: flex; justify-content: center; align-items: center; }
.mnm-modal-content { background: white; padding: var(--space-4); border-radius: 8px; max-width: 500px; text-align: center; }
.mnm-modal-content h3 { margin-top: 0; }
.mnm-modal-content .button-primary { margin-right: 10px; }
.mnm-close-modal { background: none; border: none; cursor: pointer; color: #777; text-decoration: underline; font-family: var(--font-main); }
.mnm-sidebar-toggle { display: none; }


/* --- **MODIFIED**: Responsive Adjustments for Mobile and Off-Canvas Sidebar --- */
@media (max-width: 992px) { 
    .mnm-course-layout { 
        grid-template-columns: 1fr; /* This is the key fix: stack to a single column */
    }

    .mnm-sidebar-toggle { 
        display: block; 
        position: fixed; 
        top: 35%; 
        right: 20px; 
        z-index: 1001; 
        background-color: var(--primary-teal); 
        border: none; 
        border-radius: 50%; 
        width: 50px; 
        height: 50px; 
        box-shadow: 0 4px 12px rgba(0,0,0,0.15); 
        cursor: pointer; 
    }
    .mnm-toggle-icon-bar { 
        display: block; 
        width: 24px; 
        height: 3px; 
        background-color: white; 
        margin: 4px auto; 
        border-radius: 2px; 
    }

    .mnm-course-sidebar { 
        position: fixed; 
        top: 0; 
        right: 0; 
        width: 300px; 
        max-width: 80%; 
        height: 100%; 
        background-color: var(--background-white); 
        box-shadow: -5px 0 15px rgba(0,0,0,0.1); 
        z-index: 1002; 
        transform: translateX(100%); 
        transition: transform 0.3s ease-in-out; 
        padding: var(--space-4); 
        box-sizing: border-box; 
        overflow-y: auto; 
    }
    .mnm-course-sidebar.sidebar-open { 
        transform: translateX(0); 
    }
    .mnm-course-container.sidebar-is-active::before { 
        content: ''; 
        position: fixed; 
        top: 0; 
        left: 0; 
        width: 100%; 
        height: 100%; 
        background-color: rgba(0,0,0,0.5); 
        z-index: 1000; 
    } 
    
    h3#mnm-sidebar-title {
    margin-top: 200px;
}

aside#mnm-course-sidebar {
    padding-top: 150px;
}
}



/* --- **NEW**: Progress & Feedback Styles --- */
.mnm-hot-tip-btn.watched {
    background-color: var(--dark-teal);
    color: var(--text-light);
    border-color: var(--dark-teal);
    opacity: 0.7;
}
.mnm-hot-tip-btn.watched::after {
    content: ' ✔';
}

#mnm-recap-section.locked {
    opacity: 0.5;
    pointer-events: none;
    position: relative;
}
#mnm-recap-section.locked::before {
    content: 'Complete all Hot Tips in this topic to unlock the recap!';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(255, 255, 255, 0.8);
    color: var(--text-dark);
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 20px;
    font-weight: 700;
    z-index: 10;
    border-radius: 8px;
}

.mnm-feedback-wrapper {
    margin-top: var(--space-3);
    padding: var(--space-3);
    background-color: var(--light-neutral);
    border-radius: 8px;
}
.mnm-star-rating {
    font-size: 2rem;
    color: #ccc;
    cursor: pointer;
}
.mnm-star-rating .star:hover,
.mnm-star-rating .star.selected {
    color: var(--accent-yellow);
}
.mnm-feedback-questions label {
    display: block;
    margin-bottom: var(--space-1);
}

/* Add this to your existing frontend.css file */

.mnm-hot-tip-btn.locked {
    background-color: #f0f0f0;
    color: #999;
    cursor: not-allowed;
    opacity: 0.7;
}

.mnm-hot-tip-btn.locked:hover {
    background-color: #f0f0f0; /* Prevents hover effect */
    border-color: transparent; /* Prevents hover effect */
}

/* --- Add these styles to your frontend.css file --- */

.mnm-feedback-container {
    margin-top: var(--space-3);
    padding: var(--space-3);
    background-color: #f9f9f9;
    border-radius: 8px;
    border: 1px solid var(--border-color);
}

.mnm-feedback-prompt {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    font-weight: 700;
}

.mnm-thumb-btn {
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.mnm-thumb-btn:hover {
    transform: scale(1.2);
}

/* --- Add these styles to the bottom of your frontend.css file --- */

.mnm-feedback-form textarea {
    display: block;          /* Ensures it sits on its own line below the label */
    width: 100%;             /* Makes it take up the full width of the container */
    min-height: 120px;       /* Sets a nice default height */
    padding: var(--space-2); /* Adds some internal spacing for text */
    border: 1px solid var(--border-color); /* Adds a clean border */
    border-radius: 5px;      /* Rounds the corners slightly */
    font-family: inherit;    /* Uses the same font as the rest of the page */
    font-size: 1rem;         /* Sets a readable font size */
    resize: vertical;        /* Allows user to resize it taller, but not wider */
    box-sizing: border-box;  /* Ensures padding doesn't break the layout */
    transition: border-color 0.2s ease; /* Adds a nice effect on focus */
}

.mnm-feedback-form textarea:focus {
    border-color: var(--primary-teal); /* Highlights the box when clicked */
    outline: none; /* Removes the default browser outline */
}




/* --- Modal Styles --- */
.mnm-modal-overlay {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(0,0,0,0.7);
    z-index: 1000;
    display: flex;
    justify-content: center;
    align-items: center;
}
.mnm-modal-content {
    background: white;
    padding: var(--space-4);
    border-radius: 8px;
    max-width: 500px;
    text-align: center;
}
.mnm-modal-content h3 {
    margin-top: 0;
}
.mnm-modal-content .button-primary {
    margin-right: 10px;
}
.mnm-close-modal {
    background: none;
    border: none;
    cursor: pointer;
    color: #777;
    text-decoration: underline;
}

h3#mnm-sidebar-title {
    margin-top: 35%;
    margin-bottom: 10px;
}

/*
 * Styles for Progress Tracking
 * ===============================================
 */

/* Style for completed topics in the sidebar */
.mnm-topic-list .mnm-topic-item.watched {
    color: #008577; /* A nice teal color */
    font-weight: bold;
}

.mnm-topic-list .mnm-topic-item.watched::before {
    content: '✅';
    margin-right: 8px;
}

/* Style for completed hot tip buttons */
.mnm-hot-tips-list .mnm-hot-tip-btn.watched {
    background-color: #e0f2f1; /* A light teal */
    border-color: #008577;
    color: #008577;
}