

/* ===== GLOBAL ===== */

/* staging index.html styles.css */

/* ########## GLOBAL STYLES ########## */

@font-face {
font-family: 'Work Sans';
    src: url('/static/fonts/WorkSans[wght].ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}
* {
margin: 0;
    box-sizing: border-box;
}
p {

}
html {
height: 100%;
    margin: 0;
}
body {
display: flex;
    flex-direction: column;
    min-height: 100vh;
    margin: 0;
    overflow-y: auto;
    font-family: 'Work Sans', sans-serif;
}
main {
flex-grow: 1;
}
a,
a:visited {
color: inherit;
    text-decoration: none;
}
a:hover,
a:active {
text-decoration: none;
    color: inherit;
}
label {
padding: 5px 5px 5px 5px;
	margin: 10px 0px 0px 0px;
}
button {
font-family: inherit; /* Ensure button elements inherit font-family from their parent */
}
.icon {
width: 35px;
    height: 35px;
    padding: 5px 5px;
    vertical-align: middle;
}
/* ########## SHARED STYLES ########## */
.uppy-Dashboard-upload,      .uppy-StatusBar-actionBtn--upload {
display: none !important;
}
/* ########## GLOBAL BASE.HTML SECTION ############# */

.sb-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 10px; /* Adjust padding for a cleaner look */
    height: 70px; /* Adjust height to match design */
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
    background-color: #0080FF;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Keep shadow for depth */
}

.sb-header-logo {
    display: flex;
    align-items: center;
    margin-left: 0;     /* Reset margin */
    padding-left: 10px; /* Optional: small consistent padding */
    padding-top: 10px;
}

.sb-header-logo img {
    width: auto;
    max-width: 220px;
    height: 50px; /* Adjust the logo size */
    object-fit: contain;
}
.sb-header-icons {
display: flex;
    align-items: center;
    gap: 20px; /* Space between icons */
    margin-left: auto; /* Ensure the icons stay to the right */
}
.sb-header-icons a > img {
    height: 28px;
    width: 28px;
    cursor: pointer;
    filter: brightness(0) invert(1); /* turns black → white */
}

.sb-header-user-info {
position: relative;
    display: flex;
    align-items: center;
}
.sb-header-user-info img {
border-radius: 50%; /* Make user avatar circular */
    width: 40px; /* Size for user avatar */
    height: 40px;
    border: 2px solid #f0f0f0; /* Optional: border around avatar */
}
.sb-header-user-popout {
display: none;
    position: absolute;
    top: 40px; /* Adjust based on header height */
    right: 0;
    background-color: white;
    padding: 10px;
    border: 1px solid #e0e0e0;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
    z-index: 1;
}
.user-avatar-img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    cursor: pointer;
}
.user-initials {
width: 32px; /* Set the width of the initials container */
    height: 32px; /* Set the height to match the width */
    background-color: #FFCD00; /* Set the background color */
    color: #fff; /* Set the text color to white */
    font-size: 16px; /* Adjust font size for the initials */
    font-family: 'Work Sans', sans-serif; /* Use the Work Sans font */
    font-weight: bold; /* Make the initials bold */
    display: flex; /* Use flexbox to center the text */
    align-items: center; /* Center the text vertically */
    justify-content: center; /* Center the text horizontally */
    border-radius: 50%; /* Make the container circular */
    text-transform: uppercase; /* Ensure initials are in uppercase */
}
.sb-footer a {
color: #F0F8FF;
}
/* ########## GLOBAL MAIN BODY + NAV ########## */

#main-container {
display: flex;
    transition: margin-left 0.3s ease;
    margin-top: 70px !important;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
#content-container {
  display: flex;
  width: 100%;
  height: 100%;
  overflow: hidden;
  margin-left:11%;
}

/* Vertical nav bar styles */
.vertical-nav {
  width: 208px; /* Make the nav bar fill the entire width */
  height: 100%;
  background-color: #ffffff; /* Set the background color for the nav bar */
  flex-shrink: 0;
  overflow-y: auto;
  padding: 10px;
  transition: transform 0.3s ease;
  position: fixed;
  left: 0;
}

/* Hidden state for the nav bar */
.vertical-nav.hidden {
transform: translateX(-100%); /* Moves the nav bar off the screen to the left */
    position: absolute; /* Removes it from the document flow to avoid taking up space */
    left: 0; /* Ensures the starting point for transform */
}
/* Nav item styles */
.nav-item {
    display: flex;
    color: #2B1F4D;
    align-items: center;
    padding: 8px 12px;
    width: calc(100% - 20px);
    border-radius: 8px;
    background-color: #fff;
    margin: 0 auto;
    transition: background-color 0.2s ease;
    margin-bottom: 20px;  /* space between items */
    position: relative;
}
.nav-item:first-child {
    width: 90%;                     /* only 90% width */
    margin: 0 auto;                 /* center the line */
    padding-top: 20px;              /* push item down below the line */
    padding-bottom: 20px;
}

#user_menu_popout {
  list-style: none;
  margin-left: -20%;
}


.nav-item + .nav-item {
    border-top: 1px solid #e0e0e0;  /* faint grey separator */
    width: 90%;                     /* only 90% width */
    margin: 0 auto;                 /* center the line */
    padding-top: 20px;              /* push item down below the line */
    padding-bottom: 20px;
}

.nav-item:last-child::after {
    display: none; /* no line after the last item */
}

.nav-item img {
width: 24px; /* Adjust icon size */
    height: 24px; /* Adjust icon size */
    margin-right: 10px; /* Space between the icon and text */
}
.nav-item a {
color: #1c2833; /* Darker text color to match the design */
    text-decoration: none;
    font-size: 16px; /* Adjust font size as needed */
    line-height: 1; /* Aligns text vertically */
}

.nav-item:hover, .menu-icon:hover {
color: #00BFFF; /* Changes text color on hover; choose a color that matches your brand */
    background-color: #f0f8ff; /* Optional: Adds a background color on hover */
}

/* ########## SIGNUP SECTION ########## */

.signup-main {
display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh; /* Full viewport height */
    width: 100%;
    padding: 20px; /* Add some padding to avoid touching the edges */
    box-sizing: border-box;
}
.signup-form-container {
display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%; /* Full width of the parent */
    max-width: 800px; /* Limit the maximum width */
    background-color: #cccccc;
    padding: 20px;
    border-radius: 10px; /* Optional: add border radius for rounded corners */
    box-sizing: border-box;
}
.signup-form-container form {
width: 100%; /* Full width of the container */
    display: flex;
    flex-direction: column;
    gap: 15px; /* Add space between form elements */
}
.signup-form-group {
margin-bottom: 15px;
    box-sizing: border-box;
}
.form-check-label {
margin-left: 10px;
}
.signup-form-row {
display: flex;
    flex-wrap: nowrap; /* Prevents wrapping */
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}
.signup-form-row .col-md-8 {
flex: 1;
    min-width: 0;
}
.signup-profile-explanation {
display: flex;
    align-items: center;
    justify-content: center;
    flex-grow: 1;
    padding: 0 15px; /* Adjust padding to fit the container */
    font-size: 0.8em; /* Adjust font size to match */
    box-sizing: border-box;
    text-align: center; /* Center align the text */
}
.signup-profile-explanation p,
.signup-profile-explanation ul {
white-space: normal; /* Allow the text to wrap */
    overflow: hidden; /* Hides any overflow */
    text-overflow: ellipsis; /* Adds an ellipsis to any text that's too long to fit */
    font-size: 0.8em; /* Adjust font size to match */
}
/* ## OLD HEADER STUFF ## */

.sb-navbar {
display: flex;
    justify-content: center;
    align-items: center;
    flex-grow: 1;
}
.sb-navbar-nav {
display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
    padding: 0;
    margin: 0;
}
.sb-nav-item {
margin: 0 15px;
}
.sb-nav-link {
    padding: 10px 15px; /* Provides space around the text */
    text-decoration: none; /* Removes the underline */
    color: #fff; /* Sets the text color; change as needed */
    font-size: 18px; /* Makes the text a bit larger */
    font-weight: bold; /* Makes the text bold */
    transition: color 0.3s ease-in-out; /* Smooth transition for hover effect */
}
.sb-nav-link:hover {
color: #00BFFF; /* Changes text color on hover; choose a color that matches your brand */
    background-color: #f0f8ff; /* Optional: Adds a background color on hover */
}
.sb-nav {
display: flex;
    justify-content: center;
    background-color: #f8f9fa;
    padding: 10px 0;
}
.sb-nav ul {
list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
}
.sb-nav li {
margin: 0 15px;
}
.sb-nav a {
text-decoration: none;
    color: #333;
    font-size: 1em;
    font-weight: 700;
    transition: color 0.3s ease;
}
.sb-nav .active a,
.sb-nav a:hover {
color: #007bff;
}
.sb-buttons {
display: flex;
    justify-content: center;
    align-items: center;
    color: white;
	padding: 5px;
}
.sb-styled-button {
background-color: #4CAF50;
    border: none;
    color: white;
    padding: 10px 20px;
    margin: 0px 10px 0px 10px;
    text-align: center;
    text-decoration: none;
    font-size: 16px;
    cursor: pointer;
 /*   flex-grow: 1;
    flex-basis: 0; */
    white-space: nowrap;
    box-sizing: border-box;
    border-radius: 20px;
    width: 150px;
    height: 35px;
    display: flex; /* Use flex display */
    align-items: center; /* Center text vertically */
    justify-content: center; /* Center text horizontally */
}
.sb-styled-button:disabled {
background-color: #cccccc; /* Gray out the button */
    cursor: not-allowed; /* Show a not-allowed cursor */
    color: #666666; /* Optional: change the text color to indicate disabled state */
}
.sb-styled-button:not(:disabled):hover {
background-color: #45a049; /* Keep your original hover effect for enabled state */
}

/* ########## LANDING - HERO SECTION ########## */

.content-row {
display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 40px; /* Adjust as needed */
}

.hero {
text-align: center;
padding-top: 60px;
}

.sub-heading-column {
    flex: 1;
    padding-right: 5px; /* Adjust as needed for spacing */
}
.hero .main-heading {
    font-size: 48px; /* Adjust size as needed */
    font-weight: 700; /* For a bold look */
    color: #576a75; /* Or whatever color you choose */
    text-align: center; /* Keep the text centered */
    margin-bottom: 20px; /* Space between heading and sub-heading */
}
.hero .sub-heading {
    font-size: 40px; /* Adjust size as needed */
    font-weight: 400; /* Regular weight for the sub-heading */
    color: #666; /* A lighter color for contrast */
    text-align: center; /* Centered text */
    margin: 0 auto; /* Center if the paragraph has max-width */
}
.hero-image-container {
max-width: 45%;
    height: auto;
    padding: 20px;
}
.hero-image-container img {
max-width: 100%;
    height: auto;
}
/* ########## LANDING - FEATURES SECTION ########## */

.features-grid {
display: grid;
    justify-content: center; /* Center the items horizontally */
    grid-template-columns: repeat(1, 1fr);
    grid-gap: 20px; /* Add some space between grid items */
    padding: 0 20px; /* Add padding on the sides */
    max-width: 1200px; /* Adjust max width as needed */
    margin: 0 auto; /* This centers the entire grid container */
}
.feature-item {
display: flex;
    flex-direction: column;
    align-items: center;
}
.video-container,
.text-content {
flex: 1;
}
.video-container {
margin-bottom: 20px;
}
.video-container {
margin-bottom: 0;
}
/* Responsive adjustments */
@media (min-width: 768px) {
.feature-item {
        flex-direction: row;
}
.video-container,
    .text-content {
flex: 1;
}
}

/* ########## LOGIN SECTION ############### */

/* Login Styles */
.login-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 10px; /* Adjust padding as needed */
    height: 70px;
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
    background-color: #transparent;
}
.login-buttons {
    display: flex;
    align-items: center;
    color: white;
}
.login-main {
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    height: 100vh;
}
.login-form-container {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    max-width: 297px;
    width: 100%;
    padding: 24px; /* Adjust padding for better spacing */
    background: #fff;
    border-radius: 20px; /* Rounded edges */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); /* Add subtle shadow */
}
.password-reset-form-container {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    max-width: 531px;
    width: 100%;
    padding: 24px; /* Adjust padding for better spacing */
    background: #fff;
    border-radius: 20px; /* Rounded edges */
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); /* Add subtle shadow */
}
.login-form-group label {
display: block;
    text-align: left;
}
.login-form-group a {
text-decoration: none; /* Remove underline */
    font-size: 12px;
    line-height: 16px;
    font-weight: 500;
    font-color: #1E2D3C;
}
.login-form-group a:hover {
text-decoration: underline; /* Add underline on hover */
}
.login-form-container form {
text-align: left;
}
.login-heading {
display: flex;
    align-items: center;
    justify-content: left;
    margin-bottom: 10px;
}
.login-heading p {
display: flex;
    align-items: center;
    font-size: 24px;
    line-height: 32px;
    font-weight: 500;
    color: #1E2D3C;
    margin-bottom: 0px;
}
.login-heading img {
display: flex;
    align-items: center;
    width: 32px;
    height: 32px;
}
.login-main .login-text {
text-align: left;
    font-size: 16px;
    line-height: 20px;
    font-weight: 400;
    color: #1E2D3C;
    padding: 0px 0px 10px 0px;
}
.login-form-container .form-check {
display: flex;
    align-items: center;
    justify-content: start;
}
.login-form-container .form-check-input {
margin-right: 10px;
}
.login-form-added {
display: Flex;
    aign-items: center;
    justify-content: space-between;
}
.login-form-check-label {
margin: 0px;
    font-size: 12px;
    line-height: 16px;
    font-weight: 500;
    font-color: #1E2D3C;
}
.login-form-check-input {
margin-right: 10px;
}
.login-form-pwd {
display: flex;
    align-items: center;
}
.login-forgot-pwd {
text-decoration: none; /* Remove underline */
    font-size: 12px;
    line-height: 16px;
    font-weight: 500;
    font-color: #1E2D3C;
}
.login-forgot-pwd a:hover {
text-decoration: underline; /* Add underline on hover */
}

/* ########## DASHBOARD SECTION ############# */

.dashboard-narrow-container {
    max-width: 1100px;
    min-width: 80%;
    margin: 0 auto;
    padding: 20px 30px;
}

.dashboard-header {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.dashboard-header label {
    margin: 0;             /* remove top margin */
    padding: 0;            /* reset padding */
    font-size: 14px;       /* optional: match select size */
    line-height: 1.5;      /* aligns baseline */
}

.dashboard-header select {
    padding: 6px 12px;
    border-radius: 6px;
    border: 1px solid #ddd;
    font-size: 14px;
}

.dashboard-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 5%;
  background-color: #f4f6f9;
  min-height: calc(100vh - 70px);
  overflow-y: auto;
}

/* Dashboard split */
.content {
  display: flex;
  flex-direction: column;
  padding: 0;
  background-color: #f4f6f9;
  min-height: calc(100vh - 60px);
}

/* Cards section */
.dashboard-cards {
  flex: 4;
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* ✅ 3 wide */
  grid-auto-rows: minmax(150px, auto);
  gap: 30px; /* ✅ more breathing room */
  padding: 10px;
  width: 100%; /* ✅ full width */
  max-width: 1400px; /* ✅ allow more spread */
  margin: 0 auto; /* ✅ center the grid */
  justify-content: center;  
}

@media (max-width: 992px) {
  .dashboard-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .dashboard-cards {
    grid-template-columns: 1fr;
  }
}

/* Notifications section */

.notifications-table {
  list-style: none;
  margin: 0;
  padding: 0;
  font-family: "Work Sans", sans-serif;
}

.notification-row {
  display: grid;
  grid-template-columns: 160px 120px 1fr; /* date, category, text */
  gap: 12px;
  font-size: 14px;
  padding: 1px 0;
  border-bottom: 1px solid #eee;
}

.notif-date {
  color: #555;
  font-weight: 600;
}

.notif-category {
  color: #007bff;
  font-weight: 600;
  text-align: left;
  white-space: nowrap;
}

.notif-text {
  color: #333;
  line-height: 1.5;
}


.dashboard-notifications {
  flex: 1;
  width: 100%;
  max-width: none;
  margin: 0;
  background: #fff;
  border-top: 1px solid #ddd;
  padding: 15px 20px;
  overflow-y: auto;
}

.dashboard-notifications h3 {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 10px;
  color: #1e2d3c;
}

.dashboard-notifications ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.dashboard-notifications li {
  font-size: 14px;
  color: #333;
  margin-bottom: 8px;
  line-height: 1.4;
}

.dashboard-notifications li b {
  color: #007bff; /* highlight timestamp + category */
  margin-right: 6px;
}

.dashboard-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  grid-gap: 20px;
  padding: 20px;
  max-width: 1200px;
  margin: 0 auto;
}

.dashboard-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  padding: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 140px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-align:center;
}

.dashboard-card img {
    width: 48px; /* Adjust icon size */
    height: 48px; /* Adjust icon size */
    margin-bottom: 10px;
}

.dashboard-card span {
  font-size: 18px;
  font-weight: 600;
  margin-bottom: 8px;
  color: #1e2d3c;
}

.dashboard-card p {
  font-size: 15px;
  color: #555;
}

.dashboard-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

/* Role-based card accents */
.dashboard-card.student {
  border-top: 4px solid #28a745; /* green */
}
.dashboard-card.teacher {
  border-top: 4px solid #6f42c1; /* purple */
}
.dashboard-card.site_admin {
  border-top: 4px solid #007bff; /* blue */
}
.dashboard-card.cluster_admin {
  border-top: 4px solid #17a2b8; /* teal */
}
.dashboard-card.account_admin {
  border-top: 4px solid #fd7e14; /* orange */
}
.dashboard-card.content_creator {
  border-top: 4px solid #ffc107; /* yellow */
}
.dashboard-card.ca_sysadmin {
  border-top: 4px solid #dc3545; /* red */
}

/* ########## STUDIO ################## */

.header-buttons {
display: flex;
}
.studio-main {
display: flex;
    flex-direction: column;
    margin-top: 70px !important;
}
.iframe-container {
position: relative;
    flex-grow: 1;
    overflow: hidden; /* Ensures the iframe takes only available space */
}
.iframe-container iframe {
position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.studio-search-container {
display: flex;
    flex-direction: column;
    align-items: center; /* Center the table */
    width: 100%;
}
.studio-table-container {
display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}
.studio-table-heading {
width: 80%; /* Match the width of the table */
    text-align: left; /* Left-align the heading */
    margin-top: 10px;
    margin-bottom: 10px; /* Add some space between the heading and the table */
}
.studio-table {
width: 80%; /* Set the table to 80% of the container */
    margin: 0 auto; /* Center the table */
    table-layout: fixed; /* Fix table layout for consistent column widths */
    border-collapse: collapse; /* Ensure borders are collapsed */
}
.studio-th:last-child,
.studio-index-table-right {
width: 20%; /* Set the last column to 20% */
    text-align: center;
}
.studio-th:first-child,
.studio-index-table-left {
width: 80%; /* Set the first column to 80% */
}
.studio-th:first-child,
.studio-index-table-thumbnail {
width: 120px; /* Adjust the width as necessary */
    text-align: center;
}
.studio-thumbnail-img {
width: 100px;
    height: auto;
    max-height: 100%;
    object-fit: cover;
}
.studio-index-table-right {
justify-content: space-around; /* Spread out the action icons */
    align-items: center; /* Center align the icons vertically */
    gap: 10px; /* Add gap between the icons */
}
/* ### STUDIO MODAL STYLES ### */

/* Modal container */

.studio-modal {
display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0,0,0,0.5);
}
.studio-modal-content {
background-color: #fefefe;
    margin: 5% auto;
    padding: 20px;
    border: 1px solid #888;
    width: 60%;
    max-width: 600px;
    position: relative;
    display: flex;
    flex-direction: column;
}
/* Close button */
.studio-modal-close {
position: absolute;
    top: 10px;
    right: 25px;
    color: #aaa;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
    width: 28px;
    height: 28px;
    display: flex;
    z-index: 1001;
}
.studio-modal-close:hover,
.studio-modal-close:focus {
color: black;
    text-decoration: none;
    cursor: pointer;
}
/* Input and labels */
.studio-modal-content label {
display: block;
    margin: 10px 0 5px;
    font-weight: bold;
}
.studio-modal-content input[type="text"],
.studio-modal-content textarea,
.studio-modal-content select {
width: 100%;
    padding: 10px;
    margin-bottom: 20px;
    border: 1px solid #ccc;
    border-radius: 4px;
}
/* Submit buttons */
.studio-modal-content .styled-button,
.studio-modal-content .btn {
align-self: center;
    margin-top: 20px;
}
.studio-modal-content .btn-danger {
background-color: #dc3545;
    border-color: #dc3545;
    color: white;
}
.studio-modal-content .btn-secondary {
background-color: #6c757d;
    border-color: #6c757d;
    color: white;
}
/* Publish controls */
.publish-controls {
display: none;
}
.publish-controls.show {
display: flex;
    align-items: center;
}
.publish-controls label {
margin-right: 10px;
}
#publicOptions,
#timeLimitOption,
#costPerViewOption {
display: none;
}
/* Thumbnail */
.thumbnail-img {
max-width: 100px;
    margin-right: 10px;
    margin-top: 10px;
    display: inline-block;
    vertical-align: middle;
}
/* Additional styles for alignment */
.studio-modal-content .publish-flag {
display: flex;
    align-items: center;
}
.studio-modal-content .publish-flag input {
margin-right: 10px;
}
#modal-submit-button {
margin-top: 20px;
}
/* ########## CENTERSTAGE SECTION ######## */

.cs-header {
display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 10px;
    height: 70px;
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
    background-color: #fff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.cs-search {
margin-right: 20px;
}
.cs-search input[type="text"] {
width: 300px;
    padding: 8px 12px;
    border: 1px solid #ccc;
    border-radius: 20px;
}
.cs-search-input:focus {
border-color: #007bff;
    box-shadow: 0 2px 8px rgba(0, 123, 255, 0.2);
    margin-right: 10px;
}
.cs-main {
display: flex;
    margin-top: 70px !important;
    flex-direction: column;
}
.cs-container {
display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    margin-left: 20px;
    margin-top: 10px;
    z-index: 0;
    position: relative;
}
.cs-container-1 {
display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 20px;
}
.cs-sidebar {
width: 250px;
    background-color: #f8f8f8;
    padding: 20px;
    height: calc(100vh - 70px);
    position: fixed;
    top: 70px;
    left: -250px !important;
    overflow-y: auto;
    transition: left 0.3s ease !important;
    z-index: 1000;
}
.cs-sidebar.visible {
left: 0 !important;
}
.cs-sidebar ul {
list-style-type: none;
    padding: 0;
}
.cs-sidebar ul li {
margin-bottom: 10px;
}
.cs-sidebar ul li a {
display: flex;
    align-items: center;
    padding: 10px;
    color: #333;
    text-decoration: none;
    border-radius: 4px;
    transition: background-color 0.3s, color 0.3s;
}
.cs-sidebar ul li a:hover {
background-color: #e0e0e0;
    color: #000;
}
.cs-sidebar ul li a img.icon {
margin-right: 10px;
    width: 35px;
    height: 35px;
}
.cs-gallery {
display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 20px;
    padding: 20px;
    position: relative;
    z-index: 0;
}
.cs-gallery-item {
display: flex;
    flex-direction: column;
    width: 246px;
    height: 246px;
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: visible;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    text-decoration: none !important;
    color: inherit;
    position: relative;
    z-index: 0;
}
.cs-gallery-item:hover {
position: relative;
    z-index: 100;
}
.cs-gallery-item img {
width: 264px;
    height: 158px;
    object-fit: cover;
    z-index: 0;
}
.cs-thumbnail-content {
padding: 10px;
}
.cs-thumbnail-title {
font-size: 1.2em;
    font-weight: bold;
    margin: 5px 0;
    color: #333;
    display: -webkit-box;
    -webkit-line-clamp: 2; /* Limit to 2 lines */
    -webkit-box-orient: vertical;
    overflow: hidden; /* Hide the overflow text */
    height: 3em; /* Ensure it takes up to 2 lines (1.5em per line is a common height) */
    line-height: 1.5em; /* Ensure the line height is consistent */
    text-overflow: ellipsis; /* Add ellipsis for overflow text */
}
.cs-thumbnail-username {
font-size: 0.8em;
    color: #606060;
    margin-top: 5px;
}
.cs-thumbnail-info {
font-size: 0.8em;
    color: #606060;
    display: flex;
    align-items: center;
    margin-bottom: 0;
}
.cs-thumbnail-link {
text-decoration: none !important;
    color: black;
}
.cs-thumbnail-link * {
text-decoration: none !important;
    color: black;
}
.cs-thumbnail-link:hover .cs-thumbnail-content {
background-color: #f0f0f0;
}
.cs-menu-dropdown {
display: none;
    position: absolute;
    background-color: white;
    min-width: 160px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
    z-index: 2000;
    font-size: 0.6em;
    font-weight: 300;
    line-height: 1;
    padding: 10px 0;
    right: 0;
}
.menu-icon:hover .cs-menu-dropdown {
display: block;
}
.cs-menu-dropdown a {
color: black;
    padding: 8px 16px;
    text-decoration: none;
    display: block;
}
.cs-menu-dropdown a:hover {
background-color: #f1f1f1;
}
.cs-pagination {
text-align: center;
    margin: 20px 0;
}
.cs-pagination a {
margin: 0 10px;
    text-decoration: none;
    color: #007bff;
}
.notification {
position: fixed;
    bottom: 20px;
    right: 20px;
    background-color: #333;
    color: #fff;
    padding: 10px 20px;
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    opacity: 0;
    animation: fadeInOut 5s forwards;
}
@keyframes fadeInOut {
0%, 100% { opacity: 0;
}
}

.cs-container:hover .cs-sidebar {
left: 0;
}
/* ########## CENTERSTAGE PLAYER ############ */

.csp-container {
display: flex;
    height: calc(100vh - 70px); /* Full height minus the header */
}
.csp-main-content {
display: flex;
    flex-grow: 1;
    padding: 20px;
    margin-top: 70px !important;
    overflow: hidden; /* Prevent content overflow */
}
.csp-player-container {
display: flex;
    width: 100%;
    height: 100%;
}
.csp-player-iframe {
width: 75%; /* 3/4 width for the player */
    height: 100%;
    border-right: 1px solid #ddd; /* Optional: Add a border between player and info panel */
}
.csp-story-info {
width: 25%; /* 1/4 width for the story info */
    padding: 20px;
    overflow-y: auto; /* Scroll if content overflows */
}
.csp-story-info h2 {
font-size: 1.5em;
    margin-bottom: 10px;
}
.csp-story-stats {
display: flex;
    align-items: center;
    font-size: 0.8em; /* Smaller font size */
    margin-bottom: 10px;
}
.csp-story-stats img.icon {
width: 20px; /* Adjust the width to make the image smaller */
    height: auto;
    margin-left: 5px;
    margin-right: 5px;
    border: none; /* Ensure there's no border */
}
.csp-story-author {
display: flex;
    align-items: center;
    margin-bottom: 10px;
}
.csp-author-icon {
width: 24px; /* Adjust the size as needed */
    height: 24px; /* Adjust the size as needed */
    margin-right: 10px;
}
.csp-story-date {
background-color: #f0f0f0; /* Light gray background */
    padding: 10px;
    border-radius: 5px;
    margin-bottom: 10px;
}
.csp-story-date p {
margin: 0;
}
.csp-story-date b {
display: block;
    margin-bottom: 5px;
}
#like-button {
background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
}
#like-button img {
margin-right: 5px;
    border: none; /* Remove any border */
}
#like-button:focus {
outline: none; /* Remove focus outline */
    box-shadow: none; /* Remove any box shadow */
}
#like-button:active {
outline: none; /* Remove active outline */
    box-shadow: none; /* Remove any box shadow */
}

/* ########## STORE SECTION ########### */

.edit-icon {
width: 16px;
    height: 16px;
    position: relative; /* Changed from absolute to relative */
    margin-left: 5px;
    top: 3px; /* Adjust this value to better align vertically */
    cursor: pointer;
    z-index: 10;
}
.editable-field {
display: inline-block;
    position: relative;
}
.edit-input {
display: inline-block;
    width: auto;
    font-size: 1em; /* Ensure the text size is appropriate */
    padding: 0.2em; /* Add some padding for better visibility */
    border: 1px solid #ccc; /* Add a border for visibility */
    margin: 0;
}
.thumbnail-icon {
width: 24px; /* Adjust size as needed */
    height: 24px; /* Adjust size as needed */
    position: absolute;
    top: -10px; /* Adjust to move it higher */
    left: -10px; /* Adjust to move it more to the left */
    background-color: white; /* Add solid white background */
    border-radius: 50%; /* Make the background circular */
    padding: 2px; /* Add padding inside the icon */
    z-index: 20; /* Ensure it appears on top of other elements */
    cursor: pointer; /* Change cursor to pointer on hover */
    box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2); /* Add slight shadow for better visibility */
}
.st-thumbnail .store-bundle-thumbnail-container {
position: relative;
    display: inline-block;
}
.st-thumbnail .store-bundle-icon {
position: absolute;
    top: 0;
    right: 0;
    width: 25px;  /* Adjust the size as needed */
    height: 25px; /* Adjust the size as needed */
    z-index: 10;  /* Ensure it stays on top */
    background-color: rgba(255, 255, 255, 0.8); /* Optional: Add a slight background color to make it more visible */
    border-radius: 50%; /* Optional: Add rounded corners if needed */
    padding: 2px; /* Optional: Add padding if needed */
}
.active-nav {
font-weight: bold;
    color: #007bff;
}
.st-container {
display: flex;
    flex-wrap: wrap; /* Allow wrapping to ensure proper alignment */
    justify-content: center; /* Center the items horizontally */
    width: 100%;
    padding: 20px;
    box-sizing: border-box;
}
.st-gallery {
display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); /* Adjust the minmax values as needed */
    /* grid-template-columns: repeat(auto-fit, minmax(15%, 1fr)); /* Use auto-fit and minmax for responsive design */
    gap: 20px;
    width: 100%;
    padding: 20px;
    box-sizing: border-box;
}
/* STORE ASSETS GALLERY FORMATTING */

.st-thumbnail {
display: flex;
    flex-direction: column;
    align-items: center;
    border: 1px solid #ddd;
    padding: 15px;
    margin: 10px;
    border-radius: 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    background-color: #fff;
    max-width: 250px;
    text-align: center;
}
.st-thumbnail:hover {
background-color: #f0f8ff; /* Change to the desired background color */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* Optional: Add a bit more shadow for a pop effect */
}
.st-thumbnail img {
max-width: 100%;
    height: auto;
    border-radius: 5px;
    width: 100px; /* Ensure uniform size for all icons */
    height: 100px; /* Ensure uniform size for all icons */
    object-fit: cover; /* Maintain aspect ratio */
}
.st-asset-info {
display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%; /* Set width to 100% to match the container width */
    height: auto; /* Allow height to adjust based on content */
    padding: 10px;
    box-sizing: border-box; /* Include padding in the width and height */
    text-decoration: none;
    color: inherit;
    margin: 0 0; /* Add margin for spacing between items */
}
.st-asset-info a,
.st-asset-info a:visited,
.st-asset-info a:hover,
.st-asset-info a:active {
color: inherit;
    text-decoration: none;
}
.st-asset-info p {
margin: 0 0;
    font-size: 0.9em;
    color: #606060;
    text-align: left;
}
.st-asset-info p span {
font-weight: bold;
    color: #333;
}
.st-asset-info .myasset-p {
margin: 0 0;
    font-size: 0.9em;
    color: #606060;
    text-align: center;
}
.st-asset-info .myasset-p span {
font-weight: bold;
    color: #333;
}
.st-asset-info h2 {
white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    font-size: 16px;
    margin: 0 0 5px 0;
    text-align: center; /* Center-align the text for consistency */
}
.st-asset-info:hover {
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}
.buy-now-container {
display: flex;
    justify-content: center;
    width: 100%;
}
.audio-player-container {
min-height: 70px; /* Ensure a minimum height to align with non-audio assets */
    margin-top: 0;
    width: 100%;
}
.audio-player-container audio {
width: 100%;
}
.st-thumbnail audio {
width: 100%;
    margin-top: 10px;
}
.st-thumbnail .btn {
width: 100%; /* Ensure the button takes the full width */
    padding: 10px;
    background-color: #007bff;
    color: #fff;
    border: none;
    border-radius: 4px;
    text-decoration: none;
    display: inline-block;
}
.st-thumbnail .btn:hover {
background-color: #0056b3;
    color: #fff;
    text-decoration: none;
}
.st-pagination {
display: flex;
    justify-content: center;
    margin: 20px 0;
    text-align: center;
}
.st-pagination a {
margin: 0 10px;
    text-decoration: none;
    color: #007bff;
}
.already-owned {
font-weight: bold;
    color: #28a745; /* Green color for indicating success */
    margin-top: 10px;
    text-align: center;
}
.no-assets-message {
text-align: center;
    margin-top: 50px;
    font-size: 18px;
    font-weight: bold;
    color: #333;
}
/* ######### STORE ASSET INFO SECTION ####### */

.modal {
display: none; /* Hidden by default */
    position: fixed; /* Stay in place */
    z-index: 1050; /* Sit on top */
    left: 50%; /* Center horizontally */
    top: 50%; /* Center vertically */
    transform: translate(-50%, -50%); /* Adjust for the modal's width and height */
    width: 100%; /* Full width */
    height: 100%; /* Full height */
    overflow: hidden; /* Prevent scroll */
    background-color: rgba(0, 0, 0, 0.5); /* Add a black background with opacity */
}
.modal-dialog {
position: relative;
    width: auto;
    margin: 10px;
    pointer-events: none; /* Disables mouse events on the modal */
}
.bundle-item-thumbnail {
width: 100%;
    max-height: 200px;
    border-radius: 5px;
}
.bundle-item-container {
position: relative;
    display: inline-block;
    margin: 10px;
}
.sta-asset-container {
display: flex;
    justify-content: center; /* Center the content horizontally */
    align-items: flex-start; /* Align items to the top */
    width: 100%;
    padding: 20px;
}
.sta-asset-container .store-bundle-icon {
top: 0;
    right: 0;
    width: 25px;  /* Adjust the size as needed */
    height: 25px; /* Adjust the size as needed */
    z-index: 10;  /* Ensure it stays on top */
    background-color: rgba(255, 255, 255, 0.8); /* Optional: Add a slight background color to make it more visible */
    border-radius: 50%; /* Optional: Add rounded corners if needed */
    padding: 2px; /* Optional: Add padding if needed */
}
.sta-asset-info {
width: 80%; /* Increase width for more space */
    padding: 20px;
    margin-left: 20px;
    overflow-y: auto; /* Scroll if content overflows */
    background-color: #f9f9f9; /* Differentiate background color */
    border-radius: 8px; /* Optional: Rounded corners */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Optional: Subtle shadow */
    min-height: 800px;
}
.sta-asset-info {
width: 80%; /* Increase width for more space */
    padding: 20px;
    margin-left: 20px;
    overflow-y: auto; /* Scroll if content overflows */
    background-color: #f9f9f9; /* Differentiate background color */
    border-radius: 8px; /* Optional: Rounded corners */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Optional: Subtle shadow */
    min-height: 800px;
}
.sta-asset-info h2 {
font-size: 1.5em;
    margin-bottom: 10px;
}
.sta-asset-info h2 {
font-size: 1.5em;
    margin-bottom: 10px;
}
.sta-asset-info h3 {
margin-top: 20px;
}
.sta-asset-info p {
font-size: 1em;
    color: #606060;
    margin-bottom: 10px;
}
.sta-asset-info p {
font-size: 1em;
    color: #606060;
    margin-bottom: 10px;
}
.sta-asset-image {
width: 400px; /* Adjust this value for smaller image */
    height: auto; /* Maintain aspect ratio */
    max-width: 90%;
    display: block;
    margin: 0 auto; /* Center the image */
}
.sta-asset-image {
width: 400px; /* Adjust this value for smaller image */
    height: auto; /* Maintain aspect ratio */
    max-width: 90%;
    display: block;
    margin: 0 auto; /* Center the image */
}
/* Center the checkbox with its label for .sta- namespace */
.sta-form-check {
display: flex;
    align-items: center;
}
/* Center the checkbox with its label for .sta- namespace */
.sta-form-check {
display: flex;
    align-items: center;
}
.sta-form-check-input {
margin-top: 0;
    margin-right: 10px; /* Add space between the checkbox and the label */
}
.sta-form-check-input {
margin-top: 0;
    margin-right: 10px; /* Add space between the checkbox and the label */
}
.sta-form-check-label {
margin-bottom: 0; /* Remove bottom margin */
}
.sta-form-check-label {
margin-bottom: 0; /* Remove bottom margin */
}
.sta-info-container {
width: 60%;
    display: table; /* Use table display to align labels and values */
    border-collapse: separate;
    border-spacing: 5px 10px; /* Add spacing between rows and cells */
}
.sta-info-container {
width: 60%;
    display: table; /* Use table display to align labels and values */
    border-collapse: separate;
    border-spacing: 5px 10px; /* Add spacing between rows and cells */
}
.sta-info-group {
display: table-row; /* Use table row display */
}
.sta-info-group {
display: table-row; /* Use table row display */
}
.sta-info-label, .sta-info-value {
display: table-cell; /* Use table cell display */
    vertical-align: bottom; /* Align bottoms of labels and values */
}
.sta-info-label, .sta-info-value {
display: table-cell; /* Use table cell display */
    vertical-align: bottom; /* Align bottoms of labels and values */
}
.sta-info-label {
font-weight: bold;
    padding-right: 10px; /* Reduce padding between label and value */
}
.sta-info-label {
font-weight: bold;
    padding-right: 10px; /* Reduce padding between label and value */
}
.sta-info-value {
padding-left: 5px; /* Reduce padding between value and label */
}
.sta-info-value {
padding-left: 5px; /* Reduce padding between value and label */
}
/* ######### STORE ASSET INFO SECTION ####### */

.sta-asset-container {
display: flex;
    justify-content: center; /* Center the content horizontally */
    align-items: flex-start; /* Align items to the top */
    width: 100%;
    padding: 20px;
}
/* ########## STORE FILE UPLOADING SECTION ########### */

.store2-modal {
display: none;
    background-color: rgba(255, 255, 255, 0.9);
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0%;
    z-index: 1000;
    overflow: auto;
}
.store2-modal-content {
background-color: #fefefe;
    margin: 5% auto;
    padding: 20px;
    border: 1px solid #888;
    width: 60%;
    max-width: 600px;
    position: relative;
    display: flex;
    flex-direction: column;
}
/* Text Paragraph Styling */
.store2-modal-content p {
margin-bottom: 20px; /* Add space below the instructions */
    font-size: 16px; /* Slightly larger font for readability */
    line-height: 1.5; /* Line height for better readability */
}
.store2-modal-content h2 {
margin-bottom: 20px;
}
/* Dropdown Styling */
.bundle-list-dropdown {
width: 90%; /* Set dropdown width to 80% */
    padding: 10px; /* Add padding inside the dropdown */
    margin-bottom: 10px; /* Space below the dropdown */
    font-size: 16px; /* Increase the font size for the dropdown */
}
/* Confirm Button Styling */
#confirMoveToBundle {
width: 100%; /* Full width button */
    padding: 15px; /* Add padding to make it taller */
    font-size: 18px; /* Increase font size for readability */
    margin-top: 20px; /* Add space above the button */
}
.store2-modal-close {
position: absolute;
    top: 10px;
    right: 25px;
    color: #aaa;
    font-size: 28px;
    font-weight: bold;
    cursor: pointer;
}
.store2-modal-close:hover,
.store2-modal-close:focus {
color: black;
    text-decoration: none;
    cursor: pointer;
}
/* STORE MY ASSETS MAIN BUTTONS FORMATTING */

.sort-by-select {
height: 35px;
    font-family: inherit;
    font-size: inherit;
    padding: 5px;
    border-radius: 4px;
    border: 1px solid #ccc;
    box-sizing: border-box;
}
.pngdetect {
margin-top: 10px;
    margin-bottom: 15px;
    font-size: 12px;
}
.pngdetect div {
margin-bottom: 10px;
}
.bundleModalButtons {
margin-bottom: 15px;
}
.bundle-form-group {
margin-bottom: 15px;
}
.bundle-form-group label {
display: block;
    margin-bottom: 5px;
}
.bundle-form-group input {
width: 100%;
    padding: 8px;
    box-sizing: border-box;
}
.store2-modal .thumbnail-selection-container {
display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.store2-modal .thumbnail-selection-container img {
cursor: pointer;
    border: 2px solid transparent;
}
.store2-modal .thumbnail-selection-container img.selected {
border-color: #007bff;
}
.myassets-buttons-container {
display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    box-sizing: border-box; /* Ensure padding and border are included in the element's total width */
    padding: 0 10px; /* Add padding to prevent content from touching the edges */
}
.myassets-search-form {
display: flex;
    align-items: center;
    flex-grow: 1;
    margin: 0 10px;
    justify-content: center;
    max-width: calc(100% - 220px); /* Ensure the form does not exceed the container width */
}
.myassets-btn-custom-input {
padding: 10px 20px;
    font-size: 16px;
    border-radius: 5px;
    margin: 5px;
    cursor: pointer;
    height: 35px; /* Set the height to match other buttons */
    text-align: center;
    border: 1px solid #ccc;
    display: flex; /* Ensure buttons align properly */
}
.myassets-btn-custom {
padding: 5px 10px;
    font-size: 16px;
    border-radius: 5px;
    margin-right: 10px;
    cursor: pointer;
    height: 35px; /* Set a fixed height for all buttons */
    width: 150px; /* Set a fixed width for all buttons */
    text-align: center;
    background-color: #28a745; /* Change this to your preferred color */
    color: white;
    border: none;
    display: flex; /* Ensure buttons align properly */
    justify-content: center;
    align-items: center;
}
.myassets-btn-custom:hover {
opacity: 0.8;
}
.myassets-btn-custom:focus {
outline: none;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}
.myassets-btn-custom.btn-danger {
background-color: #dc3545;
}
.myassets-btn-custom.btn-primary {
background-color: #007bff;
}
.myassets-delete-button-container {
display: flex;
    align-items: center;
    justify-content: flex-end;
}
#uploadBtn {
flex-shrink: 0;
    flex-grow: 0; /* Ensuring the button does not grow */
}

/* =========================================
   Production (Global)
   ========================================= */

.production-main {
  max-width: 100%;
  display: flex;
  justify-content: center;
  width: 100%;
  padding-bottom: 60px;
  margin-left: 6%;
}

.production-form {
  flex: 1;
  max-width: 90%;
  margin: 0 auto;
  background-color: #fff;
  padding: 40px;
  padding-bottom: 100px;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
  position: relative;
  overflow: visible;
}

.production-button-grid {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 60px;
  background-color: #fff; /* optional: gives it a background to avoid transparency */
  padding: .5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem;
  z-index: 1000; /* ensures it sits above other content */
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.1); /* optional: subtle shadow */
}

.production-submit-button {
  width: 220px;
  height: 40px;
  font-size: 16px;
  font-weight: 600;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  color: white;
  background-color: #19BEFF;
  transition: background-color 0.25s ease;
  box-shadow: 0 4px 10px rgba(0,0,0,0.12);
}

.production-submit-button:hover {
  background-color: #007ac9;
}

.production-refine-button {
  width: 220px;
  height: 40px;
  padding: 14px 20px;
  font-size: 16px;
  font-weight: 600;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  color: #000;
  background-color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
  transition: background-color 0.25s ease-in-out, box-shadow 0.25s ease-in-out;
}

.production-refine-button:hover {
  background-color: #f5f5f5;
}

.production-refine-icon {
  height: 20px;
  width: 20px;
  display: inline-block;
}




/* ==========================================
   ACADEMY AI-PROCESSING SPINNER MODAL
   ========================================== */

.production-modal {
  display: none; /* <--- critical fix */
}

.production-modal-backdrop {
display: none;
  position: fixed;
  z-index: 9999;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(6px);
  justify-content: center;
  align-items: center;
}

.production-modal-content {
background: white;
  border-radius: 16px;
  padding: 40px;
  max-width: 420px;
  width: 90%;
  text-align: center;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.25);
  font-family: 'Inter', sans-serif;
  animation: fadeInUp 0.3s ease;
}

.production-modal-close-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  font-size: 1.5rem;
  background: none;
  border: none;
  color: #555;
  cursor: pointer;
  font-weight: bold;
  line-height: 1;
}

.production-modal-close-btn:hover {
  color: #000;
}


.production-spinner {
margin: 20px auto;
  border: 8px solid #f3f3f3;
  border-top: 8px solid #159168;
  border-radius: 50%;
  width: 60px;
  height: 60px;
  animation: production-spin 1.2s linear infinite;
}

.production-spinner-graphic {
width: 60px;
  height: 60px;
  margin: 0 auto 20px;
  border: 5px solid #eee;
  border-top: 5px solid #00aaff;
  border-radius: 50%;
  animation: spin 1.1s linear infinite;
}

/* Typing / rotating message */
#acadamy-message {
color: #555;
  font-size: 15px;
  margin-top: 8px;
  min-height: 22px;
}

/* Animations */
@keyframes spin {
to {
    transform: rotate(360deg);
}
}

@keyframes fadeInUp {
from {
    opacity: 0;
    transform: translateY(20px);
}
}



/* ============================ */
/* === 1. MYPROJECTS STYLES === */
/* ============================ */

.myprojects-container {
margin-top: 80px;
  padding: 20px;
  text-align: center;
  margin-left:11%
}

.myprojects-heading {
font-size: 2.2rem;
  margin-bottom: 20px;
}

.myprojects-cta-top,
.myprojects-cta {
margin: 20px auto 40px auto;
  text-align: center;
}

.myprojects-cta-button {
display: inline-block;
  font-size: 1.1rem;
  padding: 12px 24px;
  background-color: #5e60ce;
  color: #fff;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 600;
  transition: background-color 0.2s ease;
}

.myprojects-icon {
    width: 15px;
    height: 15px;
    margin: 2px;
    cursor: pointer;
}

.myprojects-cta-button:hover {
background-color: #4d4fc1;
}

.myprojects-table-wrapper {
overflow-x: auto;
}

.myprojects-table-wide {
width: 90%;
  margin: 0 auto;
}

.myprojects-table {
width: 100%;
  border-collapse: collapse;
  margin-bottom: 40px;
}

.myprojects-table th,
.myprojects-table td {
padding: 12px 16px;
  text-align: left;
  border-bottom: 1px solid #e0e0e0;
  vertical-align: middle;
}

.myprojects-table th {
background-color: #f5f5f5;
  font-weight: 600;
}

.myprojects-table tr:nth-child(even) {
background-color: #fafafa;
}

.myprojects-table tr:hover {
background-color: #f0f8ff;
  cursor: pointer;
}

/* Title */
.myprojects-table td:nth-child(2) {
  max-width: 240px;
  white-space: normal;
  word-break: break-word;
}

/* Description */
.myprojects-table td:nth-child(3) {
  white-space: normal;
  word-break: break-word;
  line-height: 1.45;
}

/* Stage */
.myprojects-table td:nth-child(4) {
  white-space: nowrap;
}

/* Publish State */
.myprojects-table td:nth-child(5) {
  text-align: center;
}

/* Access */
.myprojects-table td:nth-child(7) {
  white-space: nowrap;
}

/* Actions */
.myprojects-table td:nth-child(9) {
  white-space: nowrap;
}
.project-description {
  max-width: none;
}

.myprojects-access-label {
  font-size: 0.85em;
  color: #555;
}

/* === My Projects — Fixed Header Scrollable Body === */
.myprojects-table-wrapper {
  max-height: 70vh;      /* limit total height */
  overflow-y: auto;       /* enable vertical scrolling */
  overflow-x: hidden;
  position: relative;
}

.myprojects-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.myprojects-table thead th {
  position: sticky;
  top: 0;
  background-color: #f5f5f5;  /* matches your table header color */
  z-index: 2;
  box-shadow: 0 2px 3px rgba(0,0,0,0.05);
}

.myprojects-table tbody td {
  background: #fff;
}


/* Sorting indicator + archived rows */
.myprojects-controls { display:flex; align-items:center; gap:12px; }
.myprojects-table .sort-indicator { font-size: 0.75em; opacity: 0.7; margin-left: 6px; }
.project-row.is-archived { opacity: 0.6; }

/* Simple chips for Stage/Publish (re-uses your “project-status” feel) */
.chip { display:inline-block; padding:2px 8px; border-radius:12px; font-size:12px; line-height:18px; }
.chip-publish.chip-draft { background:#eee; }
.chip-publish.chip-private { background:#e7f0ff; }
.chip-publish.chip-released { background:#e8f9ef; }

.actions-col, .row-actions { text-align:right; white-space:nowrap; }
.truncate { max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.myprojects-archive-toggle {
  text-align: right;
  margin-bottom: 6px;
  font-size: 13px;
}

.myprojects-archive-toggle label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}

.myprojects-archive-toggle input[type="checkbox"] {
  transform: translateY(1px);
}

/* Center align publish column */
.myprojects-table td.publish-col {
  text-align: center;
}

.myprojects-table th.publish-col {
  text-align: center;
}


.project-status {
display: inline-block;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 0.9rem;
  font-weight: 600;
}

.project-status.scope {
background-color: #ffeeba;
  color: #856404;
}

.project-status.draft {
background-color: #f0f0f0;
  color: #333;
}

.project-status.released {
background-color: #d4edda;
  color: #155724;
}

.project-status.private {
background-color: #e2e3e5;
  color: #6c757d;
}

.myprojects-actions {
white-space: nowrap;
}

.myprojects-action-link {
color: #007bff;
  text-decoration: none;
  font-weight: 600;
  margin-right: 12px;
}

.myprojects-access-btn {
color: #007bff;
  text-decoration: none;
  font-weight: 600;
  margin-right: 12px;
  cursor: pointer;
  border: none;
  background: transparent;
  padding: 0;
}

.myprojects-delete-btn {
color: #dc3545;
  font-weight: 600;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
}

/* === Collaborator Modal Styles === */
/* Modal backdrop */
/* === Centered Collaborator Modal === */
.collab-modal {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 1000;
}

.hidden {
  display: none !important;
}

#collab-modal {
  position: fixed;
  inset: 0; /* top: 0; right: 0; bottom: 0; left: 0 */
  z-index: 1000;
  display: flex;              /* ✅ required for centering */
  align-items: center;        /* ✅ vertical center */
  justify-content: center;    /* ✅ horizontal center */
  background-color: rgba(0, 0, 0, 0.5);
}

#collab-content {
  position: relative;  /* ✅ container for close button */
  background-color: #ffffff;
  padding: 2rem;
  border-radius: 12px;
  width: 480px;
  max-width: 95vw;
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.25);
  font-family: 'Helvetica Neue', sans-serif;
}

#collab-modal {
  animation: fadeIn 0.2s ease-out;
}

@keyframes fadeIn {
  from { opacity: 0 }
  to { opacity: 1 }
}

#collab-content h3 {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: 1.5rem;
  font-weight: bold;
}

#collab-user-select,
#collab-permission-select {
  width: 100%;
  padding: 0.6rem;
  margin-bottom: 1rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 1rem;
}

#add-collaborator-btn {
  width: 100%;
  padding: 0.8rem;
  background-color: #3c82f6;
  color: white;
  font-weight: bold;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  margin-bottom: 1rem;
}

#add-collaborator-btn:hover {
  background-color: #2563eb;
}

#collaborator-list {
  list-style-type: none;
  padding-left: 0;
}

#collaborator-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.4rem 0;
  border-bottom: 1px solid #eee;
}

#collaborator-list button {
  background-color: #ef4444;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 0.3rem 0.6rem;
  font-size: 0.9rem;
  cursor: pointer;
}

#collaborator-list button:hover {
  background-color: #dc2626;
}


.myprojects-action-link:hover,
.myprojects-delete-btn:hover {
opacity: 0.75;
  text-decoration: underline;
}

.myprojects-empty-state {
display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
}

.myprojects-empty-video {
width: 420px;
  max-width: 100%;
  margin-bottom: 24px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.myprojects-empty-text {
font-size: 1.1rem;
  color: #333;
  margin-bottom: 20px;
  line-height: 1.6;
}

.library-label {
	display: block;
	max-width: 100%;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	font-size: 12px;
	line-height: 1.2;
	text-align: center;
	cursor: default;
}

.library-thumbnail {
  width: 64px;
  height: 64px;
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}

.library-thumbnail {
margin: 0 auto 12px;
}

.project-status.production {
background-color: #e1f0ff;
  color: #0056b3;
}

.library-thumbnail.placeholder {
display: flex;
  align-items: center;
  justify-content: center;
  background: #f0f0f0;
  color: #555;
  font-size: 1.5rem;
  width: 64px;
  height: 64px;
  border-radius: 6px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}

.myprojects-table tr {
margin-bottom: 20px;
    border: 1px solid #ddd;
    border-radius: 10px;
    padding: 16px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

.myprojects-table td {
border: none;
    padding: 8px 0;
}



/* ======================= */
/* === 2. SCOPE STYLES === */
/* ======================= */

.production-scope-container {
  max-width: 90%;
  margin: 0 auto;
  padding: 40px 20px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}
.production-scope-description {
  font-size: 0.95rem;
  color: #444;
  margin-bottom: 2rem;
  line-height: 1.6;
}
.production-scope-grid {
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.production-scope-grid-row {
  display: flex;
  gap: 1rem;
}
.production-scope-grid-row .production-scope-form-group {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.production-scope-form-group label {
  font-weight: 600;
  margin-bottom: 3px;
}
.production-scope-form-group .hint {
  display: block;
  font-size: 0.8rem;
  color: #888;
  font-weight: normal;
  margin-top: 2px;
}
.production-scope-form-group input,
.production-scope-form-group select,
.production-scope-form-group textarea {
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 1rem;
  font-family: inherit;
}

.production-scope-advanced-wrapper {
  margin-top: 2rem;
}
.production-scope-advanced-toggle {
  background: none;
  border: none;
  color: #007bff;
  font-weight: 500;
  cursor: pointer;
  font-size: 0.9rem;
}
.production-scope-advanced-toggle .hint {
  font-size: 0.8rem;
  color: #888;
}
.production-scope-advanced-section {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #ddd;
}
.production-scope-submit {
  margin-top: 2rem;
  padding: 12px 24px;
  font-size: 1rem;
  background-color: #00aaff;
  color: white;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.production-scope-submit:hover {
background-color: #008ecc;
}

.text-other{
  width:100%;
}

.linked-file{
  color: #008ecc !important;
  cursor: pointer;
}
/* Optional fade animation for advanced reveal */
@keyframes fadeIn {
from {
    opacity: 0;
    transform: translateY(10px);
}
}

/* Mobile stacking */
@media (max-width: 768px) {
.production-scope-grid {
    flex-direction: column;
    gap: 0;
}
.production-scope-column {
margin-bottom: 40px;
}
}

/* ========================= */
/* === 3. OUTLINE STYLES === */
/* ========================= */

.production-outline-header {
display: flex;
    justify-content: space-around;
    margin-bottom: 25px;
    font-size: 16px;
}

.production-outline-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
  gap: 24px;
  margin-bottom: 32px;
}

.production-outline-card {
  background-color: white;
  border-radius: 10px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  transition: transform 0.2s ease;
  min-height: 280px;   /* ✅ updated from 260px */
  height: auto;        /* ✅ allow natural growth */
  overflow: visible;
}

.production-outline-card:hover {
  transform: scale(1.015);
  background-color: #f8fcff;
}

.production-outline-card {
  position: relative;
  transition: all 0.2s ease;
}

.production-outline-card input[type="radio"]:checked + .production-outline-title,
.production-outline-card input[type="radio"]:checked + .production-outline-title + .production-outline-summary {
  /* allow + sibling selectors to inherit styling */
}

.production-outline-card input[type="radio"]:checked ~ * {
  border: 2px solid #19BEFF;
  background-color: #f0fbff;
  box-shadow: 0 0 0 3px rgba(25, 190, 255, 0.25);
  border-radius: 10px;
}


.production-outline-title {
  font-size: 18px;
  font-weight: 600;
  color: #111;
  margin-bottom: 12px;
}

.production-outline-summary {
  font-size: 15px;
  line-height: 1.6;
  color: #444;
  overflow: visible;
  max-height: none;
  flex-grow: 1;
}

.production-outline-title::before {
    content: "📘 ";
    font-size: 20px;
    margin-right: 4px;
}

.production-outline-heading {
font-size: 2rem;
  margin-bottom: 24px;
  text-align: center;
  color: #1e2d3c;
  font-weight: 600;
}
.production-outline-metadata {
display: flex;
  justify-content: space-between;
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 24px;
  font-size: 15px;
  gap: 12px;
}
.production-meta-label {
font-weight: 600;
  color: #333;
  margin-right: 6px;
}
.production-outline-actions {
display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 40px;
}
.production-outline-title::before {
content: '';
  font-size: 20px;
}

.production-outline-nav-bottom {
  margin-top: 2rem;
  display: flex;
  justify-content: flex-start;
}

.production-outline-back-button {
  font-size: 16px;
  font-weight: 500;
  color: #0077cc;
  text-decoration: none;
  background-color: transparent;
  border: none;
  padding: 6px 12px;
  border-radius: 6px;
  transition: background-color 0.2s ease;
}

.production-outline-back-button:hover {
  background-color: rgba(0, 119, 204, 0.1);
  text-decoration: underline;
}


.production-main input[type="radio"]:checked + label {
border: 2px solid #19BEFF;
    box-shadow: 0 0 10px rgba(25, 190, 255, 0.5);
    background-color: #f0fcff;
    border-radius: 10px;
}


.production-refine-container {
  display: flex;
  justify-content: center;
}

.production-refine-modal {
  display: none;
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.5);
}

.production-refine-modal-content {
  background-color: #fff;
  margin: 8% auto;
  padding: 24px;
  border-radius: 12px;
  width: 720px;
  max-width: 90vw;
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.15);
  position: relative;
  display: flex;
  flex-direction: column;
  animation: production-refine-fade-in 0.25s ease-out;
}

@keyframes production-refine-fade-in {
  from { opacity: 0; transform: translateY(-20px); }
  to { opacity: 1; transform: translateY(0); }
}

.production-refine-modal-close {
  position: absolute;
  top: 18px;
  right: 22px;
  font-size: 24px;
  font-weight: bold;
  color: #666;
  background: none;
  border: none;
  cursor: pointer;
  line-height: 1;
  transition: color 0.2s ease;
}

.production-refine-modal-close:hover {
  color: #000;
}

.production-refine-modal-title {
  margin-top: 0;
  font-size: 24px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 8px;
}

.production-refine-modal-subtext {
  font-size: 14px;
  color: #555;
  text-align: center;
  margin-bottom: 20px;
  line-height: 1.5;
}

.production-refine-modal-textarea {
  width: 100%;
  height: 120px;
  padding: 12px;
  font-size: 14px;
  font-family: inherit;
  border: 1px solid #ccc;
  border-radius: 8px;
  resize: vertical;
  margin-bottom: 2px;
  box-sizing: border-box;
}

.production-refine-modal-input {
  width: 100%;
  padding: 12px;
  font-size: 14px;
  font-family: inherit;
  border: 1px solid #ccc;
  border-radius: 8px;
  resize: vertical;
  margin-bottom: 2px;
  box-sizing: border-box;

}

.production-refine-modal-submit {
  display: block;
  margin: 0 auto;
  background-color: #19BEFF;
  color: white;
  font-weight: 600;
  border: none;
  border-radius: 8px;
  padding: 12px 24px;
  font-size: 15px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.production-refine-modal-submit:hover {
  background-color: #0eaedf;
}

.production-refine-preview {
  background-color: #f9fafb;
  border: 1px solid #d8dee6;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 20px;
  max-height: 200px;
  overflow-y: auto;
}

.production-refine-preview-title {
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 8px;
  color: #333;
}

.production-refine-preview-summary {
  font-size: 14px;
  line-height: 1.4;
  color: #555;
  white-space: pre-line;
}

@keyframes production-spin {
0% { transform: rotate(0deg);
}
}


/* ===================================== */
/* === 4. DECONSTRUCT OUTLINE STYLES === */
/* ===================================== */

.production-outline-heading {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 32px;
  text-align: center;
}

.production-outline-metadata {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  font-size: 14px;
  margin-bottom: 24px;
}

.production-meta-label {
  font-weight: 600;
  margin-right: 4px;
}

.production-outline-preview {
  margin-bottom: 40px;
}

.production-outline-preview-heading {
  font-weight: 700;
  margin-bottom: 8px;
}

.production-outline-preview-box {
  background-color: #f9f9f9;
  padding: 16px 20px;
  border-radius: 8px;
  font-size: 15px;
  line-height: 1.5;
  color: #333;
}

.production-deconstruct-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 24px;
  margin-bottom: 48px;
}

.production-deconstruct-arc {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.production-deconstruct-section {
  background-color: #fff;
  padding: 5px;
  border-radius: 12px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  font-size: 15px;
  line-height: 1.5;
}

.production-deconstruct-card {
  background-color: #fff;
  padding: 20px;
  border-radius: 12px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  font-size: 15px;
  line-height: 1.5;
}

.production-deconstruct-card p {
  padding: 10px;
}

.production-deconstruct-buttons {
  position: sticky;
  bottom: 0;
  z-index: 20;
  background-color: #fff;
  padding: 16px 0 0;
  margin-top: 40px;
  display: flex;
  justify-content: center;
  gap: 20px;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.06);
  border-top: 1px solid #eee;
}

/* ========================= */
/* === 5. CHARACTER DEV  === */
/* ========================= */

.production-character .production-character-meta {
  margin-bottom: 20px;
  line-height: 1.6;
  max-height: 347px;
  overflow-y: auto;
}

.production-character-image-container {
  display: flex;
  justify-content: center;
  gap: 16px;             /* tighter spacing */
  flex-wrap: wrap;
}

.production-character-role {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 8px;
}

.production-character-pose-strip {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-top: 12px;
  flex-wrap: wrap;       /* allow multi-row on small screens */
}

.production-pose-frame {
  max-width: 440px;       /* shrink slightly for fitting multiple poses */
  max-height: 540px;
  width: 100%;            /* responsive inside container */
  height: auto;           /* maintain aspect ratio */
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  object-fit: contain;    /* ensures no distortion */
}

.production-pose-frame:hover {
  transform: scale(1.05);
  transition: transform 0.2s ease;
  cursor: pointer;
}

.production-character-image {
max-width: 600px;
    max-height: 400px;
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    margin: 20px 0;
}

.production-character-layout {
  display: flex;
  gap: 60px; /* wider gap between meta and images */
  align-items: flex-start;
  justify-content: center;  /* Center horizontally within the form */
  margin-bottom: 24px;
  flex-wrap: wrap;
  width: 100%;
  max-width: 100%;
}

.production-character-meta {
  flex: 0 0 650px; /* wider fixed column */
  background: #f9f9f9;
  border-radius: 12px;
  padding: 24px;
  margin-top: 50px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  font-size: 15px;
  line-height: 1.6;
}

.production-character-title {
  font-size: 24px;
  font-weight: bold;
}

.production-character-meta > div {
  margin-bottom: 16px;
}

.production-character-image-container {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: flex-start;
  align-items: flex-start;
  min-width: 0;
}

.production-main.production-character {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 40px 20px;
  height: calc(100vh - 120px); /* adjust based on button bar/footer/header space */
}

@media (max-width: 768px) {
  .production-pose-frame {
    max-width: 45%;   /* 2 per row */
    height: auto;
  }
}

.list-collapsed li:nth-child(n+5){
  display:none;
}

.list-expanded li:nth-child(n+5){
  display:list-item;
}

.char-list-toggle{
    width: 110px;
    height: 23px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    color: white;
    background-color: #19BEFF;
    transition: background-color 0.25s ease;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.12);
}

/* ============================== */
/* === 6. STORYBOARD STYLES ==== */
/* ============================== */

.production-storyboard {
  padding: 40px 20px;
  background-color: #f9f9fb;
  min-height: 100vh;
}

.production-storyboard-content {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  margin-top: 30px;
  flex-wrap: wrap;
  align-items: flex-start;
}

#noname {
  flex: 1 1 auto;
  min-width: 0;
}
/* Scene Grid (Left Column) */
.production-scene-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  max-width: none;
  flex: 1;
  width: 60%;
}

.production-scene-tile {
  width: 240px;
  background-color: #fff;
  border-radius: 16px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  padding: 16px;
  transition: all 0.2s ease-in-out;
  cursor: pointer;
}

.production-scene-tile.selected {
  border: 2px solid #267df4;
  padding: 14px;
}

.production-scene-thumbnail img {
  width: 100%;
  border-radius: 10px;
  margin-bottom: 12px;
  object-fit: cover;
}

.production-scene-caption {
  font-size: 14px;
  color: #333;
  line-height: 1.4;
}

.production-scene-caption b {
  font-size: 15px;
  color: #222;
}

.production-scene-summary {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  color: #666;
}

/* Detail Panel (Right Column) */
.production-scene-detail-container {
  flex: 0 0 340px;
  width: 40%;
}

/* ===== PAGINATION BUTTONS ===== */
.btn-pagination {
    background: transparent;
    border: none;
    color: #0080FF;
    font-family: 'Work Sans', sans-serif;
    font-size: 15px;
    font-weight: 600;
    padding: 10px 20px;
    cursor: pointer;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.15s ease;
    position: relative;
}

/* Subtle underline accent */
.btn-pagination::after {
    content: '';
    position: absolute;
    bottom: 4px;
    left: 20px;
    right: 20px;
    height: 2px;
    background-color: #FFCD00;
    border-radius: 2px;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.uppy-Dashboard-Item-status,
.uppy-Dashboard-Item-progressIndicator,
.uppy-Dashboard-Item-progress,
.uppy-StatusBar-progress {
  display: none !important;
}

.btn-pagination:hover {
    background-color: #f0f8ff;
    color: #005fcc;
    transform: translateY(-1px);
}

.btn-pagination:hover::after {
    opacity: 1;
}

.btn-pagination:active {
    transform: translateY(0px);
    background-color: #e0f0ff;
}

.btn-pagination:disabled {
    color: #bbb;
    cursor: not-allowed;
    transform: none;
}

.btn-pagination:disabled::after {
    display: none;
}

#sceneDetailBox {
  background-color: #fff;
  padding: 24px;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border: none;
}

#sceneDetailBox {
  position: relative; /* required for overlay positioning */
}

.scene-detail-overlay {
  display: none;
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.75);
  border-radius: inherit;
  z-index: 10;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(2px);
}

.scene-detail-overlay.active {
  display: flex;
}

.scene-detail-spinner {
  width: 36px;
  height: 36px;
  border: 3px solid #e0e0e0;
  border-top-color: #0080FF;
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

#sceneDetailBox h3 {
  margin-bottom: 20px;
  font-size: 20px;
  color: #111;
}

#sceneDetailBox div {
  margin-bottom: 12px;
  font-size: 14px;
}

#sceneDetailBox span {
  color: #444;
}

/* Refine Button */
.production-refine-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background-color: #267df4;
  color: #fff;
  border: none;
  padding: 10px 16px;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  transition: background-color 0.2s ease-in-out;
}

.production-refine-button:hover {
  background-color: #145bcc;
}

/* Back & Next Controls */
.production-storyboard-nav {
  text-align: center;
  margin-top: 40px;
}

.production-storyboard-nav button,
.production-storyboard-nav a {
  margin: 0 6px;
}

.production-storyboard-footer {
  margin-top: 40px;
  text-align: center;
}

.production-storyboard-footer {
  margin-top: 40px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.production-storyboard-nav {
  display: flex;
  justify-content: center;
  gap: 16px;
}

.pagination-button {
  background-color: #fff;
  color: #333;
  border: 1px solid #ccc;
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}

.pagination-button:hover {
  background-color: #f0f0f0;
  border-color: #aaa;
}

.disabled-note {
  font-size: 14px;
  color: #999;
}

.production-storyboard-footer-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-top: 40px;
  flex-wrap: wrap;
}

.production-storyboard-footer-row .btn-back,
.production-storyboard-footer-row .btn-pagination,
.production-storyboard-footer-row .next-button {
  padding: 10px 16px;
  border-radius: 8px;
  border: none;
  font-size: 14px;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0,0,0,0.1);
  transition: all 0.2s ease-in-out;
}

.production-storyboard-footer-row .btn-back {
  background-color: #f3f3f3;
  color: #333;
}

.production-storyboard-footer-row .btn-pagination {
  background-color: #e0e0e0;
  color: #333;
}

.production-storyboard-footer-row .next-button {
  background-color: #00c27e;
  color: #fff;
}


/* ============================ */
/* === 7. PRODUCTION STYLES === */
/* ============================ */

 /* moved to production.css






/* ===== HEADER & FOOTER ===== */

.sb-footer {
background-color: #FFFFFF;
    color: #000000;
    text-align: center;
    padding: 5px;
    width: 100%;
    font-size: 12px;
    margin-top: auto; /* This pushes the footer to the bottom */
}


/* ===== NAVIGATION ===== */




/* ===== SIGNUP ===== */

.form-control {
border-radius: 10px;
    border-color: #AFAFAF;
    box-sizing: border-box;
    height: 100%;
    max-height: 36px;
    max-width: 265px;
    padding: 10px 8px 10px 8px;
    font-family: 'Work Sans', sans-serif;
    color: #AFAFAF !important;
    font-size: 16px;
    font-weight: 400;
    line-height: 20px;
    background-color: #fff !important;
    margin-bottom: 20px;
}


/* ===== LOGIN ===== */

.login-btn {
background: linear-gradient(to right, #19BEFF, #3769E6);
    border: none; /* Remove border */
    color: white; /* White text */
    padding: 10px 20px; /* Adjust padding for size */
    margin-top: 15px;
    font-size: 16px; /* Ensure font is readable */
    line-height: 20px;
    font-weight: 500;
    border-radius: 20px; /* Fully rounded button */
    width: 100%; /* Button takes full width */
    cursor: pointer; /* Show pointer on hover */
}
.login-btn:hover {
background: linear-gradient(90deg, #007ac9 0%, #5ab0a2 100%); /* Darken on hover */
}


.cancel-btn {
background: linear-gradient(to right, #808080, #acabab);
    border: none; /* Remove border */
    color: white; 
    padding: 10px 20px; /* Adjust padding for size */
    margin-top: 15px;
    font-size: 16px; /* Ensure font is readable */
    line-height: 20px;
    font-weight: 500;
    border-radius: 20px; /* Fully rounded button */
    width: 100%; /* Button takes full width */
    cursor: pointer; /* Show pointer on hover */
}


/* ===== RECENT STORIES ===== */

.recent-stories {
display: flex;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.recent-stories-item {
background-color: #fff; /* White background for the card */
    border-radius: 12px; /* Rounded corners */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Soft shadow for card depth */
    margin-right: 16px;
    position: relative;
    overflow: hidden; /* Ensures content fits within rounded corners */
    display: flex; /* Allows flex layout for card content */
    flex: 0 0 auto;
    flex-direction: column; /* Aligns items in a column */
    width: 288px;
    height: 216px;
    text-decoration: none !important;
    color: inherit;
    z-index: 0;
}
.recent-stories-item {
background-color: #fff; /* White background for the card */
    border-radius: 12px; /* Rounded corners */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Soft shadow for card depth */
    margin: 16px; /* Space around each card */
    overflow: hidden; /* Ensures content fits within rounded corners */
    display: flex; /* Allows flex layout for card content */
    flex-direction: column; /* Aligns items in a column */
    width: 288px;
    height: 216px;
    text-decoration: none !important;
    color: inherit;
    z-index: 0;
    position: relative; /* Added to ensure arrows can overlay cards */
}
.recent-stories-item:hover {
position: relative;
    z-index: 100;
}
.recent-stories-item img {
width: 288px;
    height: 128px;
    object-fit: cover;
    z-index: 0;
}
.recent-stories-item-content {
padding: 5px;
}
.recent-stories-item-title {
font-size: 16px;
    font-weight: 600;
    line-height: 20px;
    margin: 5px 0;
    color: #1E2D3C;
    overflow: hidden; /* Hide the overflow text */
    width: 90%;
}
.recent-stories-item-menu {
display: flex;
    align-items: center;
    justify-content: center;
    width: 10%;
}
.recent-stories-item-menu img {
width: 2.25px;
    height: 15px;
}
.recent-stories-item-info {
display: flex;
    align-items: center;
    margin-top: 10px;
    margin-bottom: 5px;
}
.recent-store {
display: flex;
    overflow-x: auto;
    scroll-behavior: smooth;
}
.recent-store-item {
background-color: #fff; /* White background for the card */
    border-radius: 12px; /* Rounded corners */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Soft shadow for card depth */
    margin-right: 16px;
    position: relative;
    overflow: hidden; /* Ensures content fits within rounded corners */
    display: flex; /* Allows flex layout for card content */
    flex: 0 0 auto;
    flex-direction: column; /* Aligns items in a column */
    width: 288px;
    height: 216px;
    text-decoration: none !important;
    color: inherit;
    z-index: 0;
}
.recent-store-item {
background-color: #fff; /* White background for the card */
    border-radius: 12px; /* Rounded corners */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Soft shadow for card depth */
    margin: 16px; /* Space around each card */
    overflow: hidden; /* Ensures content fits within rounded corners */
    display: flex; /* Allows flex layout for card content */
    flex-direction: column; /* Aligns items in a column */
    width: 288px;
    height: 216px;
    text-decoration: none !important;
    color: inherit;
    z-index: 0;
    position: relative; /* Added to ensure arrows can overlay cards */
}
.recent-store-item:hover {
position: relative;
    z-index: 100;
}
.recent-store-item img {
width: 288px;
    height: 128px;
    object-fit: cover;
    z-index: 0;
}
.recent-store-item-content {
padding: 5px;
}
.recent-store-item-title {
font-size: 16px;
    font-weight: 600;
    line-height: 20px;
    margin: 5px 0;
    color: #1E2D3C;
    overflow: hidden; /* Hide the overflow text */
    width: 90%;
}
.recent-store-item-menu {
display: flex;
    align-items: center;
    justify-content: center;
    width: 10%;
}
.recent-store-item-menu img {
width: 2.25px;
    height: 15px;
}
.recent-store-item-info {
display: flex;
    align-items: center;
    margin-top: 10px;
    margin-bottom: 5px;
}
.scroll-left,
.scroll-right {
background-color: transparent;
    border: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    z-index: 10;
    font-size: 24px;
    padding: 0;
}
.scroll-left {
left: -16px; /* Adjust to position over the first card */
}
.scroll-right {
right: -16px; /* Adjust to position over the last card */
}
.scroll-left img,
.scroll-right img {
width: 40px; /* Adjust size as needed */
    height: auto;
    opacity: 0.8;
    transition: opacity 0.2s ease;
}
.scroll-left img:hover,
.scroll-right img:hover {
opacity: 1;
}


/* ===== EXCHANGE ===== */

.exch-keyinfo {
height: 20%; /* 10% of the container height */
    background-color: #ffffff; /* Example background color */
    border-bottom: 1px solid #ccc; /* Optional: Add a bottom border */
    padding: 10px; /* Reduced padding */
    display: grid;
    grid-template-columns: 1fr 1fr; /* 2 columns of equal width */
    grid-template-rows: 1fr 1fr; /* 2 rows of equal height */
    gap: 5px; /* Reduced gap */
}
.exch-keyinfo .grid-item {
background-color: #f9f9f9; /* Light background for each grid item */
    border-radius: 8px; /* Rounded corners */
    padding: 5px; /* Reduced padding */
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* Ensure even spacing within the grid item */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Subtle shadow for better visibility */
}
.exch-feed {
padding: 20px;
    background-color: #f9f9f9;
    max-height: 90%;
    overflow-y: scroll;
}
.exch-feed-item {
display: flex;
    align-items: center;
    background-color: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 10px;
    margin-bottom: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.exch-feed-item img {
width: 40px;
    height: 40px;
    border-radius: 50%;
    margin-right: 10px;
}


/* ===== UNMATCHED / MISCELLANEOUS ===== */

.text-content {
width: 100%;
    max-width: 560px;
}
.login-form-control {
border-radius: 10px;
    border-color: #AFAFAF;
    box-sizing: border-box;
    height: 100%;
    max-height: 36px;
    width: 100%;
    padding: 10px 8px 10px 8px;
    font-family: 'Work Sans', sans-serif;
    color: #AFAFAF !important;
    font-size: 16px;
    font-weight: 400;
    line-height: 20px;
    background-color: #fff !important;
    margin-bottom: 20px;
}
.password-reset-form-control {
border-radius: 10px;
    border-color: #AFAFAF;
    box-sizing: border-box;
    height: 100%;
    max-height: 36px;
    width: 100%;
    padding: 10px 8px 10px 8px;
    font-family: 'Work Sans', sans-serif;
    color: #AFAFAF !important;
    font-size: 16px;
    font-weight: 400;
    line-height: 20px;
    background-color: #fff !important;
    margin-bottom: 20px;
}
.login-form-check {
display: flex;
    align-items: center;
}
.studio-tr, .studio-th {
padding: 12px; /* Add padding to space things out */
    text-align: left;
    border: 1px solid #ddd; /* Add border to separate rows */
}
.studio-icon {
width: 30px; /* Set the width of the icons */
    height: auto; /* Maintain aspect ratio */
    margin: 10px;
    cursor: pointer;
}
.menu-icon {
position: relative;
    display: inline-block;
    z-index: 10; /* Ensure it is above other elements */
}
.menu-icon img {
width: 24px;
    height: 24px;
}
10%, 90% {
opacity: 1;
}
.grid-title {
font-size: 1.3em; /* Reduced font size */
    font-weight: bold;
    color: #333;
    margin-bottom: 5px; /* Reduced margin */
    text-align: left; /* Center align the title */
}
.bundle-items {
display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
}
.remove-bundle-item {
position: absolute;
    top: -12px; /* Adjust to move it slightly up, so it overlaps */
    right: -12px; /* Adjust to move it slightly to the right */
    width: 32px; /* Increase size */
    height: 32px; /* Increase size */
    background-color: black;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10;
    cursor: pointer;
}
.remove-bundle-item svg {
width: 20px; /* Increase size of the "X" */
    height: 20px;
    fill: white;
}
.filter-by-select {
height: 35px;
    font-family: inherit;
    font-size: inherit;
    padding: 5px;
    border-radius: 4px;
    border: 1px solid #ccc;
    box-sizing: border-box;
}
.bundle-form-control {
width: 100%;
    padding: 10px;
    font-size: 14px;
    border-radius: 4px;
    border: 1px solid #ccc;
}
#deleteButton {
flex-shrink: 0;
    flex-grow: 0; /* Ensuring the button does not grow */
    visibility: hidden; /* Hide button but keep its space reserved */
}
#moveButton {
flex-shrink: 0;
    flex-grow: 1;
    visibility: hidden;
}
to {
opacity: 1;
    transform: translateY(0);
}
to {
opacity: 1;
    transform: translateY(0);
}
.hint {
font-size: 0.85rem;
  color: #888;
  margin-left: 6px;
  font-weight: normal;
}
100% {
transform: rotate(360deg);
}
.toggle-icon {
font-size: 16px;
  color: #666;
}
#scene-list {
list-style-type: none;
  padding-left: 0;
  margin: 0;
}

/* ===========================
   LEARNING APP (namespaced)
=========================== */
.learning-dashboard h2.learning-title {
    margin-bottom: 20px;
}

.learning-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.learning-card {
    min-width: 220px;
}

.learning-card img {
    width: 48px;
    height: 48px;
    margin-bottom: 10px;
}

/* ==========================
   LEARNING DASHBOARD CARDS
   Reduced Height
   ========================== */

.learning-dashboard .dashboard-card {
    min-height: 140px;          /* previously ~260–280px */
    padding: 18px 20px;         /* reduce interior space */
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 8px;                   /* reduce gap between elements */
}

.learning-dashboard .dashboard-card img {
    width: 40px;
    height: 40px;               /* slightly smaller icons */
    margin-bottom: 4px;
}

.learning-dashboard .dashboard-card h3 {
    margin: 0;
    font-size: 17px;
}

.learning-dashboard .dashboard-card p {
    margin: 0;
    font-size: 13px;
    line-height: 1.2;
}

.learning-dashboard .dashboard-card .dashboard-card-link {
    margin-top: auto;           /* push link to bottom, but still compact */
    font-size: 14px;
}


/* ===============================================
   LEARNING APP — Namespaced CRUD UI Styles
   =============================================== */

.learning-page-title {
    margin-bottom: 20px;
    font-size: 24px;
    font-weight: bold;
}

/* Table */
.learning-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
    background: white;
}

.learning-table thead {
    background: #f5f5f5;
}

.learning-table th,
.learning-table td {
    padding: 10px 12px;
    border-bottom: 1px solid #e1e1e1;
    text-align: left;
}

.learning-table tr:hover {
    background: #fafafa;
}

.learning-col-actions {
    width: 150px;
    text-align: right;
}

/* Buttons */
.learning-btn {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 4px;
    font-size: 14px;
    text-decoration: none;
    cursor: pointer;
}

.learning-btn-primary {
    background: #3a7afe;
    color: white;
}

.learning-btn-secondary {
    background: #dddddd;
    color: #333;
}

.learning-btn-danger {
    background: #e74c3c;
    color: white;
}

.learning-btn-small {
    padding: 4px 8px;
    font-size: 13px;
}

/* Form */
.learning-form {
    max-width: 600px;
}

.learning-form-container {
    padding-top: 20px;
}

.learning-form-actions {
    margin-top: 20px;
    display: flex;
    gap: 10px;
}

.learning-card-row {
    display: flex;
    flex-wrap: nowrap;
    gap: 24px;
    margin-bottom: 32px;
}

.learning-card-row .dashboard-card {
    flex: 1;
    min-width: 220px;
}

/* Expand/Collapse Controls */
.overview-controls {
    margin-bottom: 12px;
}

.tree-btn {
    background: #1976d2;
    border: none;
    color: white;
    padding: 6px 12px;
    margin-right: 10px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
}

.tree-btn:hover {
    background: #1258a6;
}

/* Tree Structure */
.overview-tree {
    margin-top: 12px;
    font-size: 15px;
}

.tree-node {
    margin-left: 20px;
    margin-top: 4px;
}

.tree-label {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 6px;
    cursor: pointer;
    border-radius: 4px;
    transition: background 0.15s ease;
}

.tree-label:hover {
    background-color: #eef3ff;
}

.tree-toggle {
    width: 18px;
    height: 18px;
    border: 1px solid #888;
    border-radius: 3px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    background: #fff;
    font-size: 12px;
    font-weight: bold;
    transition: transform 0.15s ease;
}

.tree-toggle.expanded {
    transform: rotate(90deg);
}

.tree-text a {
    color: #1976d2;
    text-decoration: none;
}

.tree-text a:hover {
    text-decoration: underline;
}

/* Expandable children */
.tree-children {
    display: none;
    margin-left: 16px;
    transition: all 0.2s ease-in-out;
}

.tree-open {
    display: block !important;
}

/* Lessons do not expand */
.lesson-empty {
    border: none !important;
    background: transparent !important;
}

/* ────────────────────────────────────────────────
   SYSADMIN FORMS — namespaced copy of production form styling
   ──────────────────────────────────────────────── */

.sysadmin-form-row {
    display: flex;
    align-items: flex-start;
    margin-bottom: 18px;
}

.sysadmin-form-label {
    width: 180px;
    font-weight: 600;
    padding-top: 6px;
    flex-shrink: 0;
}

.sysadmin-form-field {
    flex: 1;
}

.sysadmin-input,
.sysadmin-textarea {
    width: 100%;
    padding: 7px 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 15px;
    font-family: inherit;
    box-sizing: border-box;
}

.sysadmin-textarea {
    min-height: 140px;
    resize: vertical;
}

.score-good { color: #2e7d32; font-weight: 600; }
.score-mid  { color: #f9a825; }
.score-low  { color: #c62828; }



/* ==========================
   TEACHER ANALYTICS
   ========================== */

.analytics-main {
  padding: 30px 20px;
  background: #fafafa;
}

.analytics-section {
  max-width: 1400px;
  margin: 0 auto;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  padding: 24px;
  overflow-x: auto;
}

.analytics-title {
  font-size: 1.8em;
  margin-bottom: 20px;
  font-weight: 700;
  text-align: center;
  color: #222;
}

.analytics-table {
  width: 100%;
  border-collapse: collapse;
}

.analytics-table th,
.analytics-table td {
  border: 1px solid #ddd;
  padding: 8px;
  text-align: center;
  white-space: nowrap;
}

.analytics-table th {
  background: #f7f7f7;
  font-weight: 600;
}

.analytics-row:hover {
  background: #fdf7e3;
}

.expand-cell {
  width: 1%;
  padding: 0 2px;
}

.expand-btn {
  cursor: pointer;
  border: none;
  background: #ffd700;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  font-weight: bold;
  line-height: 1;
}

/* navigation */
.menu-toggle {
    display: none;
}
.menu-icon {
    display: block; /* Show the button by default */
    cursor: pointer;
    padding: 10px;
    text-align: center;
    border-bottom: 1px solid #e0e0e0;  /* faint grey separator */
}
.menu-toggle:checked ~ .menu-content .menu-text{
  display:none;
}
.vertical-nav:has(.menu-toggle:checked) {
  max-width: 77px;
}
.vertical-nav:has(.menu-toggle:checked)+#content-container {
  margin-left:4%;
}
.vertical-nav:has(.menu-toggle:checked)+.myprojects-container {
  margin-left:4%;
}
.vertical-nav.vertical-nav:has(.menu-toggle:checked)+main.marketplace-page{
  margin-left:4%;
}
.vertical-nav.vertical-nav:has(.menu-toggle:checked)+.production-main{
  margin-left:-1%;
}

/* ================ */
/*    MARKETPLACE   */
/* ================ */
main.marketplace-page {
  font-family: "Inter", sans-serif;
  padding: 90px 40px 40px;     /* header = 70px + margin */
  background: #f8f9fb;
  color: #222;
  width:90%;
  margin-left:11%;
}

/* ===== TEACHER STATS ===== */
.marketplace-stats {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  padding: 18px 25px;
  margin-bottom: 25px;
}
.stat-block { flex: 1 1 160px; text-align: center; margin: 8px; }
.stat-label { font-size: 13px; color: #666; }
.stat-value { font-size: 22px; font-weight: 700; }

/* ===== FILTER BAR ===== */
.marketplace-filters { margin-bottom: 15px; }
.marketplace-filters h2 { font-size: 18px; margin-bottom: 8px; }
.filter-row { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-btn {
  padding: 6px 14px;
  border: none;
  border-radius: 20px;
  background: #ddd;
  cursor: pointer;
  transition: background .3s;
}
.filter-btn:hover, .filter-btn.active { background: #ffd74b; }

/* ===== GRID ===== */
.marketplace-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(240px,1fr));
  gap: 18px;
}
.marketplace-item {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .2s;
}
.marketplace-item:hover { transform: scale(1.03); }
.marketplace-thumb {
  height: 150px;
  background: #eee;
  overflow: hidden;
}
.marketplace-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.marketplace-info { padding: 12px; flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
.marketplace-info h4 { font-size: 15px; margin: 0 0 4px; }
.marketplace-info p.desc { font-size: 12px; color: #666; margin: 0 0 6px; }
.marketplace-info .meta { font-size: 12px; color: #888; margin-bottom: 4px; }
.marketplace-info .price { font-weight: 600; margin-bottom: 8px; }
.marketplace-info button {
  align-self: center;
  padding: 6px 12px;
  border: none;
  border-radius: 6px;
  background: #00bfa6;
  color: #fff;
  cursor: pointer;
  font-size: 13px;
}
.marketplace-info button.free { background: #888; }

/* ===== CAROUSEL ===== */
.latest-carousel { margin-top: 40px; }
.latest-carousel h3 { font-size: 18px; margin-bottom: 10px; }
.carousel-track {
  display: flex;
  gap: 12px;
  overflow: hidden;
}
.carousel-item {
  flex: 0 0 180px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  padding: 8px;
  text-align: center;
}
.carousel-item img {
  width: 100%;
  height: 100px;
  object-fit: cover;
  border-radius: 4px;
}
.carousel-title { font-weight: 600; font-size: 13px; display: block; margin-top: 4px; }
.carousel-meta { font-size: 11px; color: #666; }