@charset "UTF-8";
.highlight .err { color: #e3d2d2; background-color: #8c2121; }
.highlight .c { color: #8a8a8a; }
.highlight .c1 { color: #8a8a8a; }
.highlight .cm { color: #8a8a8a; }
.highlight .cp { color: #8a8a8a; }
.highlight .cs { color: #8a8a8a; font-style: italic; }
.highlight .gd { color: #d85a5a; }
.highlight .gd .x { color: #d85a5a; }
.highlight .ge { font-style: italic; }
.highlight .gh { color: #999999; }
.highlight .gi { color: #4ec64e; }
.highlight .gi .x { color: #4ec64e; }
.highlight .go { color: #888888; }
.highlight .gp { color: #555555; }
.highlight .gr { color: #f07178; }
.highlight .gs { font-weight: bold; }
.highlight .gt { color: #f07178; }
.highlight .gu { color: #aaaaaa; }
.highlight .k { color: #d85a7b; }
.highlight .kc { color: #d85a7b; }
.highlight .kd { color: #d85a7b; }
.highlight .kp { color: #d85a7b; }
.highlight .kr { color: #d85a7b; }
.highlight .kt { color: #ffcb6b; }
.highlight .n { color: #c7d1d8; }
.highlight .na { color: #11a69f; }
.highlight .nb { color: #d85a7b; }
.highlight .bp { color: #999999; }
.highlight .nc { color: #11a69f; }
.highlight .ne { color: #990000; }
.highlight .nf { color: #5ab780; }
.highlight .ni { color: #11a69f; }
.highlight .nn { color: #11a69f; }
.highlight .no { color: #9d99e6; }
.highlight .nt { color: #de3581; }
.highlight .nv { color: #9680b1; }
.highlight .vc { color: #9680b1; }
.highlight .vg { color: #9680b1; }
.highlight .vi { color: #9680b1; }
.highlight .o { color: #bcd890; }
.highlight .ow { color: #bcd890; }
.highlight .m { color: #9d99e6; }
.highlight .mf { color: #9d99e6; }
.highlight .mh { color: #9d99e6; }
.highlight .mi { color: #9d99e6; }
.highlight .il { color: #9d99e6; }
.highlight .mo { color: #9d99e6; }
.highlight .s { color: #baa94a; }
.highlight .s1 { color: #baa94a; }
.highlight .s2 { color: #baa94a; }
.highlight .sb { color: #baa94a; }
.highlight .sc { color: #baa94a; }
.highlight .sd { color: #baa94a; }
.highlight .se { color: #baa94a; }
.highlight .sh { color: #baa94a; }
.highlight .si { color: #baa94a; }
.highlight .sr { color: #009926; }
.highlight .ss { color: #3c90f5; }
.highlight .sx { color: #baa94a; }
.highlight .w { color: #eeffff; }
.highlight .lineno, .highlight .gl { color: #8a8a8a; }
.highlight .hll { background-color: #373730; }

html { font-size: 16px; }

/** Reset some basic elements */
body, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, dl, dd, ol, ul, figure { margin: 0; padding: 0; }

/** Basic styling */
body { font: 400 16px/1.5 -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Segoe UI Emoji", "Segoe UI Symbol", "Apple Color Emoji", Roboto, Helvetica, Arial, sans-serif; color: #959595; background-color: #181818; -webkit-text-size-adjust: 100%; -webkit-font-feature-settings: "kern" 1; -moz-font-feature-settings: "kern" 1; -o-font-feature-settings: "kern" 1; font-feature-settings: "kern" 1; font-kerning: normal; display: flex; min-height: 100vh; flex-direction: column; overflow-wrap: break-word; }

/** Set `margin-bottom` to maintain vertical rhythm */
h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, div.highlight, figure.highlight { margin-bottom: 15px; }

hr { margin-top: 30px; margin-bottom: 30px; }

/** `main` element */
main { display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ }

/** Images */
img { max-width: 100%; vertical-align: middle; }

/** Figures */
figure > img { display: block; }

figcaption { font-size: 14px; }

/** Lists */
ul, ol { margin-left: 30px; }

li > ul, li > ol { margin-bottom: 0; }

/** Headings */
h1, h2, h3, h4, h5, h6 { color: #bbbbbb; font-weight: 500; }

/** Links */
a { color: #5691cd; text-decoration: none; }
a:visited { color: #80bbff; }
a:hover { color: #959595; text-decoration: underline #999999; text-underline-offset: 3px; }
.social-media-list a:hover { text-decoration: none; }
.social-media-list a:hover .username { text-decoration: underline; }

/** Blockquotes */
blockquote { color: #999999; border-left: 4px solid #2b2b2b; padding-left: 15px; font-size: 1.05rem; font-style: italic; }
blockquote > :last-child { margin-bottom: 0; }
blockquote i, blockquote em { font-style: normal; }

/** Code formatting */
pre, code { font-family: "Menlo", "Inconsolata", "Consolas", "Roboto Mono", "Ubuntu Mono", "Liberation Mono", "Courier New", monospace; background-color: #222222; }
@media screen and (max-width: 600px) { pre, code { font-family: monospace; } }

pre { padding: 8px 12px; font-size: 15px; line-height: 1.4; color: #bbbbbb; overflow-x: auto; }
pre > code { display: inline-block; width: 100%; }

div.highlight, figure.highlight { border: 1px solid #2b2b2b; border-radius: 3px; }
div.highlight pre, figure.highlight pre { margin: 0; }
div.highlight table, div.highlight tbody, div.highlight th, div.highlight tr, div.highlight td, figure.highlight table, figure.highlight tbody, figure.highlight th, figure.highlight tr, figure.highlight td { margin: 0; padding: 0; border: 0; }
div.highlight .lineno, div.highlight .gl, figure.highlight .lineno, figure.highlight .gl { text-align: right; }

figure.highlight table { margin: -8px -12px -14px; }
figure.highlight td.gutter { border-right: 1px solid #2b2b2b; }
figure.highlight td.code { width: 100%; }

code.highlighter-rouge { padding: 1px 5px; font-size: 14px; border: 1px solid #2b2b2b; border-radius: 3px; }

/** Wrapper */
.wrapper { max-width: 800px; margin: 0 auto; padding: 0 30px; }
@media screen and (max-width: 600px) { .wrapper { padding-right: 18px; padding-left: 18px; } }

/** Clearfix */
.wrapper:after { content: ""; display: table; clear: both; }

/** Icons */
.orange { color: #f66a0a; }

.grey { color: #828282; }

.svg-icon { width: 1.25em; height: 1.25em; display: inline-block; fill: currentColor; vertical-align: text-bottom; overflow: visible; }

/** Tables */
table { margin-bottom: 30px; width: 100%; text-align: left; color: #959595; border-collapse: collapse; border: 1px solid #2b2b2b; }
table tr:nth-child(even) { background-color: #222222; }
table th, table td { padding: 10px 15px; }
table th { background-color: #323232; border: 1px solid #3e3e3e; }
table td { border: 1px solid #2b2b2b; }
@media screen and (max-width: 800px) { table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; -ms-overflow-style: -ms-autohiding-scrollbar; } }

/** Site header */
.site-header { position: relative; width: 100%; min-height: 55.95px; line-height: 54px; background-color: #181818; border-top: 5px solid #999999; border-bottom: 1px solid #2b2b2b; }

.site-title { font-size: 1.625rem; font-weight: 300; letter-spacing: -1px; margin-bottom: 0; float: left; }
@media screen and (max-width: 600px) { .site-title { padding-right: 45px; } }
.site-title, .site-title:visited { color: #a6a6a6; }

.site-nav { float: right; border: none; background-color: inherit; }
.site-nav label[for="nav-trigger"], .site-nav #nav-trigger { display: none; }
.site-nav .nav-item { color: #959595; }
.site-nav .nav-item:not(:last-child) { margin-right: 15px; }
@media screen and (max-width: 600px) { .site-nav { position: absolute; top: 9px; right: 18px; background-color: #181818; border: 1px solid #2b2b2b; border-radius: 5px; text-align: right; }
  .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; cursor: pointer; }
  .site-nav .menu-icon { float: right; width: 36px; height: 26px; line-height: 0; padding-top: 18px; text-align: center; }
  .site-nav .menu-icon::before { font-family: "Font Awesome 7 Free"; font-weight: 900; }
  .site-nav .menu-icon > svg path { fill: #999999; }
  .site-nav #nav-trigger ~ label[for=nav-trigger] .menu-icon::before { content: "\f0c9"; font-size: 1.25em; }
  .site-nav #nav-trigger ~ .nav-items { clear: both; display: none; }
  .site-nav #nav-trigger:checked ~ label[for=nav-trigger] .menu-icon::before { content: "\f00d"; font-size: 1.5em; }
  .site-nav #nav-trigger:checked ~ .nav-items { display: block; padding-bottom: 5px; }
  .site-nav #nav-trigger:checked ~ .nav-items .nav-item { margin-left: 20px; padding: 5px 10px; }
  .site-nav .nav-item { display: block; margin-right: 15px; padding: 5px 0; color: #959595; line-height: 1.5; } }

/** Site footer */
.site-footer { border-top: 1px solid #2b2b2b; padding: 30px 0; }

.footer-heading { font-size: 1.125rem; margin-bottom: 15px; }

.feed-subscribe .svg-icon { padding: 5px 5px 2px 0; }

.contact-list, .social-media-list { list-style: none; margin-left: 0; }

.footer-col-wrapper, .social-links { font-size: 0.9375rem; color: #858585; }

.footer-col { margin-bottom: 15px; }

.footer-col-1, .footer-col-2 { width: calc(50% - (30px / 2)); }

.footer-col-3 { width: calc(100% - (30px / 2)); }

@media screen and (min-width: 800px) { .footer-col-1 { width: calc(35% - (30px / 2)); }
  .footer-col-2 { width: calc(20% - (30px / 2)); }
  .footer-col-3 { width: calc(45% - (30px / 2)); } }
@media screen and (min-width: 600px) { .footer-col-wrapper { display: flex; }
  .footer-col { width: calc(100% - (30px / 2)); padding: 0 15px; }
  .footer-col:first-child { padding-right: 15px; padding-left: 0; }
  .footer-col:last-child { padding-right: 0; padding-left: 15px; } }
/** Page content */
.page-content { padding: 30px 0; flex: 1 0 auto; }

.page-heading { font-size: 2rem; }

.post-list-heading { font-size: 1.75rem; }

.post-list { margin-left: 0; list-style: none; }
.post-list > li { margin-bottom: 30px; }

.post-meta { font-size: 14px; color: #858585; }

.post-link { display: block; font-size: 1.5rem; }

/** Posts */
.post-header { margin-bottom: 30px; padding-bottom: 18px; text-align: center; border-bottom: 1px solid #2b2b2b; }

.post-meta .bullet-divider { padding-inline: 15px; }
.post-meta .meta-label { font-weight: 600; }
.post-meta .force-inline { display: inline; }
.post-meta .force-inline::before { content: "•"; padding-inline: 5px; }
.post-meta .post-authors { margin-top: 3px; }

.post-title, .post-content h1 { margin-bottom: 10px; font-size: 2.625rem; font-weight: 400; letter-spacing: -1px; line-height: 1.15; }
@media screen and (min-width: 800px) { .post-title, .post-content h1 { font-size: 2.625rem; } }

.post-content { margin-bottom: 30px; }
.post-content h1, .post-content h2, .post-content h3, .post-content h4, .post-content h5, .post-content h6 { margin-top: 30px; }
.post-content h2 { font-size: 1.75rem; }
@media screen and (min-width: 800px) { .post-content h2 { font-size: 2rem; } }
.post-content h3 { font-size: 1.375rem; }
@media screen and (min-width: 800px) { .post-content h3 { font-size: 1.625rem; } }
.post-content h4 { font-size: 1.25rem; }
.post-content h5 { font-size: 1.125rem; }
.post-content h6 { font-size: 1.0625rem; }

.comments-disabled-message { text-align: center; font-weight: 300; }

.social-media-list { display: table; margin: 0 auto; }
.social-media-list li { float: left; min-width: 45px; min-height: 45px; text-align: center; margin: 5px 10px 5px 0; }
.social-media-list li:last-of-type { margin-right: 0; }
.social-media-list li a { display: block; padding: 10px 12px; border: 1px solid #2b2b2b; }
.social-media-list li a:hover { border-color: #a6a6a6; }

/** Pagination navbar */
.pagination { display: table; margin: 0 auto; list-style-type: none; }
.pagination li { float: left; margin: 0 3px; min-width: 45px; min-height: 45px; text-align: center; }
.pagination li a { display: block; text-decoration: none; border: 1px solid #2b2b2b; }
.pagination li a:hover { border-color: #a6a6a6; }
.pagination li a, .pagination li div { min-width: 41px; padding: 10px 12px; text-align: center; box-sizing: border-box; }
.pagination li div { border: 1px solid transparent; }
.pagination li div.pager-edge { color: #2b2b2b; border: 1px dashed; }
.pagination li div.current-page { font-weight: bold; }

/** Task-lists */
.task-list { margin-left: 0; padding-left: 18px; }

.task-list-item { list-style-type: none; }
.task-list-item-checkbox { position: relative; margin-right: 9px; margin-left: -15px; appearance: none; border: 8px solid #2b2b2b; vertical-align: text-top; z-index: -1; }
.task-list-item-checkbox::after { position: absolute; top: -8px; left: -3px; width: 4px; height: 10px; content: ""; border: solid transparent; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.task-list-item-checkbox:checked::after { border-color: #999999; }

/** Grid helpers */
@media screen and (min-width: 800px) { .one-half { width: calc(50% - (30px / 2)); } }
:root { --accent: #4CAFEF; --accent-700: #007ACC; --accent-700-hover: #005FA3; --background: #121212; --bg-0: #000; --bg-1: #1F2020; --bg-2: #1F1F1F; --bg-3: #2A2D2D; --black1: black; --blue: #3182CE; --blue1: #007aff; --blueShadow1: #2196f3; --dt-leaderboard: #e85252; --gradient1: linear-gradient(120deg, #1e1e1e 45%, #2a2a2a); --gray1: #8e8e93; --gray2: #636366; --gray3: #48484a; --gray4: #3a3a3c; --gray5: #2c2c2e; --gray6: #1c1c1e; --green: #4ADE80; --green-bg: #2D5A3D; --green1: #34c759; --left-msg-bg: white; --lightBlue1: #4bbaff; --login-container-bg: #1e1e1e; --msger-send-btn-bg: blue; --msger-send-btn-hover-bg: darkblue; --my-custom-cat: #02375a; --my-custom-dog: #cafff3; --orange: #ED8936; --panel: #2B2B2B; --popup-bg: #222; --red: #E53E3E; --right-msg-bg: lightBlue1; --status-indicator-base-bg: rgba(255, 255, 255, 0.05); --status-indicator-base-border: rgba(255, 255, 255, 0.1); --status-indicator-error-bg: rgba(220, 53, 69, 0.2); --status-indicator-error-border: rgba(220, 53, 69, 0.3); --status-indicator-error-color: #dc3545; --status-indicator-pending-bg: rgba(255, 193, 7, 0.2); --status-indicator-pending-border: rgba(255, 193, 7, 0.3); --status-indicator-pending-color: #ffc107; --status-indicator-success-bg: rgba(40, 167, 69, 0.2); --status-indicator-success-border: rgba(40, 167, 69, 0.3); --status-indicator-success-color: #28a745; --success-green: #28A745; --surface: #333; --teal: #38B2AC; --text: #F0F0F0; --text-muted: #aaa; --toggle-btn-bg: green; --toggle-btn-hover-bg: darkgreen; --validation-error-color: #ef4444; --validation-focus-color: #6366f1; --validation-success-color: #10b981; --warn: #FBBF24; --warn-bg: #5A3D2D; --white1: white; --white2: rgba(255, 255, 255, 0.87); --white3: #e1e1e6; }

.site-nav .trigger { display: none; flex-direction: column; position: absolute; right: 0; top: 60px; /* adjust as needed */ width: 200px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); z-index: 1000; }

.site-nav .nav-trigger:checked ~ label + .trigger, .site-nav .nav-trigger:checked + label + .trigger { display: flex; }

@media (min-width: 600px) { .site-nav .trigger { display: flex !important; position: static; flex-direction: row; background: none; box-shadow: none; width: auto; } }
#loginArea.page-link { /* Add any custom login link styles here */ opacity: 1; }

#site-logo { height: 40px; vertical-align: middle; margin-right: 10px; }

:root { --accent: #4CAFEF; --accent-700: #007ACC; --accent-700-hover: #005FA3; --background: #121212; --bg-0: #000; --bg-1: #1F2020; --bg-2: #1F1F1F; --bg-3: #2A2D2D; --black1: black; --blue: #3182CE; --blue1: #007aff; --blueShadow1: #2196f3; --dt-leaderboard: #e85252; --gradient1: linear-gradient(120deg, #1e1e1e 45%, #2a2a2a); --gray1: #8e8e93; --gray2: #636366; --gray3: #48484a; --gray4: #3a3a3c; --gray5: #2c2c2e; --gray6: #1c1c1e; --green: #4ADE80; --green-bg: #2D5A3D; --green1: #34c759; --left-msg-bg: white; --lightBlue1: #4bbaff; --login-container-bg: #1e1e1e; --msger-send-btn-bg: blue; --msger-send-btn-hover-bg: darkblue; --my-custom-cat: #02375a; --my-custom-dog: #cafff3; --orange: #ED8936; --panel: #2B2B2B; --popup-bg: #222; --red: #E53E3E; --right-msg-bg: lightBlue1; --status-indicator-base-bg: rgba(255, 255, 255, 0.05); --status-indicator-base-border: rgba(255, 255, 255, 0.1); --status-indicator-error-bg: rgba(220, 53, 69, 0.2); --status-indicator-error-border: rgba(220, 53, 69, 0.3); --status-indicator-error-color: #dc3545; --status-indicator-pending-bg: rgba(255, 193, 7, 0.2); --status-indicator-pending-border: rgba(255, 193, 7, 0.3); --status-indicator-pending-color: #ffc107; --status-indicator-success-bg: rgba(40, 167, 69, 0.2); --status-indicator-success-border: rgba(40, 167, 69, 0.3); --status-indicator-success-color: #28a745; --success-green: #28A745; --surface: #333; --teal: #38B2AC; --text: #F0F0F0; --text-muted: #aaa; --toggle-btn-bg: green; --toggle-btn-hover-bg: darkgreen; --validation-error-color: #ef4444; --validation-focus-color: #6366f1; --validation-success-color: #10b981; --warn: #FBBF24; --warn-bg: #5A3D2D; --white1: white; --white2: rgba(255, 255, 255, 0.87); --white3: #e1e1e6; }

/** Base Typography Styles Override default code and text formatting with user preferences */
/** Code formatting - override hardcoded dark background */
pre, code { font-family: "Menlo", "Inconsolata", "Consolas", "Roboto Mono", "Ubuntu Mono", "Liberation Mono", "Courier New", monospace; background-color: var(--panel) !important; color: var(--pref-text-color) !important; padding: 2px 6px; border-radius: 3px; }

pre { padding: 1rem; border: 1px solid var(--ui-border); overflow-x: auto; }
pre code { background-color: transparent !important; padding: 0; }

/** Inline code in markdown */
p code, li code, td code { background-color: var(--panel) !important; color: var(--pref-text-color) !important; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.small { height: 28px; padding: 4px 10px; border-radius: 40px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.medium, .hallpass-buttons button { height: 35px; padding: 7px 14px; border-radius: 12px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.large { height: 50px; padding: 14px 20px; border-radius: 12px; border: none; font-size: 17px; line-height: 22px; letter-spacing: -0.43px; cursor: pointer; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.disabled:hover, .disabled:active { background-color: inherit; }

.primary.disabled, .hallpass-buttons button.disabled, .secondary.disabled, .tertiary.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.primary.disabled:hover, .hallpass-buttons button.disabled:hover, .primary.disabled:active, .hallpass-buttons button.disabled:active, .secondary.disabled:hover, .secondary.disabled:active, .tertiary.disabled:hover, .tertiary.disabled:active { background-color: inherit; }

.small { height: 28px; padding: 4px 10px; border-radius: 40px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.medium, .hallpass-buttons button { height: 35px; padding: 7px 14px; border-radius: 12px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.large { height: 50px; padding: 14px 20px; border-radius: 12px; border: none; font-size: 17px; line-height: 22px; letter-spacing: -0.43px; cursor: pointer; }

button, .primary, .hallpass-buttons button { color: white; background-color: rgba(80, 80, 80, 0.7); transition: all 0.5s; transition: all 0.5s; }
button:hover, .primary:hover, .hallpass-buttons button:hover { background-color: rgba(55, 55, 55, 0.7); }
button:active, .primary:active, .hallpass-buttons button:active { background-color: rgba(29, 29, 29, 0.7); }

.secondary { color: #999999; background-color: rgba(120, 120, 128, 0.12); transition: all 0.5s; transition: all 0.5s; }
.secondary:hover { background-color: rgba(95, 95, 102, 0.12); }
.secondary:active { background-color: rgba(71, 71, 75, 0.12); }

.filledHighlight { background-color: #007aff; transition: all 0.5s; transition: all 0.5s; }
.filledHighlight:hover { background-color: #0062cc; }
.filledHighlight:active { background-color: #004999; }

.filledTinted { color: #007aff; background-color: rgba(0, 122, 255, 0.15); transition: all 0.5s; transition: all 0.5s; }
.filledTinted:hover { background-color: rgba(0, 98, 204, 0.15); }
.filledTinted:active { background-color: rgba(0, 73, 153, 0.15); }

.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.disabled:hover, .disabled:active { background-color: inherit; }

.primary.disabled, .hallpass-buttons button.disabled, .secondary.disabled, .tertiary.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.primary.disabled:hover, .hallpass-buttons button.disabled:hover, .primary.disabled:active, .hallpass-buttons button.disabled:active, .secondary.disabled:hover, .secondary.disabled:active, .tertiary.disabled:hover, .tertiary.disabled:active { background-color: inherit; }

/* define class for redifined button */
.button { width: auto; height: auto; border-radius: 10px; background-color: #21807c; border: 3px solid black; font-size: 1.5em; display: flex; justify-content: center; align-items: center; grid-column: span 1; grid-row: span 1; transition: all 0.5s; }

/* darkens the background color on hover to create a selecting effect */
.button:hover { background-color: #373737; }

/* "row style" is flexible size and aligns pictures in center */
.row { align-items: center; display: flex; }

/* "column style" is one-third of the width with padding */
.column { flex: 16.66%; padding: 3px; }

/* Animation container */
#animation { min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 1rem; }

/* Calculator container - modern grid layout */
.calculator-container { width: 100%; max-width: 400px; margin: 0 auto; padding: 1.5rem; background: rgba(30, 30, 30, 0.95); border-radius: 20px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: auto repeat(5, 1fr); gap: 12px; }

/* Output display */
.calculator-output { grid-column: span 4; background: linear-gradient(145deg, #1a1a1a, #2d2d2d); border-radius: 12px; padding: 1rem 1.25rem; font-size: clamp(1.5rem, 5vw, 2.5rem); font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; color: #fff; text-align: right; border: none; box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.3); min-height: 70px; display: flex; align-items: center; justify-content: flex-end; word-break: break-all; overflow: hidden; }

/* Base button mixin for calculator */
/* Number buttons */
.calculator-number { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #3a3a3a, #2a2a2a); color: #fff; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); /* Zero button spans 2 columns */ }
.calculator-number:hover { background: linear-gradient(145deg, #4a4a4a, #3a3a3a); transform: translateY(-2px); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.15); }
.calculator-number:active { transform: translateY(0); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); }
.calculator-number.zero { grid-column: span 2; aspect-ratio: auto; padding: 0 2rem; }

/* Operation buttons (+, -, *, /) */
.calculator-operation { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #ff9500, #e68a00); color: #fff; box-shadow: 0 4px 6px rgba(255, 149, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2); }
.calculator-operation:hover { background: linear-gradient(145deg, #ffaa33, #ff9500); transform: translateY(-2px); box-shadow: 0 6px 12px rgba(255, 149, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.calculator-operation:active { transform: translateY(0); }

/* Clear button */
.calculator-clear { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #636366, #48484a); color: #fff; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); font-size: clamp(1rem, 3vw, 1.2rem); }
.calculator-clear:hover { background: linear-gradient(145deg, #737377, #58585a); transform: translateY(-2px); }
.calculator-clear:active { transform: translateY(0); }

/* Special operation buttons (sqrt, %) */
.calculator-special { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #636366, #48484a); color: #fff; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); }
.calculator-special:hover { background: linear-gradient(145deg, #737377, #58585a); transform: translateY(-2px); }
.calculator-special:active { transform: translateY(0); }

/* Equals button */
.calculator-equals { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #34c759, #28a745); color: #fff; box-shadow: 0 4px 6px rgba(52, 199, 89, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2); }
.calculator-equals:hover { background: linear-gradient(145deg, #4cd964, #34c759); transform: translateY(-2px); box-shadow: 0 6px 12px rgba(52, 199, 89, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.calculator-equals:active { transform: translateY(0); }

/* Responsive breakpoints */
@media (max-width: 480px) { .calculator-container { max-width: 100%; padding: 1rem; gap: 8px; border-radius: 16px; }
  .calculator-output { min-height: 60px; padding: 0.75rem 1rem; } }
@media (min-width: 481px) and (max-width: 768px) { .calculator-container { max-width: 350px; } }
@media (min-width: 769px) { .calculator-container { max-width: 400px; }
  .calculator-number, .calculator-operation, .calculator-clear, .calculator-special, .calculator-equals { min-height: 70px; } }
/* Disable canvas filter if present */
canvas { filter: none; }

.iridescent { position: relative; overflow: hidden; background: blue; /* base blue */ color: white; }
.iridescent::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(255, 255, 255, 0.2) 0%, rgba(200, 200, 200, 0.6) 50%, rgba(255, 255, 255, 0.2) 100%); background-size: 200% 200%; animation: shimmer 3s infinite linear; z-index: 0; }
.iridescent span, .iridescent a { position: relative; z-index: 1; }

@keyframes shimmer { 0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; } }
.container { max-width: 800px; margin: 30px auto; padding: 20px; background: #1c1c1e; border-radius: 12px; box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.3); }

.queue-info { text-align: center; font-size: 18px; color: #48484a; margin-bottom: 15px; }

.queue-list { background: rgba(255, 255, 255, 0.05); padding: 15px; border-radius: 12px; }

.queue-list p { font-size: 16px; color: #636366; margin-bottom: 10px; }

#studentList { list-style: none; padding: 0; }

#studentList li { font-size: 16px; padding: 8px; border-bottom: 1px solid rgba(255, 255, 255, 0.2); }

.queue-buttons { display: flex; justify-content: center; gap: 10px; margin-top: 10px; }

.post-list { font-size: 0.95em; list-style: none; margin: 0; padding: 0; }

.post-list-heading { /* Leave header size as default or adjust here if needed */ font-size: 2em; font-weight: bold; margin-bottom: 0.75em; }

.post-list li { background-color: var(--bg-1); border: 1px solid var(--accent); border-radius: 0.5em; margin-bottom: 1.5em; padding: 1em; }

.post-list li:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12); transform: translateY(-2px); }

@media only screen and (max-width: 767px) { .post-list { padding: 10px; font-size: 0.7125em; }
  .post-list-heading { font-size: 2em; }
  .post-list li { padding: 0.75em; margin-bottom: 1em; } }
.modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.7); backdrop-filter: blur(5px); padding-top: 50px; }

.modal-content { background-color: #222222; margin: -2% auto; padding: 25px; border-radius: 16px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2); width: 80%; max-width: 600px; color: white; font-family: Arial, sans-serif; }

.close { color: #333333; float: right; font-size: 24px; font-weight: bold; cursor: pointer; transition: color 0.3s ease; }
.close:hover, .close:focus { color: #FF0000; text-decoration: none; }

.modal-content input, .modal-content textarea.smallInput, .modal-content textarea.mediumInput, .modal-content textarea.largeInput, .modal-content textarea, .modal-content p { width: 100%; padding: 12px; margin: 15px 0; border-radius: 12px; border: 1px solid #CCCCCC; font-size: 16px; background-color: #222222; color: white; }
.modal-content button { width: 100%; padding: 12px 20px; background-color: #000000; color: #FFFFFF; border: none; border-radius: 12px; font-size: 16px; cursor: pointer; font-weight: bold; transition: background-color 0.3s ease, transform 0.2s ease; }
.modal-content button:hover { background-color: #444444; transform: scale(1.05); }

h1 { display: none; }

h2 { color: white; }

#calendar { margin-left: 20px; box-sizing: border-box; z-index: 0; overflow: hidden; }

.fc-scroller { height: auto !important; overflow: visible !important; }

.fc-head .fc-widget-header { margin-right: 0 !important; }

.calendar { z-index: -100; }

header { top: 0; left: 0; width: 100%; z-index: 1000; }

.fc-toolbar-title { color: white !important; }

.fc-view.fc-dayGridDay-view { max-width: 100%; margin: 0; padding: 0; }

.fc-button.fc-today-button::first-letter { text-transform: capitalize; }

#editDescription { max-height: 250px; overflow-y: auto; white-space: pre-wrap; word-wrap: break-word; }

.styled-dropdown { width: 100%; padding: 12px; margin: 15px 0; border-radius: 12px; border: 1px solid #CCCCCC; font-size: 16px; background-color: #222222; color: white; box-sizing: border-box; }

.fc-scrollgrid, .fc-scrollgrid > tbody > tr > td, .fc-theme-standard .fc-scrollgrid, .fc-theme-standard .fc-scrollgrid > tbody > tr > td, .fc-daygrid, .fc-daygrid-day, .fc-daygrid-body, .fc-daygrid-body table, .fc-daygrid-body td { border-radius: 0 !important; }

td > img[src*="logo.png"] { display: none !important; }

td > img[src*="logo.png"] { display: none !important; }

td:has(> img[src*="logo.png"]) { display: none !important; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
:root { --accent: #4CAFEF; --accent-700: #007ACC; --accent-700-hover: #005FA3; --background: #121212; --bg-0: #000; --bg-1: #1F2020; --bg-2: #1F1F1F; --bg-3: #2A2D2D; --black1: black; --blue: #3182CE; --blue1: #007aff; --blueShadow1: #2196f3; --dt-leaderboard: #e85252; --gradient1: linear-gradient(120deg, #1e1e1e 45%, #2a2a2a); --gray1: #8e8e93; --gray2: #636366; --gray3: #48484a; --gray4: #3a3a3c; --gray5: #2c2c2e; --gray6: #1c1c1e; --green: #4ADE80; --green-bg: #2D5A3D; --green1: #34c759; --left-msg-bg: white; --lightBlue1: #4bbaff; --login-container-bg: #1e1e1e; --msger-send-btn-bg: blue; --msger-send-btn-hover-bg: darkblue; --my-custom-cat: #02375a; --my-custom-dog: #cafff3; --orange: #ED8936; --panel: #2B2B2B; --popup-bg: #222; --red: #E53E3E; --right-msg-bg: lightBlue1; --status-indicator-base-bg: rgba(255, 255, 255, 0.05); --status-indicator-base-border: rgba(255, 255, 255, 0.1); --status-indicator-error-bg: rgba(220, 53, 69, 0.2); --status-indicator-error-border: rgba(220, 53, 69, 0.3); --status-indicator-error-color: #dc3545; --status-indicator-pending-bg: rgba(255, 193, 7, 0.2); --status-indicator-pending-border: rgba(255, 193, 7, 0.3); --status-indicator-pending-color: #ffc107; --status-indicator-success-bg: rgba(40, 167, 69, 0.2); --status-indicator-success-border: rgba(40, 167, 69, 0.3); --status-indicator-success-color: #28a745; --success-green: #28A745; --surface: #333; --teal: #38B2AC; --text: #F0F0F0; --text-muted: #aaa; --toggle-btn-bg: green; --toggle-btn-hover-bg: darkgreen; --validation-error-color: #ef4444; --validation-focus-color: #6366f1; --validation-success-color: #10b981; --warn: #FBBF24; --warn-bg: #5A3D2D; --white1: white; --white2: rgba(255, 255, 255, 0.87); --white3: #e1e1e6; }

#toggle-response-btn { margin-top: auto; padding: 10px; color: white; border: none; border-radius: 12px; font-size: 16px; cursor: pointer; transition: background-color 0.3s ease; background-color: green !important; }
#toggle-response-btn:hover { background-color: darkgreen !important; }

#msger-send-btn { margin-top: auto; padding: 10px; color: white; border: none; border-radius: 12px; font-size: 16px; cursor: pointer; transition: background-color 0.3s ease; background-color: blue !important; }
#msger-send-btn:hover { background-color: darkblue !important; }

.msg-info, .msg-text { color: black; }

:root { --body-bg: linear-gradient(135deg, white 0%, gray 100%); --msger-bg: white; --border: 2px solid #ddd; --left-msg-bg: #ececec; --right-msg-bg: #579ffb; }

.msger { display: flex; flex-flow: column wrap; justify-content: space-between; width: fill; margin: auto auto; height: calc(867px); border: var(--border); border-radius: 12px; background: var(--msger-bg); box-shadow: 0 15px 15px -5px rgba(0, 0, 0, 0.2); }

.msger-header { display: flex; justify-content: space-between; padding: 10px; border-bottom: var(--border); background: #eee; color: gray; }

.msger-chat { flex: 1; overflow-y: auto; padding: 10px; }

.msger-chat::-webkit-scrollbar { width: 6px; }

.msger-chat::-webkit-scrollbar-track { background: #ddd; }

.msger-chat::-webkit-scrollbar-thumb { background: #bdbdbd; }

.msg { display: flex; align-items: flex-end; margin-bottom: auto; }

.msg:last-of-type { margin: auto; }

.msg-img { width: 64px; height: 64px; margin-right: 0.2rem; background: #ddd; background-repeat: no-repeat; background-position: center; background-size: cover; border-radius: 50%; }

.msg-bubble { max-width: 450px; padding: 15px; border-radius: 12px; background: var(--left-msg-bg); }

.msg-info { display: flex; justify-content: space-between; align-items: center; margin-bottom: gap; }

.msg-info-name { margin-right: 2rem; font-weight: bold; }

.msg-info-time { font-size: 0.85em; }

.left-msg .msg-bubble { border-bottom-left-radius: 0; }

.right-msg { flex-direction: row-reverse; }

.right-msg .msg-bubble { background: var(--right-msg-bg); color: #fff; border-bottom-right-radius: 0; }

.right-msg .msg-img { margin: 0 0 0 1rem; }

.msger-inputarea { display: flex; padding: 10px; border-top: var(--border); background: #eee; }

.msger-inputarea * { padding: 10px; border: none; border-radius: 12px; font-size: 1em; }

.msger-input { flex: 1; background: #ddd; }

.msger-send-btn { margin-left: 0.2rem; background: #00c441; color: #fff; font-weight: bold; cursor: pointer; transition: background 0.23s; }

.msger-send-btn:hover { background: #066320; }

.msger-chat { background-color: #fcfcfe; background-image: url("https://w.wallhaven.cc/full/vm/wallhaven-vmydxl.jpg"); }

/** Code Runner Styles Interactive code editor with execution capabilities */
/** Runner Base Styles Shared styles for code-runner and ui-runner */
/** Button Mixins Reusable button patterns for consistent styling across the application */
/** Base Control Common color and interaction styles for all controls @private - Use specific mixins instead */
/** Text Button Standard rectangular button with text content  @example .my-text-button { @include text-button; } */
/** Icon Button Square button designed for icon-only content  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .my-icon-button { @include icon-button; }  .my-large-icon-button { @include icon-button(48px, 12px); } */
/** Emphasized Button Button with inverted colors for primary actions  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .runBtn { @include emphasized-icon-button; } */
/** Toggle Button Button with icon that can rotate or change state  @example .my-toggle { @include toggle-button; } */
/** Select Control Standardized dropdown/select styling  @param {Number} $min-width - Minimum width (default: 150px)  @example .languageSelect { @include select-control; }  .customSelect { @include select-control(200px); } */
/** Panel Mixins Reusable panel patterns for consistent content containers */
/** Base Panel Standard panel with border and background  @param {Number} $padding - Inner padding (default: 1.5rem) @param {Number} $border-width - Border width (default: 2px) @param {Number} $margin-bottom - Bottom margin (default: 1rem)  @example .my-panel { @include panel; }  .compact-panel { @include panel(1rem, 1px, 0.5rem); } */
/** Output Panel Panel optimized for code/content display with scrolling  @param {Number} $min-height - Minimum height (default: 100px) @param {Number} $max-height - Maximum height (default: 300px)  @example .output-content { @include output-panel; }  .tall-content { @include output-panel(200px, 500px); } */
/** Input Panel Panel for code editors with syntax highlighting (CodeMirror)  @example .CodeMirror { @include input-panel; } */
/** Control Panel Horizontal bar for controls, buttons, and selects  @param {String} $padding - Inner padding (default: 0.75rem 1rem) @param {String} $gap - Gap between items (default: 1rem) @param {String} $border-radius - Border radius (default: 10px 10px 0 0)  @example .control-bar { @include control-panel; }  .toolbar { @include control-panel(0.5rem, 0.5rem, 8px); } */
/** Container Mixins Reusable container patterns for grouping and organizing content */
/** Main Container Top-level wrapper for a complete lesson/activity section  @param {Number} $margin-bottom - Bottom margin (default: 2rem)  @example .code-runner-container { @include main-container; }  .lesson-container { @include main-container(3rem); } */
/** Sub Container Groups related elements with subtle border and styling  @param {Number} $margin-bottom - Bottom margin (default: 20px)  @example .editor-container { @include sub-container; }  .output-container { @include sub-container(15px); } */
/** Inline Container Lightweight container for inline grouping without heavy styling  @param {String} $display - Display type (default: flex) @param {Number} $gap - Gap between items (default: 1rem)  @example .button-group { @include inline-container; }  .toolbar { @include inline-container(flex, 0.5rem); } */
.code-runner-container { margin-bottom: 2rem; }
.code-runner-container .challenge-box { padding: 1.5rem; margin-bottom: 1rem; border-radius: 8px; background: var(--panel); border: 2px solid var(--pref-accent-color); color: var(--pref-text-color); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); }
.code-runner-container .challenge-box h3 { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.5rem 0; font-size: 1.2rem; font-weight: 600; color: var(--pref-accent-color); }
.code-runner-container .challenge-box p { margin: 0; line-height: 1.5; font-size: 1rem; color: var(--pref-text-color); opacity: 0.95; }
.code-runner-container .editor-container { margin-bottom: 20px; }
.code-runner-container .CodeMirror { background: var(--panel); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: "Monaco", "Menlo", "Ubuntu Mono", monospace; font-size: 14px; }
.code-runner-container .CodeMirror-gutters { background: var(--pref-bg-color); border: 1px solid var(--ui-border); }
.code-runner-container .output-container { margin-bottom: 20px; }
.code-runner-container .control-panel { display: flex; align-items: center; gap: 1rem; padding: 0.75rem 1rem; border-radius: 10px 10px 0 0; background: var(--pref-bg-color); border: 1px solid var(--ui-border); }
.code-runner-container .control-panel span { font-size: 0.9rem; color: var(--pref-text-color); }
@media (max-width: 768px) { .code-runner-container .control-panel { flex-wrap: wrap; gap: 0.25rem; padding: 0.5rem; } }
.code-runner-container .runBtn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 8px; background: var(--pref-accent-color); border-color: var(--pref-accent-color); color: var(--pref-bg-color); }
.code-runner-container .runBtn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.code-runner-container .runBtn:focus { outline: none; border-color: var(--pref-accent-color); }
.code-runner-container .runBtn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .code-runner-container .runBtn { height: 44px; } }
@media (max-width: 768px) { .code-runner-container .runBtn { margin-left: 0.25rem; width: 44px; } }
.code-runner-container .runBtn:hover { background: var(--pref-accent-color); border-color: var(--pref-accent-color); opacity: 0.85; transform: scale(1.05); }
.code-runner-container .copyBtn, .code-runner-container .clearBtn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 0; }
.code-runner-container .copyBtn:hover, .code-runner-container .clearBtn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.code-runner-container .copyBtn:focus, .code-runner-container .clearBtn:focus { outline: none; border-color: var(--pref-accent-color); }
.code-runner-container .copyBtn:hover, .code-runner-container .clearBtn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .code-runner-container .copyBtn, .code-runner-container .clearBtn { height: 44px; } }
@media (max-width: 768px) { .code-runner-container .copyBtn, .code-runner-container .clearBtn { margin-left: 0.25rem; width: 44px; } }
.code-runner-container .languageSelect, .code-runner-container .fontSizeSelect { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; min-width: 150px; padding: 0.25rem 0.5rem; border-radius: 4px; }
.code-runner-container .languageSelect:hover, .code-runner-container .fontSizeSelect:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.code-runner-container .languageSelect:focus, .code-runner-container .fontSizeSelect:focus { outline: none; border-color: var(--pref-accent-color); }
@media (max-width: 768px) { .code-runner-container .languageSelect, .code-runner-container .fontSizeSelect { min-width: auto; max-width: 90px; font-size: 0.85rem; } }
.code-runner-container .output-content { min-height: 100px; max-height: 300px; overflow-y: auto; padding: 16px; background: var(--panel); color: var(--pref-text-color); white-space: pre-wrap; font-family: "Monaco", "Menlo", "Ubuntu Mono", monospace; font-size: 0.9rem; line-height: 1.5; }
.code-runner-container .output-content::-webkit-scrollbar { width: 8px; }
.code-runner-container .output-content::-webkit-scrollbar-track { background: var(--pref-bg-color); }
.code-runner-container .output-content::-webkit-scrollbar-thumb { background: var(--ui-border); border-radius: 4px; }
.code-runner-container .output-content::-webkit-scrollbar-thumb:hover { background: var(--panel-mid); }
.code-runner-container .copyOutputBtn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 0; }
.code-runner-container .copyOutputBtn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.code-runner-container .copyOutputBtn:focus { outline: none; border-color: var(--pref-accent-color); }
.code-runner-container .copyOutputBtn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .code-runner-container .copyOutputBtn { height: 44px; } }
@media (max-width: 768px) { .code-runner-container .copyOutputBtn { margin-left: 0.25rem; width: 44px; } }

/** UI Runner Styles Interactive UI code executor with visual output */
/** Runner Base Styles Shared styles for code-runner and ui-runner */
/** Button Mixins Reusable button patterns for consistent styling across the application */
/** Base Control Common color and interaction styles for all controls @private - Use specific mixins instead */
/** Text Button Standard rectangular button with text content  @example .my-text-button { @include text-button; } */
/** Icon Button Square button designed for icon-only content  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .my-icon-button { @include icon-button; }  .my-large-icon-button { @include icon-button(48px, 12px); } */
/** Emphasized Button Button with inverted colors for primary actions  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .runBtn { @include emphasized-icon-button; } */
/** Toggle Button Button with icon that can rotate or change state  @example .my-toggle { @include toggle-button; } */
/** Select Control Standardized dropdown/select styling  @param {Number} $min-width - Minimum width (default: 150px)  @example .languageSelect { @include select-control; }  .customSelect { @include select-control(200px); } */
/** Panel Mixins Reusable panel patterns for consistent content containers */
/** Base Panel Standard panel with border and background  @param {Number} $padding - Inner padding (default: 1.5rem) @param {Number} $border-width - Border width (default: 2px) @param {Number} $margin-bottom - Bottom margin (default: 1rem)  @example .my-panel { @include panel; }  .compact-panel { @include panel(1rem, 1px, 0.5rem); } */
/** Output Panel Panel optimized for code/content display with scrolling  @param {Number} $min-height - Minimum height (default: 100px) @param {Number} $max-height - Maximum height (default: 300px)  @example .output-content { @include output-panel; }  .tall-content { @include output-panel(200px, 500px); } */
/** Input Panel Panel for code editors with syntax highlighting (CodeMirror)  @example .CodeMirror { @include input-panel; } */
/** Control Panel Horizontal bar for controls, buttons, and selects  @param {String} $padding - Inner padding (default: 0.75rem 1rem) @param {String} $gap - Gap between items (default: 1rem) @param {String} $border-radius - Border radius (default: 10px 10px 0 0)  @example .control-bar { @include control-panel; }  .toolbar { @include control-panel(0.5rem, 0.5rem, 8px); } */
/** Container Mixins Reusable container patterns for grouping and organizing content */
/** Main Container Top-level wrapper for a complete lesson/activity section  @param {Number} $margin-bottom - Bottom margin (default: 2rem)  @example .code-runner-container { @include main-container; }  .lesson-container { @include main-container(3rem); } */
/** Sub Container Groups related elements with subtle border and styling  @param {Number} $margin-bottom - Bottom margin (default: 20px)  @example .editor-container { @include sub-container; }  .output-container { @include sub-container(15px); } */
/** Inline Container Lightweight container for inline grouping without heavy styling  @param {String} $display - Display type (default: flex) @param {Number} $gap - Gap between items (default: 1rem)  @example .button-group { @include inline-container; }  .toolbar { @include inline-container(flex, 0.5rem); } */
/** Panel Mixins Reusable panel patterns for consistent content containers */
/** Base Panel Standard panel with border and background  @param {Number} $padding - Inner padding (default: 1.5rem) @param {Number} $border-width - Border width (default: 2px) @param {Number} $margin-bottom - Bottom margin (default: 1rem)  @example .my-panel { @include panel; }  .compact-panel { @include panel(1rem, 1px, 0.5rem); } */
/** Output Panel Panel optimized for code/content display with scrolling  @param {Number} $min-height - Minimum height (default: 100px) @param {Number} $max-height - Maximum height (default: 300px)  @example .output-content { @include output-panel; }  .tall-content { @include output-panel(200px, 500px); } */
/** Input Panel Panel for code editors with syntax highlighting (CodeMirror)  @example .CodeMirror { @include input-panel; } */
/** Control Panel Horizontal bar for controls, buttons, and selects  @param {String} $padding - Inner padding (default: 0.75rem 1rem) @param {String} $gap - Gap between items (default: 1rem) @param {String} $border-radius - Border radius (default: 10px 10px 0 0)  @example .control-bar { @include control-panel; }  .toolbar { @include control-panel(0.5rem, 0.5rem, 8px); } */
.ui-runner-container { margin-bottom: 2rem; }
.ui-runner-container .challenge-box { padding: 1.5rem; margin-bottom: 1rem; border-radius: 8px; background: var(--panel); border: 2px solid var(--pref-accent-color); color: var(--pref-text-color); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); }
.ui-runner-container .challenge-box h3 { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.5rem 0; font-size: 1.2rem; font-weight: 600; color: var(--pref-accent-color); }
.ui-runner-container .challenge-box p { margin: 0; line-height: 1.5; font-size: 1rem; color: var(--pref-text-color); opacity: 0.95; }
.ui-runner-container .editor-container { margin-bottom: 20px; }
.ui-runner-container .CodeMirror { background: var(--panel); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: "Monaco", "Menlo", "Ubuntu Mono", monospace; font-size: 14px; }
.ui-runner-container .CodeMirror-gutters { background: var(--pref-bg-color); border: 1px solid var(--ui-border); }
.ui-runner-container .output-container { margin-bottom: 20px; }
.ui-runner-container .control-panel { display: flex; align-items: center; gap: 1rem; padding: 0.75rem 1rem; border-radius: 10px 10px 0 0; background: var(--pref-bg-color); border: 1px solid var(--ui-border); }
.ui-runner-container .control-panel span { font-size: 0.9rem; color: var(--pref-text-color); }
@media (max-width: 768px) { .ui-runner-container .control-panel { flex-wrap: wrap; gap: 0.25rem; padding: 0.5rem; } }
.ui-runner-container .runBtn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 8px; background: var(--pref-accent-color); border-color: var(--pref-accent-color); color: var(--pref-bg-color); }
.ui-runner-container .runBtn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.ui-runner-container .runBtn:focus { outline: none; border-color: var(--pref-accent-color); }
.ui-runner-container .runBtn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .ui-runner-container .runBtn { height: 44px; } }
@media (max-width: 768px) { .ui-runner-container .runBtn { margin-left: 0.25rem; width: 44px; } }
.ui-runner-container .runBtn:hover { background: var(--pref-accent-color); border-color: var(--pref-accent-color); opacity: 0.85; transform: scale(1.05); }
.ui-runner-container .copyBtn, .ui-runner-container .clearBtn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 0; }
.ui-runner-container .copyBtn:hover, .ui-runner-container .clearBtn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.ui-runner-container .copyBtn:focus, .ui-runner-container .clearBtn:focus { outline: none; border-color: var(--pref-accent-color); }
.ui-runner-container .copyBtn:hover, .ui-runner-container .clearBtn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .ui-runner-container .copyBtn, .ui-runner-container .clearBtn { height: 44px; } }
@media (max-width: 768px) { .ui-runner-container .copyBtn, .ui-runner-container .clearBtn { margin-left: 0.25rem; width: 44px; } }
.ui-runner-container .ui-output { min-height: 400px; max-height: 600px; overflow: auto; position: relative; padding: 0; background: var(--panel); color: var(--pref-text-color); }
.ui-runner-container .ui-output canvas { display: block; max-width: 100%; height: auto; }
.ui-runner-container .stopBtn, .ui-runner-container .resetBtn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 0; }
.ui-runner-container .stopBtn:hover, .ui-runner-container .resetBtn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.ui-runner-container .stopBtn:focus, .ui-runner-container .resetBtn:focus { outline: none; border-color: var(--pref-accent-color); }
.ui-runner-container .stopBtn:hover, .ui-runner-container .resetBtn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .ui-runner-container .stopBtn, .ui-runner-container .resetBtn { height: 44px; } }
@media (max-width: 768px) { .ui-runner-container .stopBtn, .ui-runner-container .resetBtn { margin-left: 0.25rem; width: 44px; } }
.ui-runner-container .stopBtn { background: #dc2626; border-color: #dc2626; color: var(--panel); }
.ui-runner-container .stopBtn:hover { background: #dc2626; opacity: 0.85; }

/** Game Runner Styles Interactive game development environment with GameEngine integration */
/** Runner Base Styles Shared styles for code-runner and ui-runner */
/** Button Mixins Reusable button patterns for consistent styling across the application */
/** Base Control Common color and interaction styles for all controls @private - Use specific mixins instead */
/** Text Button Standard rectangular button with text content  @example .my-text-button { @include text-button; } */
/** Icon Button Square button designed for icon-only content  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .my-icon-button { @include icon-button; }  .my-large-icon-button { @include icon-button(48px, 12px); } */
/** Emphasized Button Button with inverted colors for primary actions  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .runBtn { @include emphasized-icon-button; } */
/** Toggle Button Button with icon that can rotate or change state  @example .my-toggle { @include toggle-button; } */
/** Select Control Standardized dropdown/select styling  @param {Number} $min-width - Minimum width (default: 150px)  @example .languageSelect { @include select-control; }  .customSelect { @include select-control(200px); } */
/** Panel Mixins Reusable panel patterns for consistent content containers */
/** Base Panel Standard panel with border and background  @param {Number} $padding - Inner padding (default: 1.5rem) @param {Number} $border-width - Border width (default: 2px) @param {Number} $margin-bottom - Bottom margin (default: 1rem)  @example .my-panel { @include panel; }  .compact-panel { @include panel(1rem, 1px, 0.5rem); } */
/** Output Panel Panel optimized for code/content display with scrolling  @param {Number} $min-height - Minimum height (default: 100px) @param {Number} $max-height - Maximum height (default: 300px)  @example .output-content { @include output-panel; }  .tall-content { @include output-panel(200px, 500px); } */
/** Input Panel Panel for code editors with syntax highlighting (CodeMirror)  @example .CodeMirror { @include input-panel; } */
/** Control Panel Horizontal bar for controls, buttons, and selects  @param {String} $padding - Inner padding (default: 0.75rem 1rem) @param {String} $gap - Gap between items (default: 1rem) @param {String} $border-radius - Border radius (default: 10px 10px 0 0)  @example .control-bar { @include control-panel; }  .toolbar { @include control-panel(0.5rem, 0.5rem, 8px); } */
/** Container Mixins Reusable container patterns for grouping and organizing content */
/** Main Container Top-level wrapper for a complete lesson/activity section  @param {Number} $margin-bottom - Bottom margin (default: 2rem)  @example .code-runner-container { @include main-container; }  .lesson-container { @include main-container(3rem); } */
/** Sub Container Groups related elements with subtle border and styling  @param {Number} $margin-bottom - Bottom margin (default: 20px)  @example .editor-container { @include sub-container; }  .output-container { @include sub-container(15px); } */
/** Inline Container Lightweight container for inline grouping without heavy styling  @param {String} $display - Display type (default: flex) @param {Number} $gap - Gap between items (default: 1rem)  @example .button-group { @include inline-container; }  .toolbar { @include inline-container(flex, 0.5rem); } */
/** Panel Mixins Reusable panel patterns for consistent content containers */
/** Base Panel Standard panel with border and background  @param {Number} $padding - Inner padding (default: 1.5rem) @param {Number} $border-width - Border width (default: 2px) @param {Number} $margin-bottom - Bottom margin (default: 1rem)  @example .my-panel { @include panel; }  .compact-panel { @include panel(1rem, 1px, 0.5rem); } */
/** Output Panel Panel optimized for code/content display with scrolling  @param {Number} $min-height - Minimum height (default: 100px) @param {Number} $max-height - Maximum height (default: 300px)  @example .output-content { @include output-panel; }  .tall-content { @include output-panel(200px, 500px); } */
/** Input Panel Panel for code editors with syntax highlighting (CodeMirror)  @example .CodeMirror { @include input-panel; } */
/** Control Panel Horizontal bar for controls, buttons, and selects  @param {String} $padding - Inner padding (default: 0.75rem 1rem) @param {String} $gap - Gap between items (default: 1rem) @param {String} $border-radius - Border radius (default: 10px 10px 0 0)  @example .control-bar { @include control-panel; }  .toolbar { @include control-panel(0.5rem, 0.5rem, 8px); } */
.game-runner-container { margin-bottom: 2rem; }
.game-runner-container .challenge-box { padding: 1.5rem; margin-bottom: 1rem; border-radius: 8px; background: var(--panel); border: 2px solid var(--pref-accent-color); color: var(--pref-text-color); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); }
.game-runner-container .challenge-box h3 { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.5rem 0; font-size: 1.2rem; font-weight: 600; color: var(--pref-accent-color); }
.game-runner-container .challenge-box p { margin: 0; line-height: 1.5; font-size: 1rem; color: var(--pref-text-color); opacity: 0.95; }
.game-runner-container .editor-container { margin-bottom: 20px; }
.game-runner-container .CodeMirror { background: var(--panel); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: "Monaco", "Menlo", "Ubuntu Mono", monospace; font-size: 14px; }
.game-runner-container .CodeMirror-gutters { background: var(--pref-bg-color); border: 1px solid var(--ui-border); }
.game-runner-container .output-container { margin-bottom: 20px; }
.game-runner-container .control-panel { display: flex; align-items: center; gap: 1rem; padding: 0.75rem 1rem; border-radius: 10px 10px 0 0; background: var(--pref-bg-color); border: 1px solid var(--ui-border); }
.game-runner-container .control-panel span { font-size: 0.9rem; color: var(--pref-text-color); }
@media (max-width: 768px) { .game-runner-container .control-panel { flex-wrap: wrap; gap: 0.25rem; padding: 0.5rem; } }
.game-runner-container .runBtn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 8px; background: var(--pref-accent-color); border-color: var(--pref-accent-color); color: var(--pref-bg-color); }
.game-runner-container .runBtn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.game-runner-container .runBtn:focus { outline: none; border-color: var(--pref-accent-color); }
.game-runner-container .runBtn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .game-runner-container .runBtn { height: 44px; } }
@media (max-width: 768px) { .game-runner-container .runBtn { margin-left: 0.25rem; width: 44px; } }
.game-runner-container .runBtn:hover { background: var(--pref-accent-color); border-color: var(--pref-accent-color); opacity: 0.85; transform: scale(1.05); }
.game-runner-container .copyBtn, .game-runner-container .clearBtn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 0; }
.game-runner-container .copyBtn:hover, .game-runner-container .clearBtn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.game-runner-container .copyBtn:focus, .game-runner-container .clearBtn:focus { outline: none; border-color: var(--pref-accent-color); }
.game-runner-container .copyBtn:hover, .game-runner-container .clearBtn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .game-runner-container .copyBtn, .game-runner-container .clearBtn { height: 44px; } }
@media (max-width: 768px) { .game-runner-container .copyBtn, .game-runner-container .clearBtn { margin-left: 0.25rem; width: 44px; } }
.game-runner-container .game-output { min-height: 400px; max-height: 600px; overflow: hidden; position: relative; padding: 0; background: #000; color: var(--pref-text-color); }
.game-runner-container .game-output .gameContainer { width: 100%; height: 580px; position: relative; overflow: hidden; }
.game-runner-container .game-output .gameContainer > canvas#gameCanvas { display: block; width: 100% !important; height: 580px !important; border: none; background: transparent; position: absolute; top: 0; left: 0; }
.game-runner-container .game-output .gameContainer canvas { border: none !important; background: transparent !important; box-shadow: none !important; margin: 0 !important; padding: 0 !important; }
.game-runner-container .levelSelect { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; min-width: 150px; padding: 0.25rem 0.5rem; border-radius: 4px; min-width: 120px; }
.game-runner-container .levelSelect:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.game-runner-container .levelSelect:focus { outline: none; border-color: var(--pref-accent-color); }
@media (max-width: 768px) { .game-runner-container .levelSelect { min-width: auto; max-width: 90px; font-size: 0.85rem; } }
.game-runner-container .pauseBtn, .game-runner-container .stopBtn, .game-runner-container .resetBtn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 0; }
.game-runner-container .pauseBtn:hover, .game-runner-container .stopBtn:hover, .game-runner-container .resetBtn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.game-runner-container .pauseBtn:focus, .game-runner-container .stopBtn:focus, .game-runner-container .resetBtn:focus { outline: none; border-color: var(--pref-accent-color); }
.game-runner-container .pauseBtn:hover, .game-runner-container .stopBtn:hover, .game-runner-container .resetBtn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .game-runner-container .pauseBtn, .game-runner-container .stopBtn, .game-runner-container .resetBtn { height: 44px; } }
@media (max-width: 768px) { .game-runner-container .pauseBtn, .game-runner-container .stopBtn, .game-runner-container .resetBtn { margin-left: 0.25rem; width: 44px; } }
.game-runner-container .pauseBtn { background: #eab308; border-color: #eab308; color: var(--panel); }
.game-runner-container .pauseBtn:hover { background: #eab308; opacity: 0.85; }
.game-runner-container .pauseBtn:disabled { background: var(--pref-bg-color); border-color: var(--ui-border); color: var(--pref-text-color); opacity: 0.5; cursor: not-allowed; }
.game-runner-container .stopBtn { background: #dc2626; border-color: #dc2626; color: var(--panel); }
.game-runner-container .stopBtn:hover { background: #dc2626; opacity: 0.85; }
.game-runner-container .stopBtn:disabled { background: var(--pref-bg-color); border-color: var(--ui-border); color: var(--pref-text-color); opacity: 0.5; cursor: not-allowed; }
.game-runner-container .game-status { font-weight: 500; }
.game-runner-container .game-status .status-text { color: var(--pref-accent-color); font-weight: 600; }

@keyframes rainbow { 0% { background-color: red; }
  14% { background-color: orange; }
  28% { background-color: yellow; }
  42% { background-color: green; }
  57% { background-color: blue; }
  71% { background-color: indigo; }
  85% { background-color: violet; }
  100% { background-color: red; } }
.rainbow { width: 100px; height: 100px; animation: rainbow 5s linear infinite; margin: auto; }

@keyframes spinMove { 0% { transform: rotate(0deg) translateX(0); }
  10% { transform: rotate(36deg) translateX(-200px); }
  20% { transform: rotate(72deg) translateX(200px); }
  30% { transform: rotate(108deg) translateX(400px); }
  40% { transform: rotate(144deg) translateX(200px); }
  50% { transform: rotate(180deg) translateX(0); }
  60% { transform: rotate(216deg) translateX(-200px); }
  70% { transform: rotate(252deg) translateX(200px); }
  80% { transform: rotate(288deg) translateX(400px); }
  90% { transform: rotate(324deg) translateX(200px); }
  100% { transform: rotate(360deg) translateX(0); } }
.spinMove { width: 100px; height: 100px; margin: auto; background-color: blue; animation: spinMove 10s linear infinite; }

@keyframes iridescent { 0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); } }
.iridescent { background: linear-gradient(90deg, rgba(255, 0, 0, 0.8) 0%, rgba(255, 154, 0, 0.8) 10%, rgba(208, 222, 33, 0.8) 20%, rgba(79, 220, 74, 0.8) 30%, rgba(63, 218, 216, 0.8) 40%, rgba(47, 201, 226, 0.8) 50%, rgba(28, 127, 238, 0.8) 60%, rgba(95, 21, 242, 0.8) 70%, rgba(186, 12, 248, 0.8) 80%, rgba(251, 7, 217, 0.8) 90%, rgba(255, 0, 0, 0.8) 100%); background-size: 200% 100%; animation: iridescent 2s linear infinite; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.small { height: 28px; padding: 4px 10px; border-radius: 40px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.medium, .hallpass-buttons button { height: 35px; padding: 7px 14px; border-radius: 12px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.large { height: 50px; padding: 14px 20px; border-radius: 12px; border: none; font-size: 17px; line-height: 22px; letter-spacing: -0.43px; cursor: pointer; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.disabled:hover, .disabled:active { background-color: inherit; }

.primary.disabled, .hallpass-buttons button.disabled, .secondary.disabled, .tertiary.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.primary.disabled:hover, .hallpass-buttons button.disabled:hover, .primary.disabled:active, .hallpass-buttons button.disabled:active, .secondary.disabled:hover, .secondary.disabled:active, .tertiary.disabled:hover, .tertiary.disabled:active { background-color: inherit; }

.small { height: 28px; padding: 4px 10px; border-radius: 40px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.medium, .hallpass-buttons button { height: 35px; padding: 7px 14px; border-radius: 12px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.large { height: 50px; padding: 14px 20px; border-radius: 12px; border: none; font-size: 17px; line-height: 22px; letter-spacing: -0.43px; cursor: pointer; }

button, .primary, .hallpass-buttons button { color: white; background-color: rgba(80, 80, 80, 0.7); transition: all 0.5s; transition: all 0.5s; }
button:hover, .primary:hover, .hallpass-buttons button:hover { background-color: rgba(55, 55, 55, 0.7); }
button:active, .primary:active, .hallpass-buttons button:active { background-color: rgba(29, 29, 29, 0.7); }

.secondary { color: #999999; background-color: rgba(120, 120, 128, 0.12); transition: all 0.5s; transition: all 0.5s; }
.secondary:hover { background-color: rgba(95, 95, 102, 0.12); }
.secondary:active { background-color: rgba(71, 71, 75, 0.12); }

.filledHighlight { background-color: #007aff; transition: all 0.5s; transition: all 0.5s; }
.filledHighlight:hover { background-color: #0062cc; }
.filledHighlight:active { background-color: #004999; }

.filledTinted { color: #007aff; background-color: rgba(0, 122, 255, 0.15); transition: all 0.5s; transition: all 0.5s; }
.filledTinted:hover { background-color: rgba(0, 98, 204, 0.15); }
.filledTinted:active { background-color: rgba(0, 73, 153, 0.15); }

.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.disabled:hover, .disabled:active { background-color: inherit; }

.primary.disabled, .hallpass-buttons button.disabled, .secondary.disabled, .tertiary.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.primary.disabled:hover, .hallpass-buttons button.disabled:hover, .primary.disabled:active, .hallpass-buttons button.disabled:active, .secondary.disabled:hover, .secondary.disabled:active, .tertiary.disabled:hover, .tertiary.disabled:active { background-color: inherit; }

/* define class for redifined button */
.button { width: auto; height: auto; border-radius: 10px; background-color: #21807c; border: 3px solid black; font-size: 1.5em; display: flex; justify-content: center; align-items: center; grid-column: span 1; grid-row: span 1; transition: all 0.5s; }

/* darkens the background color on hover to create a selecting effect */
.button:hover { background-color: #373737; }

/* "row style" is flexible size and aligns pictures in center */
.row { align-items: center; display: flex; }

/* "column style" is one-third of the width with padding */
.column { flex: 16.66%; padding: 3px; }

/* Animation container */
#animation { min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 1rem; }

/* Calculator container - modern grid layout */
.calculator-container { width: 100%; max-width: 400px; margin: 0 auto; padding: 1.5rem; background: rgba(30, 30, 30, 0.95); border-radius: 20px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: auto repeat(5, 1fr); gap: 12px; }

/* Output display */
.calculator-output { grid-column: span 4; background: linear-gradient(145deg, #1a1a1a, #2d2d2d); border-radius: 12px; padding: 1rem 1.25rem; font-size: clamp(1.5rem, 5vw, 2.5rem); font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; color: #fff; text-align: right; border: none; box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.3); min-height: 70px; display: flex; align-items: center; justify-content: flex-end; word-break: break-all; overflow: hidden; }

/* Base button mixin for calculator */
/* Number buttons */
.calculator-number { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #3a3a3a, #2a2a2a); color: #fff; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); /* Zero button spans 2 columns */ }
.calculator-number:hover { background: linear-gradient(145deg, #4a4a4a, #3a3a3a); transform: translateY(-2px); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.15); }
.calculator-number:active { transform: translateY(0); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); }
.calculator-number.zero { grid-column: span 2; aspect-ratio: auto; padding: 0 2rem; }

/* Operation buttons (+, -, *, /) */
.calculator-operation { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #ff9500, #e68a00); color: #fff; box-shadow: 0 4px 6px rgba(255, 149, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2); }
.calculator-operation:hover { background: linear-gradient(145deg, #ffaa33, #ff9500); transform: translateY(-2px); box-shadow: 0 6px 12px rgba(255, 149, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.calculator-operation:active { transform: translateY(0); }

/* Clear button */
.calculator-clear { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #636366, #48484a); color: #fff; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); font-size: clamp(1rem, 3vw, 1.2rem); }
.calculator-clear:hover { background: linear-gradient(145deg, #737377, #58585a); transform: translateY(-2px); }
.calculator-clear:active { transform: translateY(0); }

/* Special operation buttons (sqrt, %) */
.calculator-special { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #636366, #48484a); color: #fff; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); }
.calculator-special:hover { background: linear-gradient(145deg, #737377, #58585a); transform: translateY(-2px); }
.calculator-special:active { transform: translateY(0); }

/* Equals button */
.calculator-equals { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #34c759, #28a745); color: #fff; box-shadow: 0 4px 6px rgba(52, 199, 89, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2); }
.calculator-equals:hover { background: linear-gradient(145deg, #4cd964, #34c759); transform: translateY(-2px); box-shadow: 0 6px 12px rgba(52, 199, 89, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.calculator-equals:active { transform: translateY(0); }

/* Responsive breakpoints */
@media (max-width: 480px) { .calculator-container { max-width: 100%; padding: 1rem; gap: 8px; border-radius: 16px; }
  .calculator-output { min-height: 60px; padding: 0.75rem 1rem; } }
@media (min-width: 481px) and (max-width: 768px) { .calculator-container { max-width: 350px; } }
@media (min-width: 769px) { .calculator-container { max-width: 400px; }
  .calculator-number, .calculator-operation, .calculator-clear, .calculator-special, .calculator-equals { min-height: 70px; } }
/* Disable canvas filter if present */
canvas { filter: none; }

.iridescent { position: relative; overflow: hidden; background: blue; /* base blue */ color: white; }
.iridescent::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(255, 255, 255, 0.2) 0%, rgba(200, 200, 200, 0.6) 50%, rgba(255, 255, 255, 0.2) 100%); background-size: 200% 200%; animation: shimmer 3s infinite linear; z-index: 0; }
.iridescent span, .iridescent a { position: relative; z-index: 1; }

@keyframes shimmer { 0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; } }
.hallpass-container { max-width: 500px; margin: 40px auto; padding: 20px; background: #1c1c1e; border-radius: 12px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); text-align: center; border: 2px solid #48484a; }

.hallpass-header { font-size: 22px; font-weight: bold; color: white; padding-bottom: 10px; border-bottom: 2px solid #3a3a3c; margin-bottom: 15px; }

.hallpass-icon { max-width: 150px; height: auto; margin: 15px auto; display: block; }

.hallpass-details { font-size: 16px; color: #636366; margin-bottom: 10px; }

.hallpass-buttons { display: flex; justify-content: center; gap: 10px; margin-top: 15px; }

.hallpass-buttons button { border-radius: 12px; font-size: 16px; padding: 12px 20px; }

.hallpass-buttons button:hover { transform: scale(1.05); cursor: pointer; }

/* Microblog form group and label */
.microblog-form-group { width: 100%; display: flex; flex-direction: column; }

.microblog-form-label { font-size: 1rem; font-weight: 500; color: #f1f5f9; margin-bottom: 0.25rem; }

.microblog-form-label .required { color: #ef4444; }

/* Modal overlay background: dark semi-transparent */
#microblog-modal, #reply-modal { background: rgba(0, 0, 0, 0.5); z-index: 1200; }

#microblog-modal, #reply-modal { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.5); transition: opacity 0.2s; }

#microblog-modal.hidden, #reply-modal.hidden { display: none; }

/* Modal Panel: matches microblog panel pattern */
.microblog-modal-panel { background: var(--green-bg); color: var(--white); border-radius: 0.5rem; box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1); width: 100%; max-width: 32rem; margin: 0 0.5rem; padding: 1.5rem; position: relative; display: flex; flex-direction: column; }

.microblog-modal-content { /* Remove background and color, handled by .microblog-modal-panel */ width: 100%; padding: 0; background: none; color: inherit; }

.microblog-modal-close { background: none; border: none; color: #e5e7eb; font-size: 2rem; cursor: pointer; transition: color 0.2s; margin-right: 0.5rem; }

.microblog-modal-close:hover { color: #fff; }

.microblog-modal-title { font-size: 1.3rem; font-weight: 700; margin-bottom: 0; }

.microblog-form { display: flex; flex-direction: column; gap: 1rem; }

.microblog-form label { font-size: 1rem; font-weight: 500; color: #f1f5f9; margin-bottom: 0.25rem; }

.microblog-form input[type="text"], .microblog-form textarea[type="text"].smallInput, .microblog-form textarea[type="text"].mediumInput, .microblog-form textarea[type="text"].largeInput { width: 100%; border: 1px solid #cbd5e1; border-radius: 0.375rem; padding: 0.5rem; font-size: 1rem; color: #222; background: #fff; margin-top: 0.25rem; }

/* Inbox-specific text inputs for title and link labels */
.inbox-panel--compact .microblog-form input[type="text"], .inbox-panel--compact .microblog-form textarea[type="text"].smallInput, .inbox-panel--compact .microblog-form textarea[type="text"].mediumInput, .inbox-panel--compact .microblog-form textarea[type="text"].largeInput, .inbox-panel--compact .microblog-form input[type="url"], .inbox-panel--compact .microblog-form textarea[type="url"].smallInput, .inbox-panel--compact .microblog-form textarea[type="url"].mediumInput, .inbox-panel--compact .microblog-form textarea[type="url"].largeInput { background: #1f2937; color: #fff; border: 1px solid rgba(255, 255, 255, 0.06); }

.microblog-form textarea { display: block; width: 100%; min-width: 0; max-width: 100%; min-height: 7rem; border: 1px solid #cbd5e1; border-radius: 0.375rem; padding: 0.5rem; font-size: 1rem; color: #222; background: #fff; margin-top: 0.25rem; resize: vertical; box-sizing: border-box; }

.microblog-form .microblog-form-actions { display: flex; justify-content: flex-end; gap: 0.5rem; }

.microblog-btn { background: #1e40af; color: #fff; border: none; border-radius: 0.375rem; padding: 0.5rem 1.25rem; font-size: 1rem; font-weight: 600; cursor: pointer; transition: background 0.2s; }

.microblog-btn:hover { background: #2563eb; }

.microblog-btn-cancel { background: #64748b; }

.microblog-btn-cancel:hover { background: #475569; }

/* Override button styles inside inbox forms for Remove and Clear buttons */
.inbox-panel--compact .microblog-form .microblog-btn-cancel { background: #2563eb; border: none; border-radius: 0.375rem; color: #fff; font-weight: 600; padding: 0.5rem 1rem; }

.inbox-panel--compact .microblog-form .microblog-btn-cancel:hover { background: #1e40af; }

.inbox-panel--compact .microblog-form .microblog-btn { background: #2563eb; border-radius: 0.375rem; color: #fff; }

.inbox-panel--compact .microblog-form .microblog-btn:hover { background: #1e40af; }

/* Floating Action Button */
/* Container that holds the microblog FAB and the inbox FAB so they sit adjacent */
.micro-actions-wrapper { position: fixed; top: 5rem; right: 2rem; z-index: 1050; display: flex; gap: 0.5rem; align-items: center; --fab-size: 56px; /* default diameter for circular FABs */ }

/* Floating Action Button */
.microblog-fab { background: #2563eb; color: #fff; border: none; border-radius: 999px; padding: 0 1rem; font-size: 1.1rem; font-weight: 600; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); cursor: pointer; transition: background 0.2s; display: inline-flex; align-items: center; justify-content: center; height: var(--fab-size, 56px); min-width: calc(var(--fab-size, 56px) + 40px); }

.microblog-fab:hover { background: #1e40af; }

@media (max-width: 600px) { .micro-actions-wrapper { top: 1rem; right: 1rem; }
  .microblog-fab { font-size: 1.2rem; min-width: 56px; height: var(--fab-size, 56px); } }
/* Small Inbox FAB - sits to the left of the main microblog FAB */
.inbox-fab { background: #10b981; color: #fff; border: none; border-radius: 50%; width: var(--fab-size, 56px); height: var(--fab-size, 56px); padding: 0; font-size: 1.1rem; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12); cursor: pointer; transition: background 0.18s, transform 0.12s; position: relative; }

.inbox-fab:hover { background: #059669; transform: translateY(-1px); }

/* Notification badge on inbox FAB */
.inbox-badge { position: absolute; top: -4px; right: -4px; background: #ef4444; color: #fff; width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 0.9rem; font-weight: 700; border: 2px solid var(--green-bg); opacity: 1; transition: opacity 0.2s; }

.inbox-badge.hidden { opacity: 0; pointer-events: none; }

@media (max-width: 600px) { .inbox-fab { width: var(--fab-size, 56px); height: var(--fab-size, 56px); font-size: 1.35rem; } }
/* Compact inbox panel - small, anchored near the inbox FAB */
.inbox-panel--compact { right: calc(2rem + 0px); /* sits near the micro-actions wrapper */ top: calc(5rem + 3px); width: 420px; max-width: 92vw; height: auto; min-height: 8rem; max-height: calc(100vh - 6rem); overflow: auto; transform: translateX(8px) translateY(-8px) translateZ(0); opacity: 0; pointer-events: none; transition: opacity 0.18s ease, transform 0.18s ease; border-radius: 0.5rem; }

.inbox-panel--compact.open { transform: translateX(0) translateY(0); opacity: 1; pointer-events: auto; }

@media (max-width: 768px) { .inbox-panel--compact { right: 4.4rem; top: 4.2rem; } }
/* Inbox-specific input sizing to make title smaller and same width as content */
.inbox-panel--compact .microblog-input { font-size: 0.95rem; padding: 0.35rem 0.5rem; box-sizing: border-box; width: 100%; }

.inbox-panel--compact .microblog-textarea { width: 100%; min-height: 120px; box-sizing: border-box; }

/* Make inbox inputs dark gray by default and ensure text is readable */
.inbox-panel--compact .microblog-input, .inbox-panel--compact .microblog-textarea { background: #1f2937; /* dark gray */ color: #fff; border: 1px solid rgba(255, 255, 255, 0.06); }

/* Admin control buttons in inbox: make all buttons blue with rounded corners. Provide a square, rounded 'done' button sized to match the height of other buttons. */
.inbox-panel--compact .inbox-admin-controls .microblog-btn, .inbox-panel--compact .inbox-admin-controls .microblog-btn-cancel, .inbox-panel--compact .inbox-admin-controls .microblog-btn-done { background: #2563eb; color: #fff; border: none; border-radius: 0.375rem; padding: 0.4rem 0.75rem; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; height: 36px; /* uniform height for controls */ }

.inbox-panel--compact .inbox-admin-controls .microblog-btn:hover, .inbox-panel--compact .inbox-admin-controls .microblog-btn-cancel:hover, .inbox-panel--compact .inbox-admin-controls .microblog-btn-done:hover { background: #1e40af; }

/* Square done button matching the controls' height */
.inbox-panel--compact .inbox-admin-controls .microblog-btn-done { width: 36px; padding: 0; border-radius: 8px; /* slightly rounded square */ }

/* Ensure generic microblog buttons used elsewhere inside inbox also follow blue styling */
.inbox-panel--compact .microblog-btn { background: #2563eb; color: #fff; border-radius: 0.375rem; }

.inbox-panel--compact .microblog-btn-cancel { background: #2563eb; color: #fff; }

/* Messages container: newest first visually (we prepend via JS too) */
.inbox-messages { display: flex; flex-direction: column; gap: 0.5rem; }

/* Simple visual for tabs inside inbox */
.inbox-tabs .inbox-tab { color: var(--white); border: 1px solid transparent; }

.inbox-tabs .inbox-tab:hover { background: rgba(255, 255, 255, 0.04); }

/* Side Panel */
.microblog-panel { background: var(--green-bg); color: var(--white); position: fixed; top: 5rem; right: 0; width: 400px; max-width: 90vw; height: calc(100vh - 5rem - 3rem); /* leave 3rem for footer */ margin-bottom: 3rem; box-shadow: -2px 0 12px rgba(0, 0, 0, 0.12); z-index: 1100; transform: translateX(100%); transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); display: flex; flex-direction: column; }

.microblog-panel.open { transform: translateX(0); }

.microblog-panel-header, .microblog-modal-header { display: flex; align-items: center; flex-wrap: nowrap; padding: 1rem; border-bottom: 1px solid #e5e7eb; }

.microblog-panel-title, .microblog-modal-title { margin: 0; font-size: 1.2rem; font-weight: 700; margin-left: 1rem; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.microblog-close-btn { background: none; border: none; color: #fff; font-size: 2rem; cursor: pointer; padding: 0 0.5rem; line-height: 1; }

.microblog-panel-content { flex: 1; overflow-y: auto; padding: 1rem; }

@media (max-width: 768px) { .microblog-panel { width: 95vw; max-width: 95vw; height: 85vh; border-radius: 12px; /* Centered Modal Style */ position: fixed; left: 50%; top: 50%; right: auto; /* Reset right positioning */ transform: translate(-50%, -50%) scale(0.96); opacity: 0; visibility: hidden; transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease, visibility 0.2s ease; }
  .microblog-panel.open { transform: translate(-50%, -50%) scale(1); opacity: 1; visibility: visible; }
  .microblog-fab { right: 2rem; top: 5rem; padding: 1rem 1.5rem; font-size: 1.2rem; min-width: auto; min-height: auto; border-radius: 999px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); } }
/* Example: Scrollable table container */
#microblog-playground .max-h-\[45vh\], #microblog-playground .max-h-\[60vh\], #microblog-playground .max-h-\[70vh\] { overflow-y: auto; }

/* Guest Signup Styles */
.guest-signup-toggle-btn { background: #10b981; color: #fff; border: none; border-radius: 0.375rem; padding: 0.5rem 1rem; font-size: 0.9rem; font-weight: 600; cursor: pointer; transition: background 0.2s; margin-left: auto; }

.guest-signup-toggle-btn:hover { background: #059669; }

.guest-signup-container { background: rgba(255, 255, 255, 0.1); border-radius: 0.5rem; padding: 1rem; margin: 1rem; border: 1px solid rgba(255, 255, 255, 0.2); }

.guest-signup-title { margin: 0 0 1rem 0; font-size: 1.1rem; font-weight: 600; color: #fff; }

.guest-form-group { margin-bottom: 0.75rem; }

.guest-form-group input, .guest-form-group textarea.smallInput, .guest-form-group textarea.mediumInput, .guest-form-group textarea.largeInput { width: 100%; padding: 0.5rem; border: 1px solid #cbd5e1; border-radius: 0.375rem; font-size: 1rem; color: #222; background: #fff; box-sizing: border-box; }

/* Unread indicator for messages in the inbox */
.inbox-message.unread { border-left: 3px solid #ef4444; background: rgba(239, 68, 68, 0.05); }

.inbox-message.unread::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #ef4444; margin-right: 0.5rem; flex-shrink: 0; }

.guest-submit-btn { background: #2563eb; color: #fff; border: none; border-radius: 0.375rem; padding: 0.6rem 1.5rem; font-size: 1rem; font-weight: 600; cursor: pointer; transition: background 0.2s; width: 100%; }

.guest-submit-btn:hover:not(:disabled) { background: #1e40af; }

.guest-submit-btn:disabled { background: #94a3b8; cursor: not-allowed; }

.guest-status { margin-top: 0.5rem; font-size: 0.9rem; text-align: center; min-height: 1.2rem; }

/* Add more microblog-specific styles as needed */
.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.site-header { border-top: 0px solid; border-bottom: 1px solid #404040; font-weight: bold; z-index: 999999999; }

.site-nav { background-color: transparent; }

.site-nav .page-link { line-height: 1.5; padding: 5px 10px; margin-left: 20px; }

.site-title { color: white !important; }

.site-nav .page-link:not(:last-child) { margin-right: 0; }

#loginArea { margin-left: 20px; }

.site-title, .site-title:visited, .site-nav, .page-link { font-weight: bolder; }

@media screen and (max-width: fit-content) { .site-title { padding-right: 45px; } }
.site-header .wrapper { max-width: fit-content !important; }

/* Press Start 2P font loaded globally via head-custom.html */
#score { position: relative; z-index: 2; padding: 5px; color: darkred !important; }

#gameBegin, #gameOver, #settings, #leaderboard { position: relative; z-index: 2; }

#addRow, #backToGame { position: relative; z-index: 2; display: inline-block; margin-right: 2rem; }

.submenu { color: #FFFFFF !important; background-color: #000000 !important; border: 1px solid #6272a4; border: none; position: fixed; z-index: 3; top: 3.73rem; width: fit-content; }
.submenu .submenu-item { display: inline-block; margin-right: 2rem; }

.sidebar { color: #FFFFFF !important; background-color: #000000 !important; border: 1px solid #6272a4; border: none; position: fixed; z-index: 3; top: 0; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; /* Disable horizontal scroll */ transition: 0.5s; /* 0.5-second transition effect to slide in the sidebar */ width: 0px; padding-left: 0px; padding-right: 0px; overflow-y: scroll; height: 75%; }

.leaderboardDropDown { color: #FFFFFF !important; background-color: #000000 !important; border: 1px solid #6272a4; border: none; position: fixed; z-index: 3; top: 0; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; /* Disable horizontal scroll */ transition: 0.5s; /* 0.5-second transition effect to slide in the sidebar */ width: 0px; padding-left: 0px; padding-right: 0px; height: 75%; scroll-behavior: auto; }

#leaderboardTitle { text-align: center; color: #3d3af2; text-decoration: wavy; font-weight: 900; font-size: 70px; font-family: "Press Start 2P", system-ui; background-color: #b01a2e; }

.table.scores, th, tr, td { text-align: center; font-family: "Lucida Sans", "Lucida Sans Regular", "Lucida Grande", "Lucida Sans Unicode", Geneva, Verdana, sans-serif; }

.table.scores th { background-color: #e0b2b2; }
.table.scores tr td { border: 1px solid #742929; }
.table.scores tr td:nth-child(odd) { background-color: #e85252; }
.table.scores tr td:nth-child(even) { background-color: #be6464; }

.table.levels tr { cursor: pointer; }
.table.levels tr td { border: 1px solid #6272a4; }
.table.levels tr:hover { background-color: #6272a4; }
.table.levels tr:hover td { background-color: inherit; }

.input.userID { color: #FFFFFF !important; background-color: #000000 !important; border: 1px solid #6272a4; height: 30px; border-radius: 5px; padding: 5px; width: 100px; }

.input.gameSpeed, .input.gravity { color: #FFFFFF !important; background-color: #000000 !important; border: 1px solid #6272a4; height: 30px; border-radius: 5px; padding: 5px; width: 40px; text-align: right; }

#toggleCanvasEffect, #background, #platform { animation: fadein 3s; }

#startGame, #marioSays { animation: flash 0.5s infinite; }

@keyframes flash { 50% { opacity: 0; } }
@keyframes fadeout { from { opacity: 1; }
  to { opacity: 0; } }
@keyframes fadein { from { opacity: 0; }
  to { opacity: 1; } }
.bottom-matter { position: relative; }

#cut-story { visibility: hidden; min-width: 250px; background-color: #ff5d0c; color: white; font-family: "Press Start 2P", system-ui; border-radius: 4px; position: fixed; text-align: center; justify-content: center; border: 4px solid; left: 50%; transform: translate(-50%, 0%); width: 50%; padding: 10px; bottom: 0px; }

/*creating class with javascript*/
#cut-story.show { visibility: visible; -webkit-animation: fadein 3s; animation: fadein 3s; }

#cut-story.hide { visibility: visible; -webkit-animation: fadeout 0.5s 3s; animation: fadeout 0.5s 3s; }

body { background: #FFB6C1; }

#container { width: 95%; height: 100vh; display: flex; text-align: center; }

.fun_facts { min-width: 250px; background-color: #0cebff; color: #096b4e; font-family: "Press Start 2P", system-ui; border-radius: 20px; position: absolute; text-align: center; border: 4px solid; left: 50%; transform: translate(-50%, -20%); width: 90%; padding: 10px; bottom: 0px; }

.fun_facts h3, .fun_facts p { font-size: 1rem; }

/** Button Mixins Reusable button patterns for consistent styling across the application */
/** Base Control Common color and interaction styles for all controls @private - Use specific mixins instead */
/** Text Button Standard rectangular button with text content  @example .my-text-button { @include text-button; } */
/** Icon Button Square button designed for icon-only content  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .my-icon-button { @include icon-button; }  .my-large-icon-button { @include icon-button(48px, 12px); } */
/** Emphasized Button Button with inverted colors for primary actions  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .runBtn { @include emphasized-icon-button; } */
/** Toggle Button Button with icon that can rotate or change state  @example .my-toggle { @include toggle-button; } */
/** Select Control Standardized dropdown/select styling  @param {Number} $min-width - Minimum width (default: 150px)  @example .languageSelect { @include select-control; }  .customSelect { @include select-control(200px); } */
/** Button Mixins Reusable button patterns for consistent styling across the application */
/** Base Control Common color and interaction styles for all controls @private - Use specific mixins instead */
/** Text Button Standard rectangular button with text content  @example .my-text-button { @include text-button; } */
/** Icon Button Square button designed for icon-only content  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .my-icon-button { @include icon-button; }  .my-large-icon-button { @include icon-button(48px, 12px); } */
/** Emphasized Button Button with inverted colors for primary actions  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .runBtn { @include emphasized-icon-button; } */
/** Toggle Button Button with icon that can rotate or change state  @example .my-toggle { @include toggle-button; } */
/** Select Control Standardized dropdown/select styling  @param {Number} $min-width - Minimum width (default: 150px)  @example .languageSelect { @include select-control; }  .customSelect { @include select-control(200px); } */
#masterFooter { display: flex; justify-content: space-between; align-items: center; flex-wrap: nowrap; width: 100vw; max-width: 100vw; box-sizing: border-box; overflow-x: auto; }
#masterFooter p { display: none; }

.game-footer-left { display: flex; align-items: center; gap: 10px; flex: 1 1 0; }

.game-footer-center { display: flex; justify-content: center; align-items: center; gap: 10px; flex: 0 0 auto; margin-left: 40px; }

.game-footer-right { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex: 1 1 0; }

.game-controls-left, .game-controls-right { display: flex; align-items: center; gap: 10px; }

#mansion-game-controls-container { display: flex; align-items: center; gap: 10px; }

#prevLevelButton, #nextLevelButton, #cheatsMenuButton, #infoButton { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; font-weight: bold; font-size: 12px; font-family: var(--pref-font-family); }
#prevLevelButton:hover, #nextLevelButton:hover, #cheatsMenuButton:hover, #infoButton:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
#prevLevelButton:focus, #nextLevelButton:focus, #cheatsMenuButton:focus, #infoButton:focus { outline: none; border-color: var(--pref-accent-color); }
#prevLevelButton:hover, #nextLevelButton:hover, #cheatsMenuButton:hover, #infoButton:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { #prevLevelButton, #nextLevelButton, #cheatsMenuButton, #infoButton { height: 44px; } }

#prevLevelButton { background-color: var(--pref-accent-color, #f26767ff); border-color: var(--pref-accent-color, #f26767ff); }
#prevLevelButton:hover { filter: brightness(0.85); transform: scale(1.05); }

#nextLevelButton { background-color: var(--pref-accent-color, #6ae378ff); border-color: var(--pref-accent-color, #6ae378ff); }
#nextLevelButton:hover { filter: brightness(0.85); transform: scale(1.05); }

#cheatsMenuButton { background-color: var(--pref-accent-color, #a46ae3ff); border-color: var(--pref-accent-color, #a46ae3ff); }
#cheatsMenuButton:hover { filter: brightness(0.85); transform: scale(1.05); }

#infoButton { background-color: var(--pref-accent-color, #e67e22); border-color: var(--pref-accent-color, #e67e22); }
#infoButton:hover { filter: brightness(0.85); transform: scale(1.05); }

#homeButton { background: transparent; border: none; padding: 0; margin: 0; font-size: 40px; line-height: 1; cursor: pointer; box-shadow: none; outline: none; -webkit-appearance: none; }
#homeButton:focus { outline: none; }
#homeButton:hover { transform: scale(1.1); }

#cheatsModal, #infoModal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.85); z-index: 1000; overflow-y: auto; padding: 1rem; display: flex; justify-content: center; align-items: center; background-color: rgba(0, 0, 0, 0.8); backdrop-filter: blur(5px); }
@media (max-width: 768px) { #cheatsModal, #infoModal { padding: 60px 0 0 0; } }
#cheatsModal > div, #infoModal > div { position: relative; width: 90%; max-width: 600px; margin: 0 auto; background: linear-gradient(145deg, var(--panel), var(--panel-mid)); border-radius: 15px; padding: 30px; box-shadow: 0 0 30px rgba(0, 0, 0, 0.5); font-family: var(--pref-font-family); color: var(--pref-text-color); }
@media (max-width: 768px) { #cheatsModal > div, #infoModal > div { padding: 20px; width: 95%; } }

#cheatsModal > div { border: 4px solid var(--pref-accent-color, #a46ae3ff); box-shadow: 0 0 30px rgba(0, 0, 0, 0.5); max-height: 80vh; overflow-y: auto; }

#infoModal > div { border: 4px solid var(--pref-accent-color, #e67e22); box-shadow: 0 0 30px rgba(0, 0, 0, 0.5); }

.game-modal-title { text-align: center; margin-bottom: 25px; font-size: 18px; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); }
@media (max-width: 768px) { .game-modal-title { font-size: 14px; } }

#cheatsModal .game-modal-title { color: var(--pref-accent-color, #a46ae3ff); }

#infoModal .game-modal-title { color: var(--pref-accent-color, #e67e22); }

.game-modal-container { display: flex; flex-direction: column; gap: 15px; }

.game-modal-section, .game-level-select-section, .game-info-section { background: rgba(0, 0, 0, 0.3); padding: 20px; border-radius: 10px; }
@media (max-width: 768px) { .game-modal-section, .game-level-select-section, .game-info-section { padding: 15px; } }

.game-level-select-section { border: 2px solid var(--pref-accent-color, #a46ae3ff); }

.game-info-section { border: 2px solid var(--pref-accent-color, #e67e22); text-align: left; color: var(--pref-text-color); font-size: 12px; }
.game-info-section strong { color: var(--pref-accent-color); }
@media (max-width: 768px) { .game-info-section { font-size: 10px; } }

.game-section-title { text-align: center; margin-bottom: 15px; font-size: 14px; }
@media (max-width: 768px) { .game-section-title { font-size: 12px; } }

.game-level-select-section .game-section-title { color: var(--pref-accent-color, #a46ae3ff); }

.game-level-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 15px; }
@media (max-width: 768px) { .game-level-grid { gap: 8px; } }

.game-level-button { padding: 15px 10px; background-color: var(--pref-accent-color, #3498db); color: white; border: 2px solid var(--ui-border); border-radius: 8px; cursor: pointer; font-size: 10px; font-family: var(--pref-font-family); transition: all 0.3s ease; font-weight: bold; text-align: center; line-height: 1.3; }
.game-level-button:hover { transform: scale(1.05); background-color: var(--pref-selection-color, #2ecc71); }
@media (max-width: 768px) { .game-level-button { padding: 12px 8px; font-size: 9px; } }

.game-modal-close { margin-top: 20px; padding: 12px 20px; background-color: var(--pref-accent-color, #e74c3c); color: white; border: 2px solid var(--ui-border); border-radius: 8px; cursor: pointer; font-size: 12px; font-family: var(--pref-font-family); width: 100%; transition: all 0.3s ease; }
.game-modal-close:hover { transform: scale(1.05); filter: brightness(0.85); }
@media (max-width: 768px) { .game-modal-close { padding: 10px 16px; font-size: 10px; } }

.game-placeholder-section { background: rgba(0, 0, 0, 0.3); padding: 15px; border-radius: 10px; border: 2px solid var(--ui-border); text-align: center; color: var(--text-muted); font-size: 11px; }
@media (max-width: 768px) { .game-placeholder-section { padding: 12px; font-size: 10px; } }

@media (max-width: 768px) { #masterFooter { padding: 10px 5px; }
  .game-footer-center { margin-left: 20px; }
  #prevLevelButton, #nextLevelButton, #cheatsMenuButton, #infoButton { font-size: 10px; padding: 6px 10px; }
  #homeButton { font-size: 32px; } }
/** Button Mixins Reusable button patterns for consistent styling across the application */
/** Base Control Common color and interaction styles for all controls @private - Use specific mixins instead */
/** Text Button Standard rectangular button with text content  @example .my-text-button { @include text-button; } */
/** Icon Button Square button designed for icon-only content  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .my-icon-button { @include icon-button; }  .my-large-icon-button { @include icon-button(48px, 12px); } */
/** Emphasized Button Button with inverted colors for primary actions  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .runBtn { @include emphasized-icon-button; } */
/** Toggle Button Button with icon that can rotate or change state  @example .my-toggle { @include toggle-button; } */
/** Select Control Standardized dropdown/select styling  @param {Number} $min-width - Minimum width (default: 150px)  @example .languageSelect { @include select-control; }  .customSelect { @include select-control(200px); } */
/** Panel Mixins Reusable panel patterns for consistent content containers */
/** Base Panel Standard panel with border and background  @param {Number} $padding - Inner padding (default: 1.5rem) @param {Number} $border-width - Border width (default: 2px) @param {Number} $margin-bottom - Bottom margin (default: 1rem)  @example .my-panel { @include panel; }  .compact-panel { @include panel(1rem, 1px, 0.5rem); } */
/** Output Panel Panel optimized for code/content display with scrolling  @param {Number} $min-height - Minimum height (default: 100px) @param {Number} $max-height - Maximum height (default: 300px)  @example .output-content { @include output-panel; }  .tall-content { @include output-panel(200px, 500px); } */
/** Input Panel Panel for code editors with syntax highlighting (CodeMirror)  @example .CodeMirror { @include input-panel; } */
/** Control Panel Horizontal bar for controls, buttons, and selects  @param {String} $padding - Inner padding (default: 0.75rem 1rem) @param {String} $gap - Gap between items (default: 1rem) @param {String} $border-radius - Border radius (default: 10px 10px 0 0)  @example .control-bar { @include control-panel; }  .toolbar { @include control-panel(0.5rem, 0.5rem, 8px); } */
/** Button Mixins Reusable button patterns for consistent styling across the application */
/** Base Control Common color and interaction styles for all controls @private - Use specific mixins instead */
/** Text Button Standard rectangular button with text content  @example .my-text-button { @include text-button; } */
/** Icon Button Square button designed for icon-only content  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .my-icon-button { @include icon-button; }  .my-large-icon-button { @include icon-button(48px, 12px); } */
/** Emphasized Button Button with inverted colors for primary actions  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .runBtn { @include emphasized-icon-button; } */
/** Toggle Button Button with icon that can rotate or change state  @example .my-toggle { @include toggle-button; } */
/** Select Control Standardized dropdown/select styling  @param {Number} $min-width - Minimum width (default: 150px)  @example .languageSelect { @include select-control; }  .customSelect { @include select-control(200px); } */
/** Container Mixins Reusable container patterns for grouping and organizing content */
/** Main Container Top-level wrapper for a complete lesson/activity section  @param {Number} $margin-bottom - Bottom margin (default: 2rem)  @example .code-runner-container { @include main-container; }  .lesson-container { @include main-container(3rem); } */
/** Sub Container Groups related elements with subtle border and styling  @param {Number} $margin-bottom - Bottom margin (default: 20px)  @example .editor-container { @include sub-container; }  .output-container { @include sub-container(15px); } */
/** Inline Container Lightweight container for inline grouping without heavy styling  @param {String} $display - Display type (default: flex) @param {Number} $gap - Gap between items (default: 1rem)  @example .button-group { @include inline-container; }  .toolbar { @include inline-container(flex, 0.5rem); } */
/** Three-Panel Layout Container Creates a flexible three-column layout with gap spacing Automatically stacks on mobile devices  @param {Number} $gap - Space between panels (default: 10px) @param {Number} $padding - Container padding (default: 10px) @param {Number} $height - Viewport height (default: 92vh)  @example .my-builder-layout { @include three-panel-layout; } */
/** Asset/Config Panel (Left Panel) Fixed-width panel for controls, forms, and asset selection  @param {Number} $flex-basis - Width percentage (default: 20%)  @example .config-panel { @include asset-panel; } */
/** Main Content Panel (Center/Right Panel) Flexible panel for primary content, supports split views  @example .main-panel { @include main-content-panel; } */
/** Glass Panel Effect Modern glassmorphic panel with backdrop blur  @param {Color} $bg - Background color (default: rgba(0,0,0,0.3)) @param {Number} $blur - Backdrop blur amount (default: 20px) @param {Number} $border-radius - Corner radius (default: 12px)  @example .glass-panel { @include glass-panel-effect; } */
/** Panel Header Bar Consistent header with title and control buttons  @param {Number} $padding - Inner padding (default: 16px)  @example .panel-header { @include panel-header-bar; } */
/** View Mode Toggle Controls Buttons to switch between different view modes (code/game/split)  @example .view-controls { @include view-mode-controls; } */
/** View Mode Button Individual toggle button for view switching  @example .view-btn { @include view-toggle-button; } */
/** Code Editor Container Dual-layer container for syntax highlighting Supports both textarea editing and visual highlights  @example .editor-container { @include code-editor-container; } */
/** Code Layer (Editable Text) Transparent textarea for code input  @example .code-layer { @include code-text-layer; } */
/** Highlight Layer (Visual Overlay) Non-interactive layer for syntax highlighting  @example .highlight-layer { @include code-highlight-layer; } */
/** Preview/Game Frame Container for iframe or canvas preview  @example .game-frame { @include preview-frame; } */
/** Scrollable Form Container Scrollable area for form inputs  @param {Number} $padding - Inner padding (default: 15px)  @example .scroll-form { @include scrollable-form; } */
/** Form Section Group Grouped section for related form fields  @param {Number} $padding - Inner padding (default: 14px) @param {Number} $margin-bottom - Bottom margin (default: 15px)  @example .asset-group { @include form-section-group; } */
/** Section Group Title Title header for form sections  @example .group-title { @include section-group-title; } */
/** Icon Button with Tooltip Small icon button with hover tooltip  @param {Number} $size - Button size (default: 32px)  @example .icon-btn { @include icon-button-tooltip; } */
.gamebuilder-title { text-align: center; font-size: 2em; font-weight: bold; letter-spacing: 2px; }
@media (max-width: 768px) { .gamebuilder-title { font-size: 1.2em; } }

.creator-layout { display: flex; gap: 10px; padding: 10px; height: 92vh; box-sizing: border-box; }
@media (max-width: 768px) { .creator-layout { flex-direction: column; height: auto; } }

.col-asset { flex: 0 0 20%; display: flex; flex-direction: column; }
@media (max-width: 768px) { .col-asset { flex: none; max-height: 300px; } }

.col-main { flex: 1; display: flex; flex-direction: column; min-width: 0; position: relative; }
@media (max-width: 768px) { .col-main { flex: none; min-height: 600px; } }
.col-main.view-code .panel-game { display: none; }
.col-main.view-game .panel-code { display: none; }
.col-main.view-code .panel-code, .col-main.view-game .panel-game { flex: 1; }
.col-main.view-split .main-content { flex-direction: row; }
.col-main.view-split .panel-game { flex: 0 0 55%; }
.col-main.view-split .panel-code { flex: 1; }
@media (max-width: 768px) { .col-main.view-code .panel-game, .col-main.view-game .panel-code { display: flex !important; }
  .col-main .main-content { flex-direction: column !important; }
  .col-main .panel-game { flex: 0 0 45% !important; }
  .col-main .panel-code { flex: 1 !important; } }

.view-controls { display: flex; gap: 5px; margin-bottom: 10px; }
@media (max-width: 768px) { .view-controls { display: none; } }

.view-btn { flex: 1; padding: 8px; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 6px; background: rgba(0, 0, 0, 0.3); cursor: pointer; font-size: 0.8em; text-transform: uppercase; transition: all 0.2s; }
.view-btn.active { background: rgba(255, 255, 255, 0.1); border-color: var(--pref-accent-color); }
.view-btn:hover:not(.active) { background: rgba(255, 255, 255, 0.05); }

.main-content { flex: 1; display: flex; flex-direction: column; gap: 10px; min-height: 0; }

.glass-panel { background: rgba(0, 0, 0, 0.3); backdrop-filter: blur(20px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; display: flex; flex-direction: column; overflow: hidden; }

.panel-header { padding: 16px; background: rgba(0, 0, 0, 0.3); border-bottom: 1px solid rgba(255, 255, 255, 0.1); font-weight: 700; text-transform: uppercase; font-size: 0.9em; letter-spacing: 1px; display: flex; align-items: center; justify-content: space-between; }

.panel-controls { display: flex; gap: 8px; align-items: center; }

.icon-btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 8px; margin-left: 0; position: relative; }
.icon-btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.icon-btn:focus { outline: none; border-color: var(--pref-accent-color); }
.icon-btn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .icon-btn { height: 44px; } }
@media (max-width: 768px) { .icon-btn { margin-left: 0.25rem; width: 44px; } }
.icon-btn:hover::after { content: attr(data-tooltip); position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.9); color: white; padding: 4px 8px; border-radius: 4px; font-size: 11px; white-space: nowrap; z-index: 1000; pointer-events: none; }
.icon-btn.staged { box-shadow: 0 0 10px rgba(0, 200, 0, 0.9); border-color: rgba(0, 200, 0, 0.9); }

.step-indicator { font-size: 11px; color: var(--text-muted); margin-right: 4px; }

.add-item-btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; padding: 8px; margin-left: 0; position: relative; font-size: 18px; line-height: 1; padding: 0; }
.add-item-btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.add-item-btn:focus { outline: none; border-color: var(--pref-accent-color); }
.add-item-btn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .add-item-btn { height: 44px; } }
@media (max-width: 768px) { .add-item-btn { margin-left: 0.25rem; width: 44px; } }
.add-item-btn:hover::after { content: attr(data-tooltip); position: absolute; bottom: -30px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.9); color: white; padding: 4px 8px; border-radius: 4px; font-size: 11px; white-space: nowrap; z-index: 1000; pointer-events: none; }

.scroll-form { flex: 1; overflow-y: auto; padding: 15px; }

.asset-group { background: rgba(255, 255, 255, 0.02); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 8px; padding: 14px; margin-bottom: 15px; }

.group-title { font-size: 0.8em; font-weight: bold; margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; }

.creator-layout label { display: block; font-size: 0.7em; margin-bottom: 5px; }
.creator-layout select, .creator-layout input, .creator-layout textarea.smallInput, .creator-layout textarea.mediumInput, .creator-layout textarea.largeInput { width: 100%; padding: 8px !important; border-radius: 4px; font-size: 0.85em; margin-bottom: 10px; color: var(--pref-text-color, #fff); background: var(--pref-bg-color, #000); border: 1px solid rgba(255, 255, 255, 0.2); box-sizing: border-box; }
.creator-layout select { color: var(--pref-text-color, #fff); background: var(--pref-bg-color, #000); }
.creator-layout select option { color: var(--pref-text-color, #fff); background: var(--pref-bg-color, #000); }
.creator-layout select:disabled, .creator-layout select option[disabled] { color: var(--text-muted, rgba(255, 255, 255, 0.5)); }

.creator-layout .btn { padding: 12px; border-radius: 6px; border: none; background: var(--pref-bg-color); color: var(--pref-text-color); font-family: var(--pref-font-family); font-weight: bold; cursor: pointer; transition: all 0.2s; text-transform: uppercase; font-size: 0.85em; display: inline-flex; align-items: center; justify-content: center; margin: 0; }
.creator-layout .btn:hover { background: var(--panel-mid); opacity: 0.9; }
.creator-layout .btn-sm { padding: 6px; border-radius: 4px; font-size: 0.7em; }
.creator-layout .btn-confirm { background: var(--pref-accent-color); border-color: var(--pref-accent-color); }
.creator-layout .btn-run { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 8px; background: var(--pref-accent-color); border-color: var(--pref-accent-color); color: var(--pref-bg-color); }
.creator-layout .btn-run:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.creator-layout .btn-run:focus { outline: none; border-color: var(--pref-accent-color); }
.creator-layout .btn-run:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .creator-layout .btn-run { height: 44px; } }
@media (max-width: 768px) { .creator-layout .btn-run { margin-left: 0.25rem; width: 44px; } }
.creator-layout .btn-run:hover { background: var(--pref-accent-color); border-color: var(--pref-accent-color); opacity: 0.85; transform: scale(1.05); }
.creator-layout .btn-danger { background: #e74c3c; border-color: #e74c3c; }

.help-panel { display: none; position: absolute; top: 50px; right: 16px; background: rgba(0, 0, 0, 0.95); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 8px; padding: 12px; max-width: 300px; z-index: 100; font-size: 0.85em; line-height: 1.4; }
.help-panel.active { display: block; }

.code-panel { flex: 1; position: relative; }

.editor-container { position: relative; flex: 1; width: 100%; overflow: hidden; }

.code-layer { position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 20px; box-sizing: border-box; font-family: 'Fira Code', 'Monaco', 'Courier New', monospace; font-size: 13px; line-height: 20px; border: none; resize: none; outline: none; z-index: 2; white-space: pre; overflow: auto; }

.highlight-layer { position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 20px; box-sizing: border-box; pointer-events: none; z-index: 1; }

.highlight-box { position: absolute; background: color-mix(in srgb, var(--pref-accent-color) 25%, transparent); border-left: 4px solid var(--pref-accent-color); left: 10px; width: calc(100% - 20px); display: block !important; }

.highlight-persistent-block { position: absolute; background: rgba(255, 230, 0, 0.6); border: 2px solid #ffdd00; border-left-width: 4px; left: 10px; width: calc(100% - 20px); }

.typing-highlight { position: absolute; background: color-mix(in srgb, var(--pref-accent-color) 25%, transparent); border-left: 4px solid var(--pref-accent-color); left: 10px; width: calc(100% - 20px); }

.game-frame { flex: 1; position: relative; }
.game-frame iframe, .game-frame canvas { width: 100%; height: 100%; border: none; }

.draw-overlay { position: absolute; inset: 0; pointer-events: none; z-index: 50; }
.draw-overlay.active { pointer-events: auto; }
.draw-overlay.mode-barrier { cursor: crosshair; }

.draw-rect { position: absolute; box-sizing: border-box; }
.draw-rect.barrier { border: 2px solid #ff2d2d; background: rgba(255, 0, 0, 0.05); }

.draw-toolbar { display: flex; gap: 8px; margin-top: 8px; }

.draw-btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; padding: 8px; font-size: 0.8em; }
.draw-btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.draw-btn:focus { outline: none; border-color: var(--pref-accent-color); }
.draw-btn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .draw-btn { height: 44px; } }
.draw-btn.active { border-color: var(--pref-accent-color); background: rgba(255, 255, 255, 0.08); }

.wall-slot { margin-top: 8px; border: 1px solid rgba(255, 255, 255, 0.1); padding: 10px; border-radius: 8px; background: rgba(0, 0, 0, 0.08); }

.wall-fields label { display: block; }
.wall-fields select { color: var(--pref-text-color, #fff); }

iframe .pause-button-bar, iframe button.pause-btn, iframe .leaderboard-widget { display: none !important; visibility: hidden !important; }

.quiz-container { max-width: 800px; margin: 20px auto; padding: 20px; }

.question-section { background-color: #f5f5f5; padding: 20px; border-radius: 8px; margin-bottom: 20px; }

.question { font-size: 24px; font-weight: bold; margin-bottom: 15px; }

.answer-input { width: 100%; padding: 10px; font-size: 18px; border: 2px solid #ddd; border-radius: 4px; margin-bottom: 10px; }

.submit-btn { background-color: #4CAF50; color: white; padding: 12px 24px; font-size: 16px; border: none; border-radius: 4px; cursor: pointer; }
.submit-btn:hover { background-color: #45a049; }
.submit-btn:disabled { background-color: #cccccc; cursor: not-allowed; }

.score-display { font-size: 20px; font-weight: bold; margin: 20px 0; }

.leaderboard { margin-top: 30px; }
.leaderboard table { width: 100%; border-collapse: collapse; }
.leaderboard th, .leaderboard td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }
.leaderboard th { background-color: #4CAF50; color: white; }
.leaderboard tr:hover { background-color: #f5f5f5; }

.user-form { margin-bottom: 20px; }
.user-form input, .user-form textarea.smallInput, .user-form textarea.mediumInput, .user-form textarea.largeInput { padding: 8px; font-size: 16px; border: 2px solid #ddd; border-radius: 4px; margin-right: 10px; }

.error-msg { color: red; margin: 10px 0; }

.success-msg { color: green; margin: 10px 0; }

.rps-lesson .lesson-wrapper { background: #121212; /* slightly lighter than page background */ border-radius: 12px; padding: 40px 32px; margin: 40px auto; max-width: 1000px; box-shadow: 0 0 20px rgba(0, 0, 0, 0.7); border: 1px solid #000000; }

.rps-lesson { background: #121212; min-height: 100vh; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; color: #fff; margin: 0; padding: 0; }

.rps-lesson .subtitle { text-align: center; color: #e5e7eb; font-style: italic; font-size: 1.15em; margin-bottom: 24px; }

.rps-lesson .play-instructions { background: #121212; color: #fff; border: 2px solid #ffa600; border-radius: 10px; text-align: center; font-weight: bold; font-size: 1.1em; margin: 20px auto 32px auto; padding: 20px; max-width: 700px; }

.rps-lesson .game-buttons { text-align: center; margin: 32px 0 24px 0; display: flex; justify-content: center; gap: 32px; }

.rps-lesson button { background: #232336; color: #fff; border: none; border-radius: 8px; font-size: 1em; font-weight: bold; padding: 10px 32px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18); transition: background 0.2s, color 0.2s, transform 0.2s; }

.rps-lesson button:hover { background: #ffa600; color: #232336; transform: translateY(-2px); }

.rps-lesson button:active { background: #c06c84; color: #fff; transform: translateY(-1px); }

.rps-lesson h1 { color: #fff; text-align: center; font-size: 1.5em; font-weight: bold; margin-bottom: 10px; border-bottom: none; padding-bottom: 0; }

.rps-lesson h2 { color: #fff; font-size: 1.5em; font-weight: bold; margin-top: 36px; margin-bottom: 18px; border-left: 5px solid #c06c84; padding-left: 18px; }

.rps-lesson h3 { color: #fff; font-size: 1.25em; font-weight: bold; margin-top: 28px; margin-bottom: 12px; }

.rps-lesson h4 { color: #fff; font-size: 1.1em; font-weight: bold; margin-top: 20px; margin-bottom: 8px; }

.rps-lesson p, .rps-lesson li, .rps-lesson strong { color: #e5e7eb; font-size: 0.98em; }

.rps-lesson ul, .rps-lesson ol { margin: 15px 0; padding-left: 30px; }

.rps-lesson li { margin: 8px 0; }

/* Section highlight for all major content blocks */
.rps-lesson .section-highlight { background: #121212; border-radius: 16px; border: 2px solid #c06c84; box-shadow: 0 0 0 2px #c06c84; padding: 32px 28px 24px 28px; margin-bottom: 32px; }

.rps-lesson .console-example, .rps-lesson .code-block { background: #000 !important; color: #f6f5f4 !important; padding: 18px; font-family: 'Courier New', monospace; margin: 18px 0; border: 2px solid #8e6fc4; border-radius: 8px; overflow-x: auto; font-size: 1em; }

.rps-lesson .checkpoint-section { margin: 32px 0 24px 0; padding: 24px; background: #111112; border-radius: 12px; border: 2px solid #ffd700; box-shadow: 0 2px 12px #0004; }

.rps-lesson .checkpoint-label { font-weight: bold; color: #ffffff; font-size: 1.1em; margin-bottom: 8px; display: block; }

.rps-lesson .checkpoint-input { width: 100%; padding: 10px; font-size: 1em; border-radius: 6px; border: 2px solid #444; margin-bottom: 10px; background: #121212; color: #fff; outline: none; transition: border 0.2s, box-shadow 0.2s; }

.rps-lesson .checkpoint-input.correct { border: 2px solid #22c55e; box-shadow: 0 0 8px #22c55e; background: #1e2e1e; }

.rps-lesson .checkpoint-input.incorrect { border: 2px solid #ef4444; box-shadow: 0 0 8px #ef4444; background: #2e1e1e; }

.rps-lesson .checkpoint-feedback { font-weight: bold; margin-bottom: 8px; min-height: 24px; }

.rps-lesson .checkpoint-feedback.correct { color: #22c55e; }

.rps-lesson .checkpoint-feedback.incorrect { color: #ef4444; }

.rps-lesson .show-answer-btn { background: #111112; color: #fff; border: none; border-radius: 6px; padding: 6px 16px; font-weight: bold; cursor: pointer; margin-top: 8px; margin-bottom: 0; }

.rps-lesson .show-answer-btn:hover { background: #8e6fc4; }

.rps-lesson .flowchart-box { border: 2px solid #fff !important; background: #121212; border-radius: 8px; max-width: 500px; text-align: left; padding: 1rem 1.5rem; }

.rps-lesson .flowchart-arrow { color: #fff !important; font-size: 2.5rem; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.search-result-preview { color: #8e8e93 !important; list-style-type: none !important; list-style: none !important; background-color: #1e1e1e !important; border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; }

.search-result-highlight { color: #4bbaff !important; font-weight: bold !important; list-style-type: none !important; list-style: none !important; }

.search-results-list-item .search-result-title { color: white !important; list-style-type: none !important; border-top-left-radius: 12px; border-top-right-radius: 12px; background-color: #1e1e1e !important; padding: 10px; }

.search-results-list-item { list-style-type: none !important; margin-bottom: 10px !important; }

/* ---------- User theme: plain color (no gradients) ---------- */
:root { --pref-bg-color: #0b1220; --pref-text-color: #e6eef8; --pref-font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; --pref-font-size: 14px; --pref-accent-color: #3b82f6; --text-muted: #a0a0a0; /* Derived UI variables */ --panel: var(--pref-bg-color); --panel-mid: rgba(0,0,0,0.12); --ui-bg: rgba(0,0,0,0.06); --ui-border: rgba(255,255,255,0.06); --emoji-bg: rgba(255,255,255,0.9); }

/* Scope the user theme */
.user-theme-active, .user-theme-active.dark { background-color: var(--pref-bg-color) !important; color: var(--pref-text-color) !important; font-family: var(--pref-font-family) !important; font-size: var(--pref-font-size) !important; }

/* Make main containers use plain user color (no gradients) */
.user-theme-active { /* Full sidebar and topbar use the plain user color */ /* Infograph module cards: same plain color for every card */ /* Ensure no alternating rule overrides the plain color */ /* Columns transparent so card color remains visible */ /* Questions: background plain; inputs also plain user color */ /* Generic cards/panels use plain user color */ /* Links/icons */ /* Force text color for readability */ /* Muted secondary text */ /* Inputs/buttons default */ /* Invert color to look preferred */ /* Lesson player specific overrides */ /* Tailwind background class overrides */ }
.user-theme-active .container, .user-theme-active .page-content, .user-theme-active .wrapper, .user-theme-active main, .user-theme-active article, .user-theme-active .post, .user-theme-active .content, .user-theme-active .opencs_root { background-color: var(--pref-bg-color) !important; color: var(--pref-text-color) !important; border-color: var(--ui-border) !important; }
.user-theme-active .lesson-sidebar, .user-theme-active .lesson-topbar, .user-theme-active aside, .user-theme-active .sidebar, .user-theme-active #sidebar, .user-theme-active .site-sidebar, .user-theme-active .sidebar-container, .user-theme-active .side-panel { background-color: var(--pref-bg-color) !important; color: var(--pref-text-color) !important; border-color: var(--ui-border) !important; }
.user-theme-active .module-card { background-color: var(--pref-bg-color) !important; border: 1px solid var(--ui-border) !important; color: var(--pref-text-color) !important; padding: 1rem !important; box-shadow: none !important; }
.user-theme-active .module-card:nth-child(2n) { background-color: var(--pref-bg-color) !important; }
.user-theme-active .module-image-col, .user-theme-active .module-keypoints-col, .user-theme-active .module-desc-col { background: transparent !important; color: var(--pref-text-color) !important; }
.user-theme-active .module-desc-col { padding: 0.6rem !important; border-radius: 0.375rem !important; }
.user-theme-active .module-img { background-color: transparent !important; border-radius: 0.5rem !important; object-fit: cover !important; }
.user-theme-active .module-emoji { background-color: var(--emoji-bg) !important; color: #0b1220 !important; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35) !important; }
.user-theme-active .module-overlay { background-color: rgba(0, 0, 0, 0.45) !important; }
.user-theme-active .questions, .user-theme-active .question-box, .user-theme-active .question-card, .user-theme-active .qa-box, .user-theme-active .qa-section { background-color: var(--pref-bg-color) !important; color: var(--pref-text-color) !important; border: 1px solid var(--ui-border) !important; }
.user-theme-active .question-box input, .user-theme-active .question-box textarea.smallInput, .user-theme-active .question-box textarea.mediumInput, .user-theme-active .question-box textarea.largeInput, .user-theme-active .question-box textarea, .user-theme-active .question-card input, .user-theme-active .question-card textarea.smallInput, .user-theme-active .question-card textarea.mediumInput, .user-theme-active .question-card textarea.largeInput, .user-theme-active .question-card textarea, .user-theme-active input.question-input, .user-theme-active textarea.question-input.smallInput, .user-theme-active textarea.question-input.mediumInput, .user-theme-active textarea.question-input.largeInput, .user-theme-active textarea.question-input { background-color: var(--pref-bg-color) !important; color: var(--pref-text-color) !important; border: 1px solid rgba(0, 0, 0, 0.18) !important; padding: 0.5rem !important; }
.user-theme-active .card, .user-theme-active .panel, .user-theme-active .box, .user-theme-active .post, .user-theme-active .microblog-post, .user-theme-active [class*="rounded-xl"], .user-theme-active [class*="rounded-lg"] { background-color: var(--pref-bg-color) !important; border-color: var(--ui-border) !important; color: var(--pref-text-color) !important; }
.user-theme-active a, .user-theme-active a:visited, .user-theme-active a:hover, .user-theme-active .module-card a, .user-theme-active .module-card svg, .user-theme-active header a, .user-theme-active .site-header a, .user-theme-active aside a, .user-theme-active .sidebar a { color: var(--pref-accent-color) !important; fill: currentColor !important; }
.user-theme-active p, .user-theme-active span, .user-theme-active div, .user-theme-active li, .user-theme-active td, .user-theme-active th, .user-theme-active label, .user-theme-active h1, .user-theme-active h2, .user-theme-active h3, .user-theme-active h4, .user-theme-active h5, .user-theme-active h6, .user-theme-active small { color: var(--pref-text-color) !important; }
.user-theme-active .text-neutral-400, .user-theme-active .text-neutral-500, .user-theme-active .text-gray-400, .user-theme-active .text-gray-500, .user-theme-active .text-slate-400, .user-theme-active .text-slate-500, .user-theme-active .text-zinc-400, .user-theme-active .text-zinc-500, .user-theme-active .post-meta, .user-theme-active .post-meta-description { color: var(--text-muted) !important; }
.user-theme-active input, .user-theme-active textarea.smallInput, .user-theme-active textarea.mediumInput, .user-theme-active textarea.largeInput, .user-theme-active select, .user-theme-active textarea, .user-theme-active button { background-color: var(--panel); border: 1px solid var(--pref-accent-color); }
.user-theme-active button.bg-blue-600, .user-theme-active button.bg-blue-700, .user-theme-active button.bg-green-600, .user-theme-active button.bg-green-700, .user-theme-active .btn-primary, .user-theme-active .save-section-btn, .user-theme-active #save-preferences, .user-theme-active #save-theme-btn { background-color: color-mix(in srgb, var(--pref-accent-color) 65%, white 35%); border: 1px solid var(--pref-accent-color); }
.user-theme-active .lesson-player, .user-theme-active .lesson-main, .user-theme-active .main-content, .user-theme-active .content-wrapper, .user-theme-active .lesson-content { background-color: var(--pref-bg-color) !important; color: var(--pref-text-color) !important; }
.user-theme-active .lesson-sidebar, .user-theme-active .sidebar-header, .user-theme-active .sprint-nav, .user-theme-active .sprint-section, .user-theme-active .lesson-item { background-color: var(--panel) !important; color: var(--pref-text-color) !important; border-color: var(--ui-border) !important; }
.user-theme-active .sidebar-header h2, .user-theme-active .sidebar-header p, .user-theme-active .sprint-toggle, .user-theme-active .lesson-title, .user-theme-active .progress-label { color: var(--pref-text-color) !important; }
.user-theme-active [class*="bg-neutral-"], .user-theme-active [class*="bg-gray-"], .user-theme-active [class*="bg-slate-"], .user-theme-active [class*="bg-zinc-"] { background-color: var(--pref-bg-color) !important; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.small { height: 28px; padding: 4px 10px; border-radius: 40px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.medium, .hallpass-buttons button { height: 35px; padding: 7px 14px; border-radius: 12px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.large { height: 50px; padding: 14px 20px; border-radius: 12px; border: none; font-size: 17px; line-height: 22px; letter-spacing: -0.43px; cursor: pointer; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.disabled:hover, .disabled:active { background-color: inherit; }

.primary.disabled, .hallpass-buttons button.disabled, .secondary.disabled, .tertiary.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.primary.disabled:hover, .hallpass-buttons button.disabled:hover, .primary.disabled:active, .hallpass-buttons button.disabled:active, .secondary.disabled:hover, .secondary.disabled:active, .tertiary.disabled:hover, .tertiary.disabled:active { background-color: inherit; }

.small { height: 28px; padding: 4px 10px; border-radius: 40px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.medium, .hallpass-buttons button { height: 35px; padding: 7px 14px; border-radius: 12px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.large { height: 50px; padding: 14px 20px; border-radius: 12px; border: none; font-size: 17px; line-height: 22px; letter-spacing: -0.43px; cursor: pointer; }

button, .primary, .hallpass-buttons button { color: white; background-color: rgba(80, 80, 80, 0.7); transition: all 0.5s; transition: all 0.5s; }
button:hover, .primary:hover, .hallpass-buttons button:hover { background-color: rgba(55, 55, 55, 0.7); }
button:active, .primary:active, .hallpass-buttons button:active { background-color: rgba(29, 29, 29, 0.7); }

.secondary { color: #999999; background-color: rgba(120, 120, 128, 0.12); transition: all 0.5s; transition: all 0.5s; }
.secondary:hover { background-color: rgba(95, 95, 102, 0.12); }
.secondary:active { background-color: rgba(71, 71, 75, 0.12); }

.filledHighlight { background-color: #007aff; transition: all 0.5s; transition: all 0.5s; }
.filledHighlight:hover { background-color: #0062cc; }
.filledHighlight:active { background-color: #004999; }

.filledTinted { color: #007aff; background-color: rgba(0, 122, 255, 0.15); transition: all 0.5s; transition: all 0.5s; }
.filledTinted:hover { background-color: rgba(0, 98, 204, 0.15); }
.filledTinted:active { background-color: rgba(0, 73, 153, 0.15); }

.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.disabled:hover, .disabled:active { background-color: inherit; }

.primary.disabled, .hallpass-buttons button.disabled, .secondary.disabled, .tertiary.disabled { color: rgba(118, 118, 128, 0.48); background-color: rgba(120, 120, 128, 0.12); cursor: not-allowed; opacity: 0.5; transition: all 0.5s; }
.primary.disabled:hover, .hallpass-buttons button.disabled:hover, .primary.disabled:active, .hallpass-buttons button.disabled:active, .secondary.disabled:hover, .secondary.disabled:active, .tertiary.disabled:hover, .tertiary.disabled:active { background-color: inherit; }

/* define class for redifined button */
.button { width: auto; height: auto; border-radius: 10px; background-color: #21807c; border: 3px solid black; font-size: 1.5em; display: flex; justify-content: center; align-items: center; grid-column: span 1; grid-row: span 1; transition: all 0.5s; }

/* darkens the background color on hover to create a selecting effect */
.button:hover { background-color: #373737; }

/* "row style" is flexible size and aligns pictures in center */
.row { align-items: center; display: flex; }

/* "column style" is one-third of the width with padding */
.column { flex: 16.66%; padding: 3px; }

/* Animation container */
#animation { min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 1rem; }

/* Calculator container - modern grid layout */
.calculator-container { width: 100%; max-width: 400px; margin: 0 auto; padding: 1.5rem; background: rgba(30, 30, 30, 0.95); border-radius: 20px; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: auto repeat(5, 1fr); gap: 12px; }

/* Output display */
.calculator-output { grid-column: span 4; background: linear-gradient(145deg, #1a1a1a, #2d2d2d); border-radius: 12px; padding: 1rem 1.25rem; font-size: clamp(1.5rem, 5vw, 2.5rem); font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; color: #fff; text-align: right; border: none; box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.3); min-height: 70px; display: flex; align-items: center; justify-content: flex-end; word-break: break-all; overflow: hidden; }

/* Base button mixin for calculator */
/* Number buttons */
.calculator-number { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #3a3a3a, #2a2a2a); color: #fff; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); /* Zero button spans 2 columns */ }
.calculator-number:hover { background: linear-gradient(145deg, #4a4a4a, #3a3a3a); transform: translateY(-2px); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.15); }
.calculator-number:active { transform: translateY(0); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); }
.calculator-number.zero { grid-column: span 2; aspect-ratio: auto; padding: 0 2rem; }

/* Operation buttons (+, -, *, /) */
.calculator-operation { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #ff9500, #e68a00); color: #fff; box-shadow: 0 4px 6px rgba(255, 149, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2); }
.calculator-operation:hover { background: linear-gradient(145deg, #ffaa33, #ff9500); transform: translateY(-2px); box-shadow: 0 6px 12px rgba(255, 149, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.calculator-operation:active { transform: translateY(0); }

/* Clear button */
.calculator-clear { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #636366, #48484a); color: #fff; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); font-size: clamp(1rem, 3vw, 1.2rem); }
.calculator-clear:hover { background: linear-gradient(145deg, #737377, #58585a); transform: translateY(-2px); }
.calculator-clear:active { transform: translateY(0); }

/* Special operation buttons (sqrt, %) */
.calculator-special { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #636366, #48484a); color: #fff; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1); }
.calculator-special:hover { background: linear-gradient(145deg, #737377, #58585a); transform: translateY(-2px); }
.calculator-special:active { transform: translateY(0); }

/* Equals button */
.calculator-equals { aspect-ratio: 1; border-radius: 12px; border: none; font-size: clamp(1.2rem, 4vw, 1.5rem); font-weight: 600; cursor: pointer; display: flex; justify-content: center; align-items: center; transition: all 0.15s ease; user-select: none; -webkit-tap-highlight-color: transparent; background: linear-gradient(145deg, #34c759, #28a745); color: #fff; box-shadow: 0 4px 6px rgba(52, 199, 89, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.2); }
.calculator-equals:hover { background: linear-gradient(145deg, #4cd964, #34c759); transform: translateY(-2px); box-shadow: 0 6px 12px rgba(52, 199, 89, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.calculator-equals:active { transform: translateY(0); }

/* Responsive breakpoints */
@media (max-width: 480px) { .calculator-container { max-width: 100%; padding: 1rem; gap: 8px; border-radius: 16px; }
  .calculator-output { min-height: 60px; padding: 0.75rem 1rem; } }
@media (min-width: 481px) and (max-width: 768px) { .calculator-container { max-width: 350px; } }
@media (min-width: 769px) { .calculator-container { max-width: 400px; }
  .calculator-number, .calculator-operation, .calculator-clear, .calculator-special, .calculator-equals { min-height: 70px; } }
/* Disable canvas filter if present */
canvas { filter: none; }

.iridescent { position: relative; overflow: hidden; background: blue; /* base blue */ color: white; }
.iridescent::before { content: ""; position: absolute; inset: 0; background: linear-gradient(120deg, rgba(255, 255, 255, 0.2) 0%, rgba(200, 200, 200, 0.6) 50%, rgba(255, 255, 255, 0.2) 100%); background-size: 200% 200%; animation: shimmer 3s infinite linear; z-index: 0; }
.iridescent span, .iridescent a { position: relative; z-index: 1; }

@keyframes shimmer { 0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; } }
.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
/* Define a mixin for common dropdown styles */
/* Apply mixin to dropdown menus */
.dropdown { position: relative; display: inline-block; z-index: 1; }
.dropdown:hover .dropdown-content { display: block; animation: scaleIn 0.3s ease forwards; }
.dropdown .dropdown-content { display: none; position: fixed; border-radius: 12px; box-shadow: 0px 8px 16px 0px black; overflow: hidden; }
.dropdown .dropdown-content a { position: relative; padding: 12px 16px; text-decoration: none; display: block; color: #ecf0f1; transition: color 0.3s ease, background-color 0.3s ease; border-radius: 12px; }
.dropdown .dropdown-content a::after { position: absolute; content: ""; left: 0; width: 100%; height: 60px; background: rgba(255, 255, 255, 0.5); transform: scaleX(0); transform-origin: right; transition: transform 0.3s ease; bottom: 0; }
.dropdown .dropdown-content a:hover { color: #95a5a6; background-color: transparent; border-radius: 12px; }
.dropdown .dropdown-content a:hover::after { transform: scaleX(1); transform-origin: left; }

.dropdownp1 { position: relative; display: inline-block; z-index: 1; }
.dropdownp1:hover .dropdown-content { display: block; animation: scaleIn 0.3s ease forwards; }
.dropdownp1 .dropdown-content { display: none; position: fixed; border-radius: 12px; box-shadow: 0px 8px 16px 0px black; overflow: hidden; }
.dropdownp1 .dropdown-content a { position: relative; padding: 12px 16px; text-decoration: none; display: block; color: #ecf0f1; transition: color 0.3s ease, background-color 0.3s ease; border-radius: 12px; }
.dropdownp1 .dropdown-content a::after { position: absolute; content: ""; left: 0; width: 100%; height: 60px; background: rgba(255, 255, 255, 0.5); transform: scaleX(0); transform-origin: right; transition: transform 0.3s ease; bottom: 0; }
.dropdownp1 .dropdown-content a:hover { color: #95a5a6; background-color: transparent; border-radius: 12px; }
.dropdownp1 .dropdown-content a:hover::after { transform: scaleX(1); transform-origin: left; }

.dropdownp2 { position: relative; display: inline-block; z-index: 1; }
.dropdownp2:hover .dropdown-content { display: block; animation: scaleIn 0.3s ease forwards; }
.dropdownp2 .dropdown-content { display: none; position: fixed; border-radius: 12px; box-shadow: 0px 8px 16px 0px black; overflow: hidden; }
.dropdownp2 .dropdown-content a { position: relative; padding: 12px 16px; text-decoration: none; display: block; color: #ecf0f1; transition: color 0.3s ease, background-color 0.3s ease; border-radius: 12px; }
.dropdownp2 .dropdown-content a::after { position: absolute; content: ""; left: 0; width: 100%; height: 60px; background: rgba(255, 255, 255, 0.5); transform: scaleX(0); transform-origin: right; transition: transform 0.3s ease; bottom: 0; }
.dropdownp2 .dropdown-content a:hover { color: #95a5a6; background-color: transparent; border-radius: 12px; }
.dropdownp2 .dropdown-content a:hover::after { transform: scaleX(1); transform-origin: left; }

.dropdownp3 { position: relative; display: inline-block; z-index: 1; }
.dropdownp3:hover .dropdown-content { display: block; animation: scaleIn 0.3s ease forwards; }
.dropdownp3 .dropdown-content { display: none; position: fixed; border-radius: 12px; box-shadow: 0px 8px 16px 0px black; overflow: hidden; }
.dropdownp3 .dropdown-content a { position: relative; padding: 12px 16px; text-decoration: none; display: block; color: #ecf0f1; transition: color 0.3s ease, background-color 0.3s ease; border-radius: 12px; }
.dropdownp3 .dropdown-content a::after { position: absolute; content: ""; left: 0; width: 100%; height: 60px; background: rgba(255, 255, 255, 0.5); transform: scaleX(0); transform-origin: right; transition: transform 0.3s ease; bottom: 0; }
.dropdownp3 .dropdown-content a:hover { color: #95a5a6; background-color: transparent; border-radius: 12px; }
.dropdownp3 .dropdown-content a:hover::after { transform: scaleX(1); transform-origin: left; }

.dropdownp4 { position: relative; display: inline-block; z-index: 1; }
.dropdownp4:hover .dropdown-content { display: block; animation: scaleIn 0.3s ease forwards; }
.dropdownp4 .dropdown-content { display: none; position: fixed; border-radius: 12px; box-shadow: 0px 8px 16px 0px black; overflow: hidden; }
.dropdownp4 .dropdown-content a { position: relative; padding: 12px 16px; text-decoration: none; display: block; color: #ecf0f1; transition: color 0.3s ease, background-color 0.3s ease; border-radius: 12px; }
.dropdownp4 .dropdown-content a::after { position: absolute; content: ""; left: 0; width: 100%; height: 60px; background: rgba(255, 255, 255, 0.5); transform: scaleX(0); transform-origin: right; transition: transform 0.3s ease; bottom: 0; }
.dropdownp4 .dropdown-content a:hover { color: #95a5a6; background-color: transparent; border-radius: 12px; }
.dropdownp4 .dropdown-content a:hover::after { transform: scaleX(1); transform-origin: left; }

@keyframes scaleIn { 0% { transform: scale(0.8); opacity: 0; }
  100% { transform: scale(1); opacity: 1; } }
.dropbtn { border: none; background-color: transparent !important; text-decoration: underline; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
img { border-radius: 12px; }

.loading-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.9); backdrop-filter: blur(30px); display: flex; justify-content: center; align-items: center; z-index: 9999; }

.spinner { border: 8px solid #f3f3f3; border-top: 8px solid #3498db; border-radius: 50%; width: 50px; height: 50px; animation: spin 2s linear infinite; }

@keyframes spin { 0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); } }
input, input.smallInput, input.mediumInput, input.largeInput, textarea.smallInput, textarea.mediumInput, textarea.largeInput, input.gradientInput, textarea { color: white; border-radius: 12px; border: 1px solid rgba(72, 72, 81, 0.63); filter: drop-shadow(0 10px 10px rgba(0, 0, 0, 0.3)); padding: 15px; transition: all 0.3s ease; }
input:focus, textarea.smallInput:focus, textarea.mediumInput:focus, textarea.largeInput:focus, textarea:focus { outline: none; border-color: rgba(255, 255, 255, 0.3); }
input:-webkit-autofill, textarea.smallInput:-webkit-autofill, textarea.mediumInput:-webkit-autofill, textarea.largeInput:-webkit-autofill, input:-webkit-autofill:hover, textarea.smallInput:-webkit-autofill:hover, textarea.mediumInput:-webkit-autofill:hover, textarea.largeInput:-webkit-autofill:hover, input:-webkit-autofill:focus, textarea.smallInput:-webkit-autofill:focus, textarea.mediumInput:-webkit-autofill:focus, textarea.largeInput:-webkit-autofill:focus, input:-webkit-autofill:active, textarea.smallInput:-webkit-autofill:active, textarea.mediumInput:-webkit-autofill:active, textarea.largeInput:-webkit-autofill:active, textarea:-webkit-autofill, textarea:-webkit-autofill:hover, textarea:-webkit-autofill:focus, textarea:-webkit-autofill:active { -webkit-background-clip: text; -webkit-text-fill-color: #ffffff; transition: background-color 5000s ease-in-out 0s; box-shadow: inset 0 0 20px 20px #23232329; }

input, input.smallInput, input.mediumInput, input.largeInput, textarea.smallInput, textarea.mediumInput, textarea.largeInput, input.gradientInput, textarea { color: white; border-radius: 12px; border: 1px solid rgba(72, 72, 81, 0.63); filter: drop-shadow(0 10px 10px rgba(0, 0, 0, 0.3)); padding: 15px; transition: all 0.3s ease; }
input:focus, textarea.smallInput:focus, textarea.mediumInput:focus, textarea.largeInput:focus, textarea:focus { outline: none; border-color: rgba(255, 255, 255, 0.3); }
input:-webkit-autofill, textarea.smallInput:-webkit-autofill, textarea.mediumInput:-webkit-autofill, textarea.largeInput:-webkit-autofill, input:-webkit-autofill:hover, textarea.smallInput:-webkit-autofill:hover, textarea.mediumInput:-webkit-autofill:hover, textarea.largeInput:-webkit-autofill:hover, input:-webkit-autofill:focus, textarea.smallInput:-webkit-autofill:focus, textarea.mediumInput:-webkit-autofill:focus, textarea.largeInput:-webkit-autofill:focus, input:-webkit-autofill:active, textarea.smallInput:-webkit-autofill:active, textarea.mediumInput:-webkit-autofill:active, textarea.largeInput:-webkit-autofill:active, textarea:-webkit-autofill, textarea:-webkit-autofill:hover, textarea:-webkit-autofill:focus, textarea:-webkit-autofill:active { -webkit-background-clip: text; -webkit-text-fill-color: #ffffff; transition: background-color 5000s ease-in-out 0s; box-shadow: inset 0 0 20px 20px #23232329; }

input.smallInput, textarea.smallInput { font-size: 0.8em; }

input.mediumInput, textarea.mediumInput { font-size: 1.1em; }

input.largeInput, textarea.largeInput { font-size: 1.5em; }

textarea.smallInput { font-size: 0.8em; height: 8em; }

textarea.mediumInput { font-size: 1.1em; height: 12em; }

textarea.largeInput { font-size: 1.5em; height: 24em; }

input, input.smallInput, input.mediumInput, input.largeInput, textarea.smallInput, textarea.mediumInput, textarea.largeInput, input.gradientInput, textarea { color: white; border-radius: 12px; border: 1px solid rgba(72, 72, 81, 0.63); filter: drop-shadow(0 10px 10px rgba(0, 0, 0, 0.3)); padding: 15px; transition: all 0.3s ease; }
input:focus, textarea.smallInput:focus, textarea.mediumInput:focus, textarea.largeInput:focus, textarea:focus { outline: none; border-color: rgba(255, 255, 255, 0.3); }
input:-webkit-autofill, textarea.smallInput:-webkit-autofill, textarea.mediumInput:-webkit-autofill, textarea.largeInput:-webkit-autofill, input:-webkit-autofill:hover, textarea.smallInput:-webkit-autofill:hover, textarea.mediumInput:-webkit-autofill:hover, textarea.largeInput:-webkit-autofill:hover, input:-webkit-autofill:focus, textarea.smallInput:-webkit-autofill:focus, textarea.mediumInput:-webkit-autofill:focus, textarea.largeInput:-webkit-autofill:focus, input:-webkit-autofill:active, textarea.smallInput:-webkit-autofill:active, textarea.mediumInput:-webkit-autofill:active, textarea.largeInput:-webkit-autofill:active, textarea:-webkit-autofill, textarea:-webkit-autofill:hover, textarea:-webkit-autofill:focus, textarea:-webkit-autofill:active { -webkit-background-clip: text; -webkit-text-fill-color: #ffffff; transition: background-color 5000s ease-in-out 0s; box-shadow: inset 0 0 20px 20px #23232329; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
input.gradientInput, textarea.gradientInput.smallInput, textarea.gradientInput.mediumInput, textarea.gradientInput.largeInput { background-image: linear-gradient(120deg, #1e1e1e 45%, #2a2a2a); }

.inputIconGroup > ion-icon { position: absolute; top: 50%; left: 10px; /* Adjust based on desired spacing */ transform: translateY(-50%); font-size: 1.5rem; /* Adjust the size of the icon */ color: rgba(255, 255, 255, 0.4); pointer-events: none; /* Ensure the icon does not interfere with input focus */ }

.switch { display: flex; align-items: center; gap: 10px; }
.switch .toggle { position: relative; display: flex; width: 54px; height: 31px; padding: 2px 2px 2px 6px; justify-content: flex-end; align-items: center; }
.switch .toggle input[type="checkbox"], .switch .toggle textarea[type="checkbox"].smallInput, .switch .toggle textarea[type="checkbox"].mediumInput, .switch .toggle textarea[type="checkbox"].largeInput { opacity: 0; width: 0; height: 0; }

.slider { position: absolute; cursor: pointer; inset: 0; border-radius: 100px; }
.slider:before { content: ""; position: absolute; width: 27px; height: 27px; left: 4px; bottom: 4px; border-radius: 50%; }

.label-text { font-size: 16px; color: #fff; user-select: none; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.switch input[type="checkbox"]:checked + .slider, .switch textarea[type="checkbox"].smallInput:checked + .slider, .switch textarea[type="checkbox"].mediumInput:checked + .slider, .switch textarea[type="checkbox"].largeInput:checked + .slider { background: #007aff; }
.switch input[type="checkbox"]:checked + .slider.green, .switch textarea[type="checkbox"].smallInput:checked + .slider.green, .switch textarea[type="checkbox"].mediumInput:checked + .slider.green, .switch textarea[type="checkbox"].largeInput:checked + .slider.green { background: #34c759; }
.switch input[type="checkbox"]:focus + .slider, .switch textarea[type="checkbox"].smallInput:focus + .slider, .switch textarea[type="checkbox"].mediumInput:focus + .slider, .switch textarea[type="checkbox"].largeInput:focus + .slider { box-shadow: 0 0 1px #2196f3; }
.switch input[type="checkbox"]:checked + .slider:before, .switch textarea[type="checkbox"].smallInput:checked + .slider:before, .switch textarea[type="checkbox"].mediumInput:checked + .slider:before, .switch textarea[type="checkbox"].largeInput:checked + .slider:before { transform: translateX(27px); }

.slider { background: #3a3a3c; background-blend-mode: overlay, luminosity; transition: 0.4s; }
.slider:before { background: #fff; box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.04), 0px 3px 8px 0px rgba(0, 0, 0, 0.15), 0px 3px 1px 0px rgba(0, 0, 0, 0.06); transition: 0.4s; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
h1, h2, h3, h4 { color: white !important; }

p { color: #e1e1e6 !important; }

a { color: #4bbaff !important; }
a:hover { color: rgba(255, 255, 255, 0.87) !important; }

li, ul, ol { color: #e1e1e6 !important; }

body { font-family: Verdana, sans-serif !important; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.backend-status { display: flex; gap: 15px; margin: 15px 0; padding: 15px; background: rgba(255, 255, 255, 0.05); border-radius: 10px; border: 1px solid rgba(255, 255, 255, 0.1); }
@media (max-width: 480px) { .backend-status { flex-direction: column; gap: calc(15px * 0.5); } }
@media (max-width: 768px) { .backend-status { padding: calc(15px * 0.75); } }

.status-item { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 8px; background: rgba(255, 255, 255, 0.05); transition: all 0.3s ease; flex: 1; justify-content: center; }
@media (max-width: 768px) { .status-item { padding: 6px 10px; gap: 6px; } }
@media (max-width: 480px) { .status-item { justify-content: flex-start; min-height: 44px; } }

.status-icon { font-size: 16px; min-width: 16px; text-align: center; }

.status-text { font-size: 14px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 480px) { .status-text { white-space: normal; word-break: break-word; } }

.overall-status { margin-top: 10px; padding: 10px; text-align: center; border-radius: 8px; font-weight: 500; transition: all 0.3s ease; }
.overall-status.hidden { display: none; }

@keyframes statusIndicatorSuccessPulse { 0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); } }
@keyframes statusIndicatorErrorShake { 0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-5px); }
  75% { transform: translateX(5px); } }
@keyframes statusIndicatorPendingPulse { 0%, 100% { opacity: 1; }
  50% { opacity: 0.6; } }
@keyframes statusIndicatorSpin { from { transform: rotate(0deg); }
  to { transform: rotate(360deg); } }
.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.backend-status { display: flex; gap: 15px; margin: 15px 0; padding: 15px; background: rgba(255, 255, 255, 0.05); border-radius: 10px; border: 1px solid rgba(255, 255, 255, 0.1); }
@media (max-width: 480px) { .backend-status { flex-direction: column; gap: calc(15px * 0.5); } }
@media (max-width: 768px) { .backend-status { padding: calc(15px * 0.75); } }

.status-item { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 8px; background: rgba(255, 255, 255, 0.05); transition: all 0.3s ease; flex: 1; justify-content: center; }
@media (max-width: 768px) { .status-item { padding: 6px 10px; gap: 6px; } }
@media (max-width: 480px) { .status-item { justify-content: flex-start; min-height: 44px; } }

.status-icon { font-size: 16px; min-width: 16px; text-align: center; }

.status-text { font-size: 14px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 480px) { .status-text { white-space: normal; word-break: break-word; } }

.overall-status { margin-top: 10px; padding: 10px; text-align: center; border-radius: 8px; font-weight: 500; transition: all 0.3s ease; }
.overall-status.hidden { display: none; }

.status-item.pending { background: rgba(255, 193, 7, 0.2); border: 1px solid rgba(255, 193, 7, 0.3); animation: statusIndicatorPendingPulse 2s ease-in-out infinite; }
.status-item.success { background: rgba(40, 167, 69, 0.2); border: 1px solid rgba(40, 167, 69, 0.3); animation: statusIndicatorSuccessPulse 0.5s ease-in-out; }
.status-item.error { background: rgba(220, 53, 69, 0.2); border: 1px solid rgba(220, 53, 69, 0.3); animation: statusIndicatorErrorShake 0.5s ease-in-out; }
.status-item.loading { background: rgba(255, 193, 7, 0.2); border: 1px solid rgba(255, 193, 7, 0.3); }
.status-item.loading .status-icon { animation: statusIndicatorSpin 1s linear infinite; }
.status-item.disabled { opacity: 0.5; }
.status-item.disabled .status-icon { opacity: 0.5; }
.status-item.disabled .status-text { color: #888; font-style: italic; }

.overall-status.success { background: rgba(40, 167, 69, 0.2); border: 1px solid rgba(40, 167, 69, 0.3); color: #28a745; }
.overall-status.partial { background: rgba(255, 193, 7, 0.2); border: 1px solid rgba(255, 193, 7, 0.3); color: #ffc107; }
.overall-status.error { background: rgba(220, 53, 69, 0.2); border: 1px solid rgba(220, 53, 69, 0.3); color: #dc3545; }

.small { height: 28px; padding: 4px 10px; border-radius: 40px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.medium, .hallpass-buttons button { height: 35px; padding: 7px 14px; border-radius: 12px; border: none; font-size: 15px; line-height: 20px; letter-spacing: -0.23px; cursor: pointer; }

.large { height: 50px; padding: 14px 20px; border-radius: 12px; border: none; font-size: 17px; line-height: 22px; letter-spacing: -0.43px; cursor: pointer; }

@media (max-width: 768px) { .submit-button { width: 100%; margin-bottom: 10px; min-height: 44px; } }

.loading { color: transparent; position: relative; }
.loading::after { content: ''; position: absolute; top: 50%; left: 50%; width: 16px; height: 16px; margin: -8px 0 0 -8px; border: 2px solid transparent; border-top: 2px solid currentColor; border-radius: 50%; animation: statusIndicatorSpin 1s linear infinite; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.login-container { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; flex-wrap: nowrap; }
@media (max-width: 768px) { .login-container { flex-direction: column; gap: calc(20px * 0.75); } }

.login-card, .signup-card { background-color: var(--bg-1); border-radius: 15px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); padding: 20px; color: white; overflow: hidden; flex: 1 1 calc(50% - 20px); max-width: 45%; box-sizing: border-box; }
@media (max-width: 768px) { .login-card, .signup-card { flex: 1 1 100%; max-width: 100%; } }
.login-card h1, .signup-card h1 { margin-bottom: 20px; color: inherit; }
.login-card hr, .signup-card hr { border: none; border-top: 1px solid rgba(255, 255, 255, 0.2); margin: 20px 0; }

.form-group { position: relative; margin-bottom: 1.5rem; }
.form-group input, .form-group textarea.smallInput, .form-group textarea.mediumInput, .form-group textarea.largeInput, .form-group textarea, .form-group select { width: 100%; box-sizing: border-box; }
@media (max-width: 480px) { .form-group { margin-bottom: calc(1.5rem * 0.75); } }

.form-group select { color: white; border-radius: 12px; border: 1px solid rgba(72, 72, 81, 0.63); filter: drop-shadow(0 10px 10px rgba(0, 0, 0, 0.3)); padding: 15px; transition: all 0.3s ease; background-color: #121212; }
.form-group select option[disabled], .form-group select:invalid { color: #757575; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.oauth-error { background-color: #dc2626; color: white; padding: 0.75rem; border-radius: 0.5rem; margin: 1rem 0; }

.oauth-success { background-color: #16a34a; color: white; padding: 0.75rem; border-radius: 0.5rem; margin: 1rem 0; }

.secondary { background-color: #6b7280 !important; color: white; }
.secondary:hover { background-color: #5a6272 !important; }

.glass, .tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content, .container, .hallpass-container { backdrop-filter: blur(30px); }

.tintedGlass, .site-header, .dropdown .dropdown-content, .dropdownp1 .dropdown-content, .dropdownp2 .dropdown-content, .dropdownp3 .dropdown-content, .dropdownp4 .dropdown-content { background: rgba(50, 50, 50, 0.5); }

.glow, .glowOnHover, .hallpass-buttons button { cursor: pointer; position: relative; z-index: 0; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before, .glow:after, .glowOnHover:after, .hallpass-buttons button:after { content: ''; position: absolute; width: 100%; height: 100%; left: 0; top: 0; border-radius: inherit; z-index: -1; }
.glow:before, .glowOnHover:before, .hallpass-buttons button:before { background: linear-gradient(45deg, #ff0000, #ff7300, #fffb00, #48ff00, #00ffd5, #002bff, #7a00ff, #ff00c8, #ff0000); background-size: 400%; filter: blur(5px); width: calc(100% + 4px); height: calc(100% + 4px); top: -2px; left: -2px; opacity: 0; transition: opacity .3s ease-in-out; animation: glowing 20s linear infinite; }
.glow:hover:before, .glowOnHover:hover:before, .hallpass-buttons button:hover:before { opacity: 1; }
.glow:after, .glowOnHover:after, .hallpass-buttons button:after { background: #1e1e1e; }

.glowOnHover, .hallpass-buttons button { border: none; outline: none; color: #fff; background: #1e1e1e; border-radius: 12px; }

@keyframes glowing { 0%,
    100% { background-position: 0 0; }
  50% { background-position: 400% 0; } }
.password-match { border-color: #10b981 !important; box-shadow: 0 0 0 1px #10b981 !important; }

.password-mismatch { border-color: #ef4444 !important; box-shadow: 0 0 0 1px #ef4444 !important; }

.validation-message { font-size: 0.8rem; margin-top: 0.5rem; min-height: 1.2rem; transition: all 0.3s ease; }
.validation-message.success { color: #10b981; }
.validation-message.error { color: #ef4444; }

.form-group input:focus, .form-group textarea.smallInput:focus, .form-group textarea.mediumInput:focus, .form-group textarea.largeInput:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 1px #6366f1; }

.museum-container { background: linear-gradient(135deg, #1a1a2e, #16213e, #0f3460); min-height: 100vh; padding: 2rem 0; }

.museum-title { text-align: center; color: #f4f4f4; font-size: 3rem; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8); margin-bottom: 1rem; }

.museum-subtitle { text-align: center; color: #b8860b; font-style: italic; margin-bottom: 3rem; }

.exhibit-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; max-width: 1200px; margin: 0 auto; padding: 0 2rem; }

.exhibit-card { background: rgba(255, 255, 255, 0.1); border: 2px solid #b8860b; border-radius: 15px; padding: 2rem; position: relative; transition: all 0.3s ease; backdrop-filter: blur(10px); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); }

.course-badge { position: absolute; top: -10px; right: -10px; padding: 0.5rem 1rem; border-radius: 20px; font-size: 0.8rem; font-weight: bold; color: white; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); z-index: 10; }

.course-badge.csa { background: linear-gradient(45deg, #ff6b6b, #ee5a52); border: 2px solid #ff8a80; }

.course-badge.csp { background: linear-gradient(45deg, #4ecdc4, #44a08d); border: 2px solid #80cbc4; }

.course-badge.csse { background: linear-gradient(45deg, #a8e6cf, #88d8a3); border: 2px solid #c8e6c9; }

.exhibit-card:hover { transform: translateY(-10px); box-shadow: 0 15px 40px rgba(184, 134, 11, 0.3); border-color: #ffd700; }

.exhibit-icon { font-size: 3rem; text-align: center; margin-bottom: 1rem; }

.exhibit-title { color: #ffd700; font-size: 1.5rem; margin-bottom: 1rem; text-align: center; }

.exhibit-description { color: #f0f0f0; text-align: center; line-height: 1.6; margin-bottom: 1.5rem; }

.exhibit-link { display: block; background: linear-gradient(45deg, #b8860b, #ffd700); color: #1a1a2e; text-decoration: none; padding: 0.8rem 1.5rem; border-radius: 25px; text-align: center; font-weight: bold; transition: all 0.3s ease; }

.exhibit-link:hover { background: linear-gradient(45deg, #ffd700, #ffed4e); transform: scale(1.05); color: #1a1a2e; text-decoration: none; }

.closing-message { text-align: center; color: #b8860b; font-style: italic; margin-top: 3rem; font-size: 1.1rem; }

/** Button Mixins Reusable button patterns for consistent styling across the application */
/** Base Control Common color and interaction styles for all controls @private - Use specific mixins instead */
/** Text Button Standard rectangular button with text content  @example .my-text-button { @include text-button; } */
/** Icon Button Square button designed for icon-only content  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .my-icon-button { @include icon-button; }  .my-large-icon-button { @include icon-button(48px, 12px); } */
/** Emphasized Button Button with inverted colors for primary actions  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .runBtn { @include emphasized-icon-button; } */
/** Toggle Button Button with icon that can rotate or change state  @example .my-toggle { @include toggle-button; } */
/** Select Control Standardized dropdown/select styling  @param {Number} $min-width - Minimum width (default: 150px)  @example .languageSelect { @include select-control; }  .customSelect { @include select-control(200px); } */
/** Button Mixins Reusable button patterns for consistent styling across the application */
/** Base Control Common color and interaction styles for all controls @private - Use specific mixins instead */
/** Text Button Standard rectangular button with text content  @example .my-text-button { @include text-button; } */
/** Icon Button Square button designed for icon-only content  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .my-icon-button { @include icon-button; }  .my-large-icon-button { @include icon-button(48px, 12px); } */
/** Emphasized Button Button with inverted colors for primary actions  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .runBtn { @include emphasized-icon-button; } */
/** Toggle Button Button with icon that can rotate or change state  @example .my-toggle { @include toggle-button; } */
/** Select Control Standardized dropdown/select styling  @param {Number} $min-width - Minimum width (default: 150px)  @example .languageSelect { @include select-control; }  .customSelect { @include select-control(200px); } */
/* ============================= */
/*       VIDEO DEMO MODAL        */
/* ============================= */
#video-demo { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.85); z-index: 1000; overflow-y: auto; padding: 1rem; }
@media (max-width: 768px) { #video-demo { padding: 60px 0 0 0; } }

#video-demo > div { position: relative; width: 100%; max-width: 600px; margin: 0 auto; background: #1F2020; border: 1px solid #2A2D2D; border-radius: 12px; padding: 32px; box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1); top: 60px; }
@media (max-width: 768px) { #video-demo > div { padding: 20px 0; margin: 0; border-radius: 0; border-left: none; border-right: none; min-height: calc(100vh - 60px); } }

#video-demo .close-btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 8px; position: absolute; z-index: 10; line-height: 1; font-size: 28px; top: 28px; right: 28px; }
#video-demo .close-btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
#video-demo .close-btn:focus { outline: none; border-color: var(--pref-accent-color); }
#video-demo .close-btn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { #video-demo .close-btn { height: 44px; } }
@media (max-width: 768px) { #video-demo .close-btn { margin-left: 0.25rem; width: 44px; } }
@media (max-width: 768px) { #video-demo .close-btn { font-size: 20px; top: 12px; right: 12px; } }

#video-demo img { width: 100%; height: auto; border-radius: 8px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5); }

@media (max-width: 768px) { #video-demo .desktop-only { display: none; } }

.clickable-video { cursor: pointer; display: inline-block; transition: transform 0.2s; }

.clickable-video:hover { transform: scale(1.05); }

.timeline-page { /* Certificate System Styles */ /* ============================= */ /*     PROGRESSION MODAL         */ /* ============================= */ /* ============================= */ /*      CERTIFICATE MODAL        */ /* ============================= */ /* Certificate List Modal */ /* ============================= */ /*         HELP MODAL            */ /* ============================= */ /* ============================= */ /*     SPRINT CALENDAR SYNC      */ /* ============================= */ /* ============================= */ /*     PRIORITY SELECTOR         */ /* ============================= */ /* ============================= */ /*  SELECTIVE SYNC/REMOVE MODAL  */ /* ============================= */ }
.timeline-page .timeline-header { margin-bottom: 32px; }
.timeline-page .timeline-header h1 { color: #F0F0F0; font-size: 2.5rem; margin-bottom: 8px; }
.timeline-page .timeline-header-description { color: #aaa; margin-bottom: 24px; }
.timeline-page .timeline-filters { display: flex; gap: 12px; flex-wrap: wrap; }
.timeline-page .filter-btn { padding: 8px 16px; background: transparent; border: 1px solid var(--accent); border-radius: 6px; color: #F0F0F0; cursor: pointer; transition: all 0.2s; font-size: 14px; }
.timeline-page .filter-btn:hover { background: #1F1F1F; }
.timeline-page .filter-btn.active { background: #1F1F1F; border-color: #4CAFEF; color: #4CAFEF; }
.timeline-page .sprint-filters { display: flex; gap: 6px; align-items: center; }
.timeline-page .sprint-filter-btn { padding: 4px 8px; background: transparent; border: 1px solid #2A2D2D; border-radius: 4px; color: #aaa; cursor: pointer; transition: all 0.2s; font-size: 11px; white-space: nowrap; line-height: 1; }
.timeline-page .sprint-filter-btn:hover { background: #1F1F1F; }
.timeline-page .sprint-filter-btn.active { background: #1F1F1F; border-color: #4CAFEF; color: #4CAFEF; }
.timeline-page .sprint-filter-btn i { font-size: 10px; margin-right: 4px; }
.timeline-page .timeline-container { margin-top: 32px; }
.timeline-page .sprint-card { border: 1px solid var(--accent); border-radius: 16px; padding: 28px; margin-bottom: 24px; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25); }
.timeline-page .sprint-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid #1f2338; padding-bottom: 20px; margin-bottom: 24px; }
.timeline-page .sprint-title { margin: 0; font-size: 1.75rem; color: var(--pref-accent-color) !important; }
.timeline-page .sprint-meta { color: #aaa; font-size: 0.95rem; }
.timeline-page .sprint-controls { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.timeline-page .sprint-toggle-btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; padding: 8px 16px; border-radius: 6px; display: inline-flex; align-items: center; }
.timeline-page .sprint-toggle-btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.timeline-page .sprint-toggle-btn:focus { outline: none; border-color: var(--pref-accent-color); }
.timeline-page .sprint-card.collapsed .sprint-toggle-icon { transform: rotate(0deg); }
.timeline-page .sprint-toggle-icon { transition: transform 0.3s; display: inline-flex; color: var(--pref-accent-color); font-size: 2em; font-weight: bold; margin-right: 4px; }
.timeline-page .sprint-weeks { display: flex; flex-direction: column; gap: 16px; }
.timeline-page .sprint-card.collapsed .sprint-weeks { display: none; }
.timeline-page .week-card { border-radius: 12px; margin-bottom: 16px; transition: all 0.2s; overflow: hidden; }
.timeline-page .week-card:hover { border-color: var(--border-hover-color, #2A2D2D); }
.timeline-page .week-content-wrapper { display: flex; gap: 24px; }
.timeline-page .week-main-content { flex: 1; }
.timeline-page .week-header { display: flex; justify-content: space-between; align-items: start; margin-bottom: 16px; flex-wrap: wrap; gap: 12px; }
.timeline-page .week-indicator { flex-shrink: 0; display: flex; flex-direction: column; align-items: center; }
.timeline-page .week-circle { width: 64px; height: 64px; border-radius: 50%; border: 2px solid #2A2D2D; display: flex; align-items: center; justify-content: center; color: #4CAFEF; font-weight: 600; font-size: 14px; }
.timeline-page .week-connector { width: 1px; height: 32px; background: #2A2D2D; margin-top: 8px; }
.timeline-page .week-card:last-child .week-connector { display: none; }
.timeline-page .week-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.timeline-page .week-title-group h3 { color: var(--pref-accent-color) !important; font-size: 1.25rem; margin: 0 0 4px 0; }
.timeline-page .completion-badge { background: transparent; border: 1px solid #2A2D2D; color: #aaa; padding: 4px 12px; border-radius: 4px; font-size: 13px; }
.timeline-page .sprint-btn { background: var(--pref-bg-color); border: 1px solid var(--pref-accent-color); color: var(--pref-accent-color); padding: 8px 12px; border-radius: 6px; font-size: var(--pref-font-size); font-family: var(--pref-font-family); cursor: pointer; transition: all 0.2s; height: 38px; display: inline-flex; align-items: center; justify-content: center; }
.timeline-page .sprint-btn:hover, .timeline-page .sprint-btn:focus-visible { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; }
.timeline-page .sprint-btn:hover:hover, .timeline-page .sprint-btn:focus-visible:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.timeline-page .sprint-btn:hover:focus, .timeline-page .sprint-btn:focus-visible:focus { outline: none; border-color: var(--pref-accent-color); }
.timeline-page .sprint-btn:hover:hover, .timeline-page .sprint-btn:focus-visible:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .timeline-page .sprint-btn:hover, .timeline-page .sprint-btn:focus-visible { height: 44px; } }
.timeline-page .sprint-btn.certificate, .timeline-page .sprint-btn.help { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 8px; }
.timeline-page .sprint-btn.certificate:hover, .timeline-page .sprint-btn.help:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.timeline-page .sprint-btn.certificate:focus, .timeline-page .sprint-btn.help:focus { outline: none; border-color: var(--pref-accent-color); }
.timeline-page .sprint-btn.certificate:hover, .timeline-page .sprint-btn.help:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .timeline-page .sprint-btn.certificate, .timeline-page .sprint-btn.help { height: 44px; } }
@media (max-width: 768px) { .timeline-page .sprint-btn.certificate, .timeline-page .sprint-btn.help { margin-left: 0.25rem; width: 44px; } }
.timeline-page .items-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; margin-bottom: 16px; }
.timeline-page .item-card { padding: 12px; border: 1px solid #2A2D2D; border-radius: 8px; transition: background 0.2s; }
.timeline-page .item-card:hover { background: rgba(240, 240, 240, 0.05); }
.timeline-page .item-content { display: flex; align-items: center; gap: 12px; width: 100%; }
.timeline-page .completion-toggle { background: none; border: none; padding: 0; margin: 0; cursor: pointer; flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; }
.timeline-page .item-link { display: flex; align-items: center; gap: 12px; text-decoration: none; flex: 1; min-width: 0; }
.timeline-page .status-icon { flex-shrink: 0; width: 16px; height: 16px; font-size: 16px; }
.timeline-page .status-icon.completed { color: #4CAFEF; }
.timeline-page .status-icon.incomplete { color: #2A2D2D; }
.timeline-page .type-icon { flex-shrink: 0; width: 16px; height: 16px; }
.timeline-page .type-icon.lesson { color: #4CAFEF; }
.timeline-page .type-icon.assignment { color: #f59e0b; }
.timeline-page .item-title { color: #F0F0F0; flex: 1; font-size: 14px; }
.timeline-page .item-card.completed .item-title { color: #aaa; }
.timeline-page .week-goals-container { margin-top: 0; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid #2A2D2D; }
.timeline-page .goals-label { font-size: 0.75rem; font-weight: 600; color: #aaa; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 8px; display: block; }
.timeline-page .goals-list { display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start; }
.timeline-page .goal-item { position: relative; padding-left: 16px; font-size: 0.85rem; color: #F0F0F0; line-height: 1.4; }
.timeline-page .goal-item::before { content: '→'; position: absolute; left: 0; color: #4CAFEF; font-weight: bold; opacity: 0.7; }
.timeline-page .goal-item:hover { color: #F0F0F0; }
.timeline-page .goal-item:hover::before { opacity: 1; }
.timeline-page .assignment-due { display: flex; align-items: center; gap: 8px; color: #f59e0b; font-size: 14px; margin-top: 8px; }
.timeline-page .load-more { text-align: center; margin-top: 24px; }
.timeline-page .load-more-btn { padding: 10px 24px; background: transparent; border: 1px solid #2A2D2D; color: #4CAFEF; border-radius: 6px; cursor: pointer; transition: all 0.2s; }
.timeline-page .load-more-btn:hover { background: #1F1F1F; color: #007ACC; }
@media (max-width: 768px) { .timeline-page { /* Modal responsiveness */ }
  .timeline-page .timeline-header h1 { font-size: 2rem; }
  .timeline-page .timeline-filters { flex-direction: column; gap: 8px; }
  .timeline-page .filter-btn { width: 100%; text-align: center; }
  .timeline-page .sprint-card { padding: 16px; }
  .timeline-page .sprint-header { flex-direction: column; align-items: stretch; gap: 12px; }
  .timeline-page .sprint-title { font-size: 1.5rem; }
  .timeline-page .sprint-controls { justify-content: space-between; width: 100%; }
  .timeline-page .week-content-wrapper { flex-direction: column; gap: 12px; }
  .timeline-page .week-indicator { flex-direction: row; align-items: center; gap: 12px; }
  .timeline-page .week-circle { width: 40px; height: 40px; font-size: 12px; }
  .timeline-page .week-connector { display: none; }
  .timeline-page .week-main-content { width: 100%; }
  .timeline-page .week-header { flex-direction: column; align-items: stretch; gap: 12px; }
  .timeline-page .week-title-group h3 { font-size: 1.1rem; }
  .timeline-page .week-actions { justify-content: space-between; flex-wrap: wrap; }
  .timeline-page .items-grid { grid-template-columns: 1fr; gap: 8px; }
  .timeline-page .item-card { padding: 10px; }
  .timeline-page .item-content { gap: 8px; }
  .timeline-page .item-title { font-size: 13px; }
  .timeline-page .progression-btn { padding: 8px 12px; font-size: 12px; }
  .timeline-page .completion-badge { font-size: 12px; padding: 3px 8px; }
  .timeline-page #progression-modal > div, .timeline-page #certificate-list-modal > div { margin: 20px auto; padding: 20px; }
  .timeline-page #certificate-content { padding: 40px 20px; }
  .timeline-page #certificate-student-name { font-size: 36px; }
  .timeline-page #certificate-content .achievement-text { font-size: 18px; }
  .timeline-page .certificate-modal .action-bar { padding: 12px; }
  .timeline-page .action-btn { padding: 8px 12px; font-size: 12px; margin: 0 4px; }
  .timeline-page .progression-task { padding: 10px; gap: 10px; } }
.timeline-page .certificate-badge { position: absolute; top: 16px; right: 16px; width: 32px; height: 32px; background: linear-gradient(135deg, #4CAFEF 0%, #007ACC 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 16px; box-shadow: 0 2px 8px rgba(76, 175, 239, 0.3); z-index: 1; }
.timeline-page .week-card.clickable { cursor: pointer; }
.timeline-page .week-card.clickable:hover { border-color: #4CAFEF; box-shadow: 0 0 12px rgba(76, 175, 239, 0.2); }
.timeline-page #progression-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.85); z-index: 1000; overflow-y: auto; padding: 1rem; }
@media (max-width: 768px) { .timeline-page #progression-modal { padding: 60px 0 0 0; } }
.timeline-page #progression-modal > div { position: relative; width: 100%; max-width: 600px; margin: 0 auto; background: #1F2020; border: 1px solid #2A2D2D; border-radius: 12px; padding: 32px; box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1); top: 60px; }
@media (max-width: 768px) { .timeline-page #progression-modal > div { padding: 20px 0; margin: 0; border-radius: 0; border-left: none; border-right: none; min-height: calc(100vh - 60px); } }
.timeline-page #progression-modal .close-btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 8px; position: absolute; z-index: 10; line-height: 1; font-size: 28px; top: 28px; right: 28px; }
.timeline-page #progression-modal .close-btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.timeline-page #progression-modal .close-btn:focus { outline: none; border-color: var(--pref-accent-color); }
.timeline-page #progression-modal .close-btn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .timeline-page #progression-modal .close-btn { height: 44px; } }
@media (max-width: 768px) { .timeline-page #progression-modal .close-btn { margin-left: 0.25rem; width: 44px; } }
@media (max-width: 768px) { .timeline-page #progression-modal .close-btn { font-size: 20px; top: 12px; right: 12px; } }
.timeline-page #progression-modal h2 { color: #F0F0F0; margin-bottom: 8px; padding-right: 50px; }
@media (max-width: 768px) { .timeline-page #progression-modal h2 { font-size: 1.5rem; } }
.timeline-page #progression-modal .week-theme { color: #4CAFEF; margin-bottom: 24px; padding-right: 50px; }
@media (max-width: 768px) { .timeline-page #progression-modal .week-theme { font-size: 0.9rem; margin-bottom: 16px; } }
.timeline-page #task-list { max-height: 60vh; overflow-y: auto; margin-bottom: 16px; }
@media (max-width: 768px) { .timeline-page #task-list { max-height: 50vh; } }
.timeline-page #modal-progress-fill { height: 100%; background: #4CAFEF; width: 0%; transition: width 0.3s; }
.timeline-page .progression-task { display: flex; align-items: center; gap: 12px; padding: 12px; background: #1F1F1F; border: 1px solid #2A2D2D; border-radius: 8px; margin-bottom: 8px; }
@media (max-width: 768px) { .timeline-page .progression-task { padding: 10px; gap: 10px; } }
.timeline-page .progression-week-header { color: #F0F0F0; font-size: 16px; font-weight: 600; margin-top: 20px; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #2A2D2D; }
.timeline-page .progression-week-header:first-child { margin-top: 0; }
@media (max-width: 768px) { .timeline-page .progression-week-header { font-size: 14px; margin-top: 16px; margin-bottom: 10px; } }
.timeline-page .progression-task input[type="checkbox"], .timeline-page .progression-task textarea[type="checkbox"].smallInput, .timeline-page .progression-task textarea[type="checkbox"].mediumInput, .timeline-page .progression-task textarea[type="checkbox"].largeInput { width: 20px; height: 20px; cursor: pointer; accent-color: #4CAFEF; flex-shrink: 0; }
@media (max-width: 768px) { .timeline-page .progression-task input[type="checkbox"], .timeline-page .progression-task textarea[type="checkbox"].smallInput, .timeline-page .progression-task textarea[type="checkbox"].mediumInput, .timeline-page .progression-task textarea[type="checkbox"].largeInput { width: 22px; height: 22px; } }
.timeline-page .progression-task label { color: #F0F0F0; flex: 1; cursor: pointer; }
@media (max-width: 768px) { .timeline-page .progression-task label { font-size: 14px; } }
.timeline-page .task-number { color: #aaa; font-size: 14px; flex-shrink: 0; }
@media (max-width: 768px) { .timeline-page .task-number { font-size: 12px; } }
.timeline-page #view-certificate-btn { width: 100%; padding: 16px; background: linear-gradient(135deg, #4CAFEF 0%, #007ACC 100%); border: none; border-radius: 8px; color: white; font-size: 16px; font-weight: 600; cursor: pointer; transition: transform 0.2s; margin-top: 24px; }
.timeline-page #view-certificate-btn:hover { transform: scale(1.02); }
.timeline-page #certificate-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.85); z-index: 1000; overflow-y: auto; padding: 1rem; background: rgba(0, 0, 0, 0.9); z-index: 2000; }
@media (max-width: 768px) { .timeline-page #certificate-modal { padding: 60px 0 0 0; } }
.timeline-page #certificate-modal .action-bar { position: sticky; top: 60px; background: var(--panel); padding: 16px; text-align: center; border-bottom: 1px solid var(--ui-border); z-index: 10; }
.timeline-page #certificate-modal .action-btn { padding: 10px 20px; background: var(--pref-accent-color); color: white; border: none; border-radius: 6px; margin: 0 8px; cursor: pointer; }
.timeline-page #certificate-modal .secondary-btn { background: var(--bg-2); color: var(--text); border: 1px solid var(--ui-border); }
.timeline-page #certificate-content { max-width: 1000px; margin: 40px auto; background: var(--bg-1); padding: 90px 80px; border: 3px solid var(--pref-accent-color); position: relative; font-family: 'Crimson Text', serif; color: var(--text); }
.timeline-page #certificate-content::before { content: ''; position: absolute; top: 18px; left: 18px; right: 18px; bottom: 18px; border: 1px solid var(--ui-border); pointer-events: none; }
.timeline-page #certificate-content > div { position: relative; z-index: 1; }
.timeline-page .certificate-heading { text-align: center; margin-bottom: 40px; }
.timeline-page .certificate-emblem { width: 110px; height: 110px; border-radius: 50%; background: var(--bg-3); display: flex; align-items: center; justify-content: center; margin: 0 auto 24px; border: 3px solid var(--pref-accent-color); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); }
.timeline-page #certificate-logo { width: 80px; height: 80px; object-fit: contain; }
.timeline-page #certificate-content .header-text { font-size: 14px; letter-spacing: 0.35em; text-transform: uppercase; color: var(--text-muted); font-family: 'Libre Baskerville', serif; margin-bottom: 12px; }
.timeline-page #certificate-content .certify-text { font-size: 30px; color: var(--text); font-family: 'Libre Baskerville', serif; margin-bottom: 8px; }
.timeline-page .certificate-subtitle { text-transform: uppercase; letter-spacing: 0.25em; font-size: 13px; color: var(--text-muted); }
.timeline-page #certificate-student-name { font-size: 62px; color: var(--text-strong); font-family: 'Libre Baskerville', serif; font-weight: 700; border: none; outline: none; display: block; cursor: text; text-align: center; margin: 32px auto 40px; width: 100%; }
.timeline-page #certificate-student-name:empty::before { content: 'Your Name'; color: var(--text-muted); }
.timeline-page #certificate-content .achievement-text { text-align: center; font-size: 22px; color: var(--text); max-width: 720px; margin: 0 auto 48px; line-height: 1.7; }
.timeline-page .skill-focus-pill { text-align: center; margin-bottom: 32px; }
.timeline-page .skill-focus-pill span { display: inline-block; padding: 6px 20px; border: 1px solid var(--pref-accent-color); border-radius: 999px; font-size: 16px; color: var(--pref-accent-color); background: var(--bg-2); text-transform: uppercase; letter-spacing: 0.1em; }
.timeline-page #certificate-date { text-align: center; font-size: 18px; color: var(--text-muted); font-style: italic; margin-bottom: 40px; }
.timeline-page .certificate-divider { width: 60%; height: 1px; background: transparent; margin: 0 auto 48px; }
.timeline-page #certificate-content .signature-section { display: flex; justify-content: center; margin-top: 32px; }
.timeline-page #certificate-content .signature { text-align: center; max-width: 320px; }
.timeline-page #certificate-content .signature-name { font-size: 30px; font-style: italic; color: var(--text); font-family: 'Libre Baskerville', serif; margin-bottom: 8px; }
.timeline-page #certificate-content .signature-line { border-top: 2px solid var(--ui-border); padding-top: 8px; margin-bottom: 12px; }
.timeline-page #certificate-content .signature-title { font-family: 'Libre Baskerville', serif; font-weight: 600; color: var(--text); margin: 0; }
.timeline-page #certificate-content .signature-subtitle { color: var(--text-muted); margin: 2px 0 0 0; }
.timeline-page #certificate-list-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.9); z-index: 1500; padding: 20px; overflow-y: auto; }
.timeline-page #certificate-list-modal > div { max-width: 600px; margin: 40px auto; background: #1F2020; border: 1px solid #2A2D2D; border-radius: 12px; padding: 32px; }
.timeline-page #certificate-list-modal .close-btn { position: absolute; top: 20px; right: 20px; background: transparent; border: none; color: #aaa; font-size: 24px; cursor: pointer; }
.timeline-page #certificate-list-modal h2 { color: #F0F0F0; margin-bottom: 24px; }
.timeline-page #certificate-list button { width: 100%; padding: 16px; background: linear-gradient(135deg, #4CAFEF 0%, #007ACC 100%); border: none; border-radius: 8px; color: white; font-size: 16px; font-weight: 600; cursor: pointer; transition: transform 0.2s; margin-bottom: 12px; }
.timeline-page #certificate-list button:hover { transform: scale(1.02); }
.timeline-page #certificate-skills { margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--ui-border); }
.timeline-page .skills-heading { text-align: center; color: var(--text-strong) !important; font-family: 'Libre Baskerville', serif; font-weight: 600; letter-spacing: 0.05em; margin-bottom: 16px; }
.timeline-page #skills-container { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.timeline-page .skill-tag { padding: 6px 16px; border: 1px solid var(--pref-accent-color); border-radius: 20px; color: var(--text); font-family: 'Crimson Text', serif; font-size: 14px; margin: 4px; background: var(--bg-2); }
@media (max-width: 768px) { .timeline-page #certificate-content { margin: 0; padding: 40px 20px; border-radius: 0; border-left: none; border-right: none; }
  .timeline-page #certificate-student-name { font-size: 36px; }
  .timeline-page #certificate-content .signature-section { flex-direction: column; gap: 16px; } }
.timeline-page #help-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.85); z-index: 1000; overflow-y: auto; padding: 1rem; }
@media (max-width: 768px) { .timeline-page #help-modal { padding: 60px 0 0 0; } }
.timeline-page #help-modal > div { position: relative; width: 100%; max-width: 600px; margin: 0 auto; background: #1F2020; border: 1px solid #2A2D2D; border-radius: 12px; padding: 32px; box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1); top: 60px; }
@media (max-width: 768px) { .timeline-page #help-modal > div { padding: 20px 0; margin: 0; border-radius: 0; border-left: none; border-right: none; min-height: calc(100vh - 60px); } }
.timeline-page #help-modal .close-btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 8px; position: absolute; z-index: 10; line-height: 1; font-size: 28px; top: 28px; right: 28px; }
.timeline-page #help-modal .close-btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.timeline-page #help-modal .close-btn:focus { outline: none; border-color: var(--pref-accent-color); }
.timeline-page #help-modal .close-btn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .timeline-page #help-modal .close-btn { height: 44px; } }
@media (max-width: 768px) { .timeline-page #help-modal .close-btn { margin-left: 0.25rem; width: 44px; } }
@media (max-width: 768px) { .timeline-page #help-modal .close-btn { font-size: 20px; top: 12px; right: 12px; } }
.timeline-page .sprint-date-control { position: relative; display: inline-block; }
.timeline-page .sprint-btn.date-toggle { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; padding: 8px 16px; border-radius: 6px; display: inline-flex; align-items: center; padding: 8px 12px; font-size: 14px; }
.timeline-page .sprint-btn.date-toggle:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.timeline-page .sprint-btn.date-toggle:focus { outline: none; border-color: var(--pref-accent-color); }
.timeline-page .sprint-btn.date-toggle:hover { background: #1F1F1F; }
.timeline-page .sprint-btn.date-toggle i { color: var(--pref-accent-color); }
.timeline-page .sprint-date-dropdown { position: absolute; top: 100%; right: 0; z-index: 1000; min-width: 320px; background: #1F2020; border: 1px solid #2A2D2D; border-radius: 12px; padding: 16px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4); margin-top: 8px; }
.timeline-page .sprint-date-dropdown.hidden { display: none; }
.timeline-page .date-dropdown-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid #2A2D2D; }
.timeline-page .date-dropdown-header span { font-weight: 600; color: #F0F0F0; font-size: 14px; }
.timeline-page .date-dropdown-close { background: none; border: none; color: #aaa; font-size: 20px; cursor: pointer; padding: 0; line-height: 1; }
.timeline-page .date-dropdown-close:hover { color: #F0F0F0; }
.timeline-page .calendar-sync-info { margin-bottom: 16px; }
.timeline-page .sprint-week-range { display: flex; align-items: center; gap: 8px; padding: 10px 12px; background: #1F1F1F; border-radius: 8px; font-size: 13px; color: #aaa; margin-bottom: 12px; }
.timeline-page .sprint-week-range i { color: var(--pref-accent-color); }
.timeline-page .sprint-week-range strong { color: #F0F0F0; }
.timeline-page .sprint-date-preview { padding: 12px; background: rgba(var(--pref-accent-rgb), 0.1); border: 1px solid rgba(var(--pref-accent-rgb), 0.2); border-radius: 8px; }
.timeline-page .sprint-date-preview .date-preview-loading { color: #aaa; font-size: 12px; text-align: center; }
.timeline-page .sprint-date-preview .date-range-display { display: flex; justify-content: space-between; align-items: center; padding: 4px 0; font-size: 13px; }
.timeline-page .sprint-date-preview .date-range-display .date-label { color: #aaa; font-weight: 500; }
.timeline-page .sprint-date-preview .date-range-display .date-value { color: #F0F0F0; font-weight: 600; }
.timeline-page .sprint-date-preview .date-error { color: #ef4444; font-size: 12px; text-align: center; }
.timeline-page .holiday-warnings { margin-top: 12px; padding-top: 12px; border-top: 1px dashed rgba(var(--pref-accent-rgb), 0.3); }
.timeline-page .holiday-notice { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: rgba(245, 158, 11, 0.1); border-radius: 6px; font-size: 11px; color: #f59e0b; margin-top: 6px; }
.timeline-page .holiday-notice i { flex-shrink: 0; }
.timeline-page .holiday-notice:first-child { margin-top: 0; }
.timeline-page .sync-options { margin-bottom: 16px; padding: 12px; background: #1F1F1F; border-radius: 8px; }
.timeline-page .sync-option { display: flex; align-items: center; gap: 10px; padding: 8px 0; cursor: pointer; font-size: 13px; color: #F0F0F0; border-bottom: 1px solid #2A2D2D; }
.timeline-page .sync-option:last-child { border-bottom: none; padding-bottom: 0; }
.timeline-page .sync-option:first-child { padding-top: 0; }
.timeline-page .sync-option input[type="checkbox"], .timeline-page .sync-option textarea[type="checkbox"].smallInput, .timeline-page .sync-option textarea[type="checkbox"].mediumInput, .timeline-page .sync-option textarea[type="checkbox"].largeInput { width: 16px; height: 16px; accent-color: var(--pref-accent-color); cursor: pointer; }
.timeline-page .sync-option span { display: flex; align-items: center; gap: 8px; }
.timeline-page .sync-option span i { width: 16px; text-align: center; color: var(--pref-accent-color); opacity: 0.8; }
.timeline-page .date-actions { margin-top: 16px; display: flex; flex-direction: column; gap: 8px; }
.timeline-page .sync-sprint-calendar-btn { width: 100%; padding: 12px 16px; background: var(--pref-accent-color); border: none; border-radius: 8px; color: white; font-size: 14px; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; transition: opacity 0.2s, transform 0.1s; }
.timeline-page .sync-sprint-calendar-btn:hover { opacity: 0.9; }
.timeline-page .sync-sprint-calendar-btn:active { transform: scale(0.98); }
.timeline-page .sync-sprint-calendar-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.timeline-page .sync-sprint-calendar-btn i { font-size: 12px; }
.timeline-page .advanced-sync-btn { width: 100%; padding: 8px 16px; background: transparent; border: 1px solid var(--pref-accent-color); border-radius: 8px; color: var(--pref-accent-color); font-size: 12px; font-weight: 500; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; transition: all 0.2s; }
.timeline-page .advanced-sync-btn:hover { background: rgba(var(--pref-accent-rgb), 0.1); }
.timeline-page .advanced-sync-btn:active { transform: scale(0.98); }
.timeline-page .advanced-sync-btn i { font-size: 11px; }
.timeline-page .delete-sprint-calendar-btn { width: 100%; padding: 10px 16px; background: #dc2626; border: none; border-radius: 8px; color: white; font-size: 13px; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; transition: opacity 0.2s, transform 0.1s; }
.timeline-page .delete-sprint-calendar-btn:hover { opacity: 0.9; background: #b91c1c; }
.timeline-page .delete-sprint-calendar-btn:active { transform: scale(0.98); }
.timeline-page .delete-sprint-calendar-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.timeline-page .delete-sprint-calendar-btn i { font-size: 12px; }
.timeline-page .advanced-remove-btn { width: 100%; padding: 8px 16px; background: transparent; border: 1px solid #dc2626; border-radius: 8px; color: #dc2626; font-size: 12px; font-weight: 500; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; transition: all 0.2s; }
.timeline-page .advanced-remove-btn:hover { background: rgba(220, 38, 38, 0.1); }
.timeline-page .advanced-remove-btn:active { transform: scale(0.98); }
.timeline-page .advanced-remove-btn i { font-size: 11px; }
.timeline-page .sprint-date-status { margin-top: 12px; font-size: 12px; text-align: center; min-height: 18px; padding: 6px; border-radius: 6px; }
.timeline-page .sprint-date-status.success { color: #10b981; background: rgba(16, 185, 129, 0.1); }
.timeline-page .sprint-date-status.error { color: #ef4444; background: rgba(239, 68, 68, 0.1); }
.timeline-page .sprint-date-status.warning { color: #f59e0b; background: rgba(245, 158, 11, 0.1); }
.timeline-page .sprint-date-status.loading { color: #aaa; background: #1F1F1F; }
.timeline-page .sprint-dates-display { display: flex; align-items: center; gap: 8px; font-size: 12px; color: #aaa; padding: 6px 10px; background: #1F1F1F; border-radius: 6px; }
.timeline-page .sprint-dates-display i { color: var(--pref-accent-color); }
.timeline-page .sprint-dates-display .date-range { color: #F0F0F0; }
.timeline-page .priority-selector { margin-top: 16px; padding-top: 16px; border-top: 1px solid #2A2D2D; }
.timeline-page .priority-label { display: block; font-size: 13px; font-weight: 600; color: #F0F0F0; margin-bottom: 10px; }
.timeline-page .priority-options { display: flex; flex-direction: column; gap: 8px; }
.timeline-page .priority-option { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: #1F1F1F; border: 2px solid transparent; border-radius: 8px; cursor: pointer; transition: all 0.2s; }
.timeline-page .priority-option:hover { background: rgba(240, 240, 240, 0.05); }
.timeline-page .priority-option input[type="radio"], .timeline-page .priority-option textarea[type="radio"].smallInput, .timeline-page .priority-option textarea[type="radio"].mediumInput, .timeline-page .priority-option textarea[type="radio"].largeInput { display: none; }
.timeline-page .priority-option input[type="radio"]:checked + .priority-badge, .timeline-page .priority-option textarea[type="radio"].smallInput:checked + .priority-badge, .timeline-page .priority-option textarea[type="radio"].mediumInput:checked + .priority-badge, .timeline-page .priority-option textarea[type="radio"].largeInput:checked + .priority-badge { transform: scale(1.1); box-shadow: 0 0 8px currentColor; }
.timeline-page .priority-option:has(input[type="radio"]:checked, textarea[type="radio"].smallInput:checked, textarea[type="radio"].mediumInput:checked, textarea[type="radio"].largeInput:checked) { border-color: currentColor; background: rgba(240, 240, 240, 0.08); }
.timeline-page .priority-option.priority-p0 { color: #ef4444; }
.timeline-page .priority-option.priority-p0:has(input:checked, textarea.smallInput:checked, textarea.mediumInput:checked, textarea.largeInput:checked) { border-color: #ef4444; background: rgba(239, 68, 68, 0.1); }
.timeline-page .priority-option.priority-p1 { color: #f97316; }
.timeline-page .priority-option.priority-p1:has(input:checked, textarea.smallInput:checked, textarea.mediumInput:checked, textarea.largeInput:checked) { border-color: #f97316; background: rgba(249, 115, 22, 0.1); }
.timeline-page .priority-option.priority-p2 { color: #eab308; }
.timeline-page .priority-option.priority-p2:has(input:checked, textarea.smallInput:checked, textarea.mediumInput:checked, textarea.largeInput:checked) { border-color: #eab308; background: rgba(234, 179, 8, 0.1); }
.timeline-page .priority-option.priority-p3 { color: #22c55e; }
.timeline-page .priority-option.priority-p3:has(input:checked, textarea.smallInput:checked, textarea.mediumInput:checked, textarea.largeInput:checked) { border-color: #22c55e; background: rgba(34, 197, 94, 0.1); }
.timeline-page .priority-badge { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 24px; border-radius: 4px; font-size: 11px; font-weight: 700; transition: all 0.2s; }
.timeline-page .priority-badge.p0 { background: #dc2626; color: white; }
.timeline-page .priority-badge.p1 { background: #ea580c; color: white; }
.timeline-page .priority-badge.p2 { background: #ca8a04; color: white; }
.timeline-page .priority-badge.p3 { background: #16a34a; color: white; }
.timeline-page .priority-desc { font-size: 13px; color: #F0F0F0; flex: 1; }
@media (max-width: 768px) { .timeline-page .priority-options { gap: 6px; }
  .timeline-page .priority-option { padding: 8px 10px; }
  .timeline-page .priority-badge { width: 28px; height: 20px; font-size: 10px; }
  .timeline-page .priority-desc { font-size: 12px; } }
.timeline-page .calendar-action-modal { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.7); z-index: 10000; align-items: center; justify-content: center; padding: 20px; backdrop-filter: blur(4px); }
.timeline-page .calendar-action-modal-content { background: #1F2020; border: 1px solid #2A2D2D; border-radius: 16px; width: 100%; max-width: 600px; max-height: 85vh; display: flex; flex-direction: column; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); }
.timeline-page .calendar-action-modal-content.remove-modal .calendar-action-modal-header h2 { color: #ef4444; }
.timeline-page .calendar-action-modal-header { display: flex; justify-content: space-between; align-items: center; padding: 20px 24px; border-bottom: 1px solid #2A2D2D; flex-shrink: 0; }
.timeline-page .calendar-action-modal-header h2 { margin: 0; font-size: 1.25rem; color: var(--pref-accent-color); display: flex; align-items: center; gap: 10px; }
.timeline-page .calendar-action-modal-header h2 i { font-size: 1.1rem; }
.timeline-page .calendar-action-modal-header .close-btn { background: none; border: none; color: #aaa; font-size: 24px; cursor: pointer; padding: 4px; line-height: 1; transition: color 0.2s; }
.timeline-page .calendar-action-modal-header .close-btn:hover { color: #F0F0F0; }
.timeline-page .calendar-action-modal-body { flex: 1; overflow-y: auto; padding: 20px 24px; }
.timeline-page .calendar-action-modal-footer { display: flex; justify-content: flex-end; gap: 12px; padding: 16px 24px; border-top: 1px solid #2A2D2D; flex-shrink: 0; }
.timeline-page .modal-btn { padding: 10px 20px; border-radius: 8px; font-size: 14px; font-weight: 600; cursor: pointer; display: flex; align-items: center; gap: 8px; transition: all 0.2s; border: none; }
.timeline-page .modal-btn.primary, .timeline-page .hallpass-buttons button.modal-btn, .hallpass-buttons .timeline-page button.modal-btn { background: var(--pref-accent-color); color: white; }
.timeline-page .modal-btn.primary:hover, .timeline-page .hallpass-buttons button.modal-btn:hover, .hallpass-buttons .timeline-page button.modal-btn:hover { opacity: 0.9; }
.timeline-page .modal-btn.primary:disabled, .timeline-page .hallpass-buttons button.modal-btn:disabled, .hallpass-buttons .timeline-page button.modal-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.timeline-page .modal-btn.secondary { background: #1F1F1F; color: #F0F0F0; border: 1px solid #2A2D2D; }
.timeline-page .modal-btn.secondary:hover { background: #2A2D2D; }
.timeline-page .modal-btn.danger { background: #dc2626; color: white; }
.timeline-page .modal-btn.danger:hover { background: #b91c1c; }
.timeline-page .modal-btn.danger:disabled { opacity: 0.5; cursor: not-allowed; }
.timeline-page .sync-modal-sprint-info { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 12px 16px; background: #1F1F1F; border-radius: 10px; margin-bottom: 16px; }
.timeline-page .sync-modal-sprint-name { font-weight: 600; color: #F0F0F0; font-size: 15px; }
.timeline-page .sync-modal-date-range { color: #aaa; font-size: 13px; padding: 4px 10px; background: #2A2D2D; border-radius: 6px; }
.timeline-page .sync-warnings-container { margin-bottom: 16px; }
.timeline-page .sync-warnings-container.hidden { display: none; }
.timeline-page .sync-warnings-container .checking-events { display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: #1F1F1F; border-radius: 8px; color: #aaa; font-size: 13px; }
.timeline-page .sync-warning { padding: 14px 16px; border-radius: 10px; margin-bottom: 12px; }
.timeline-page .sync-warning.duplicate { background: rgba(245, 158, 11, 0.1); border: 1px solid rgba(245, 158, 11, 0.3); }
.timeline-page .sync-warning .warning-header { display: flex; align-items: center; gap: 10px; color: #f59e0b; margin-bottom: 8px; }
.timeline-page .sync-warning .warning-header i { font-size: 16px; }
.timeline-page .sync-warning .warning-header strong { font-size: 14px; }
.timeline-page .sync-warning p { color: #aaa; font-size: 13px; margin: 0 0 10px 0; }
.timeline-page .sync-warning .existing-events-list { margin: 0 0 12px 20px; padding: 0; font-size: 12px; color: #aaa; }
.timeline-page .sync-warning .existing-events-list li { margin-bottom: 4px; }
.timeline-page .sync-warning .warning-actions { display: flex; flex-direction: column; gap: 8px; padding-top: 8px; border-top: 1px solid rgba(245, 158, 11, 0.2); }
.timeline-page .sync-warning .warning-option { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: 13px; color: #F0F0F0; }
.timeline-page .sync-warning .warning-option input[type="radio"], .timeline-page .sync-warning .warning-option textarea[type="radio"].smallInput, .timeline-page .sync-warning .warning-option textarea[type="radio"].mediumInput, .timeline-page .sync-warning .warning-option textarea[type="radio"].largeInput { accent-color: #f59e0b; }
.timeline-page .sync-quick-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.timeline-page .quick-action-btn { padding: 6px 12px; background: #1F1F1F; border: 1px solid #2A2D2D; border-radius: 6px; color: #aaa; font-size: 12px; cursor: pointer; display: flex; align-items: center; gap: 6px; transition: all 0.2s; }
.timeline-page .quick-action-btn:hover { background: #2A2D2D; color: #F0F0F0; border-color: var(--pref-accent-color); }
.timeline-page .quick-action-btn i { font-size: 11px; }
.timeline-page .sync-modal-priority { margin-bottom: 16px; padding: 12px 16px; background: #1F1F1F; border-radius: 10px; }
.timeline-page .sync-modal-priority .priority-label { font-size: 13px; font-weight: 600; color: #F0F0F0; margin-bottom: 10px; display: block; }
.timeline-page .priority-options-inline { display: flex; gap: 8px; flex-wrap: wrap; }
.timeline-page .priority-option-inline { display: flex; align-items: center; gap: 6px; padding: 6px 10px; background: #1F2020; border: 2px solid transparent; border-radius: 6px; cursor: pointer; transition: all 0.2s; }
.timeline-page .priority-option-inline input[type="radio"], .timeline-page .priority-option-inline textarea[type="radio"].smallInput, .timeline-page .priority-option-inline textarea[type="radio"].mediumInput, .timeline-page .priority-option-inline textarea[type="radio"].largeInput { display: none; }
.timeline-page .priority-option-inline:has(input:checked, textarea.smallInput:checked, textarea.mediumInput:checked, textarea.largeInput:checked) { border-color: currentColor; }
.timeline-page .priority-option-inline:has(input:checked, textarea.smallInput:checked, textarea.mediumInput:checked, textarea.largeInput:checked) .priority-badge { transform: scale(1.05); }
.timeline-page .sync-week-list { display: flex; flex-direction: column; gap: 12px; }
.timeline-page .sync-week-group { border: 1px solid #2A2D2D; border-radius: 10px; overflow: hidden; }
.timeline-page .sync-week-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; background: #1F1F1F; cursor: pointer; }
.timeline-page .sync-week-header:hover { background: rgba(240, 240, 240, 0.05); }
.timeline-page .sync-week-checkbox { display: flex; align-items: center; gap: 12px; cursor: pointer; flex: 1; }
.timeline-page .sync-week-checkbox input[type="checkbox"], .timeline-page .sync-week-checkbox textarea[type="checkbox"].smallInput, .timeline-page .sync-week-checkbox textarea[type="checkbox"].mediumInput, .timeline-page .sync-week-checkbox textarea[type="checkbox"].largeInput { width: 18px; height: 18px; accent-color: var(--pref-accent-color); cursor: pointer; }
.timeline-page .sync-week-checkbox .week-label { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.timeline-page .sync-week-checkbox .week-label strong { color: #F0F0F0; font-size: 14px; }
.timeline-page .sync-week-checkbox .week-label .week-date-range { font-size: 12px; color: #aaa; padding: 2px 8px; background: #2A2D2D; border-radius: 4px; }
.timeline-page .week-expand-btn { background: none; border: none; color: #aaa; padding: 4px 8px; cursor: pointer; transition: all 0.2s; }
.timeline-page .week-expand-btn:hover { color: #F0F0F0; }
.timeline-page .week-expand-btn i { transition: transform 0.2s; }
.timeline-page .sync-item-warning { display: flex; align-items: center; gap: 8px; padding: 8px 16px; font-size: 12px; margin: 0; }
.timeline-page .sync-item-warning i { flex-shrink: 0; }
.timeline-page .sync-item-warning.skip { background: rgba(59, 130, 246, 0.1); color: #3b82f6; }
.timeline-page .sync-item-warning.holiday { background: rgba(245, 158, 11, 0.1); color: #f59e0b; }
.timeline-page .sync-item-warning.past { background: rgba(239, 68, 68, 0.1); color: #ef4444; }
.timeline-page .sync-week-items { padding: 12px 16px; background: #1F2020; }
.timeline-page .sync-week-items.collapsed { display: none; }
.timeline-page .sync-item-category { margin-bottom: 12px; }
.timeline-page .sync-item-category:last-child { margin-bottom: 0; }
.timeline-page .sync-category-header { margin-bottom: 8px; }
.timeline-page .sync-category-checkbox { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: 13px; font-weight: 600; color: #F0F0F0; }
.timeline-page .sync-category-checkbox input[type="checkbox"], .timeline-page .sync-category-checkbox textarea[type="checkbox"].smallInput, .timeline-page .sync-category-checkbox textarea[type="checkbox"].mediumInput, .timeline-page .sync-category-checkbox textarea[type="checkbox"].largeInput { width: 16px; height: 16px; accent-color: var(--pref-accent-color); cursor: pointer; }
.timeline-page .sync-category-checkbox i { color: var(--pref-accent-color); width: 16px; text-align: center; }
.timeline-page .sync-item-list { display: flex; flex-direction: column; gap: 6px; padding-left: 26px; }
.timeline-page .sync-item-checkbox { display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 6px 10px; background: #1F1F1F; border-radius: 6px; transition: background 0.2s; }
.timeline-page .sync-item-checkbox:hover { background: #2A2D2D; }
.timeline-page .sync-item-checkbox input[type="checkbox"], .timeline-page .sync-item-checkbox textarea[type="checkbox"].smallInput, .timeline-page .sync-item-checkbox textarea[type="checkbox"].mediumInput, .timeline-page .sync-item-checkbox textarea[type="checkbox"].largeInput { width: 14px; height: 14px; accent-color: var(--pref-accent-color); cursor: pointer; flex-shrink: 0; }
.timeline-page .sync-item-checkbox .item-title { flex: 1; font-size: 13px; color: #F0F0F0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.timeline-page .sync-item-checkbox .item-link-icon { color: #aaa; font-size: 11px; padding: 4px; transition: color 0.2s; }
.timeline-page .sync-item-checkbox .item-link-icon:hover { color: var(--pref-accent-color); }
.timeline-page .sync-summary { margin-top: 16px; padding: 12px 16px; background: rgba(var(--pref-accent-rgb), 0.1); border: 1px solid rgba(var(--pref-accent-rgb), 0.2); border-radius: 8px; text-align: center; }
.timeline-page .sync-summary.remove-summary { background: rgba(239, 68, 68, 0.1); border-color: rgba(239, 68, 68, 0.2); }
.timeline-page .sync-summary-count { font-size: 14px; font-weight: 600; color: #F0F0F0; }
.timeline-page .sync-summary-count span { color: var(--pref-accent-color); }
.timeline-page .remove-summary .sync-summary-count span { color: #ef4444; }
.timeline-page .no-items-message { text-align: center; color: #aaa; padding: 40px 20px; font-size: 14px; }
@media (max-width: 600px) { .timeline-page .calendar-action-modal { padding: 10px; }
  .timeline-page .calendar-action-modal-content { max-height: 90vh; border-radius: 12px; }
  .timeline-page .calendar-action-modal-header { padding: 16px; }
  .timeline-page .calendar-action-modal-header h2 { font-size: 1.1rem; }
  .timeline-page .calendar-action-modal-body { padding: 16px; }
  .timeline-page .calendar-action-modal-footer { padding: 12px 16px; flex-direction: column; }
  .timeline-page .calendar-action-modal-footer .modal-btn { width: 100%; justify-content: center; }
  .timeline-page .sync-quick-actions { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .timeline-page .sync-quick-actions .quick-action-btn { white-space: nowrap; flex-shrink: 0; }
  .timeline-page .priority-options-inline { flex-wrap: nowrap; overflow-x: auto; }
  .timeline-page .sync-week-checkbox .week-label { flex-direction: column; align-items: flex-start; gap: 4px; } }

/* ============================= */
/*    TOAST NOTIFICATIONS        */
/* ============================= */
.calendar-toast-notification { position: fixed; bottom: 24px; right: 24px; z-index: 100000; display: flex; align-items: center; gap: 12px; padding: 14px 20px; border-radius: 10px; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4); transform: translateY(100px); opacity: 0; transition: all 0.3s ease; max-width: 400px; }
.calendar-toast-notification.show { transform: translateY(0); opacity: 1; }
.calendar-toast-notification.success { background: linear-gradient(135deg, #065f46 0%, #047857 100%); border: 1px solid #10b981; color: white; }
.calendar-toast-notification.error { background: linear-gradient(135deg, #991b1b 0%, #dc2626 100%); border: 1px solid #ef4444; color: white; }
.calendar-toast-notification.warning { background: linear-gradient(135deg, #92400e 0%, #d97706 100%); border: 1px solid #f59e0b; color: white; }
.calendar-toast-notification .toast-message { font-size: 14px; font-weight: 500; flex: 1; }
.calendar-toast-notification .toast-close { background: none; border: none; color: rgba(255, 255, 255, 0.8); font-size: 20px; cursor: pointer; padding: 0; line-height: 1; transition: color 0.2s; }
.calendar-toast-notification .toast-close:hover { color: white; }
@media (max-width: 600px) { .calendar-toast-notification { bottom: 16px; right: 16px; left: 16px; max-width: none; } }

/** Button Mixins Reusable button patterns for consistent styling across the application */
/** Base Control Common color and interaction styles for all controls @private - Use specific mixins instead */
/** Text Button Standard rectangular button with text content  @example .my-text-button { @include text-button; } */
/** Icon Button Square button designed for icon-only content  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .my-icon-button { @include icon-button; }  .my-large-icon-button { @include icon-button(48px, 12px); } */
/** Emphasized Button Button with inverted colors for primary actions  @param {Number} $size - Button size (default: 38px) @param {Number} $spacing - Margin left spacing (default: 8px)  @example .runBtn { @include emphasized-icon-button; } */
/** Toggle Button Button with icon that can rotate or change state  @example .my-toggle { @include toggle-button; } */
/** Select Control Standardized dropdown/select styling  @param {Number} $min-width - Minimum width (default: 150px)  @example .languageSelect { @include select-control; }  .customSelect { @include select-control(200px); } */
/* Apply minimal body styles when lesson player is active */
body:has(.lesson-player) { margin: 0; padding: 0; }

/* Override any parent container constraints only for lesson player */
.lesson-player .container, .lesson-player .main-content, .lesson-player .wrapper { max-width: none !important; width: 100% !important; margin: 0 !important; padding: 0 !important; }

.lesson-player { display: flex; height: calc(100vh - 80px); width: 100vw; position: fixed; top: 80px; left: 0; z-index: 1000; }

/* LEFT SIDEBAR */
.lesson-sidebar { width: 500px; border-right: 1px solid #2A2D2D; overflow-y: auto; flex-shrink: 0; }

.sidebar-header { padding: 32px 24px; border-bottom: 1px solid #2A2D2D; }

.sidebar-header h2 { color: #F0F0F0; font-size: 1.25rem; margin: 0 0 8px 0; }

.sidebar-header p { color: #aaa; margin: 0 0 16px 0; font-size: 14px; }

.course-progress-section { margin-top: 16px; }

.progress-label { display: flex; justify-content: space-between; color: #aaa; font-size: 14px; margin-bottom: 8px; }

.progress-bar-sidebar { width: 100%; height: 8px; border-radius: 4px; overflow: hidden; }

.progress-bar-sidebar-fill { height: 100%; background: #4CAFEF; transition: width 0.3s ease; }

/* Sprint Navigation */
.sprint-nav { padding: 24px 16px; }

.sprint-section { margin-bottom: 8px; }

.sprint-toggle { width: 100%; display: flex; align-items: center; gap: 8px; padding: 12px; background: none; border: none; border-radius: 8px; cursor: pointer; transition: background 0.2s; text-align: left; }

.sprint-toggle:hover { background: rgba(76, 175, 239, 0.08); }

.sprint-chevron { width: 16px; height: 16px; color: #aaa; flex-shrink: 0; }

.sprint-info { flex: 1; }

.sprint-title { color: var(--pref-accent-color); font-size: 14px; margin-bottom: 2px; }

.sprint-weeks { color: #4CAFEF; font-size: 12px; }

.lesson-list { margin-left: 24px; margin-top: 4px; }

.lesson-item { width: 100%; display: flex; align-items: center; gap: 12px; padding: 8px 12px; background: none; border: none; border-radius: 8px; cursor: pointer; transition: background 0.2s; text-align: left; text-decoration: none; }

.lesson-item:hover { background: rgba(76, 175, 239, 0.06); }

.lesson-item.active { background: rgba(76, 175, 239, 0.1); }

.lesson-item.active .lesson-title { color: #F0F0F0; }

.lesson-status-icon { width: 16px; height: 16px; flex-shrink: 0; transition: all 0.2s ease; }

/* Incomplete state - completely hidden, no space */
.lesson-status-icon.incomplete { display: none; }

/* Completed state - visible blue checkmark */
.lesson-status-icon.completed { display: block; color: #4CAFEF; }

.lesson-title { color: #aaa; font-size: 14px; flex: 1; }

/* MAIN CONTENT AREA */
.lesson-main { flex: 1; display: flex; flex-direction: column; overflow: hidden; }

/* Top Bar */
.lesson-topbar { border-bottom: 1px solid #2A2D2D; padding: 8px 24px; }

.topbar-actions { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }

.back-btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; display: flex; align-items: center; border: none; }
.back-btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.back-btn:focus { outline: none; border-color: var(--pref-accent-color); }
.back-btn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .back-btn { height: 44px; } }

.breadcrumbs { display: flex; align-items: center; gap: 8px; color: #aaa; font-size: 14px; }

.breadcrumbs .current { color: #F0F0F0; }

.topbar-progress { width: 100%; height: 4px; border-radius: 2px; overflow: hidden; }

.topbar-progress-fill { height: 100%; background: #4CAFEF; width: 15%; transition: width 0.3s ease; }

/* Lesson Content */
.lesson-content { flex: 1; overflow-y: auto; padding: 48px 64px; }

.lesson-content-inner { max-width: 1000px; margin: 0 auto; }

.lesson-header h1 { color: #F0F0F0; font-size: 2rem; margin: 0 0 12px 0; }

.lesson-meta { display: flex; align-items: center; gap: 16px; color: #F0F0F0; font-size: 14px; margin-bottom: 32px; }

.lesson-body { color: #aaa; line-height: 1.7; }

.lesson-body h2 { color: #F0F0F0; font-size: 1.5rem; margin: 32px 0 16px 0; }

.lesson-body h3 { color: #F0F0F0; font-size: 1.25rem; margin: 24px 0 12px 0; }

.lesson-body h4 { color: #F0F0F0; font-size: 1.1rem; margin: 20px 0 10px 0; }

.lesson-body p { margin-bottom: 16px; }

.lesson-body ul, .lesson-body ol { margin-bottom: 16px; padding-left: 24px; }

.lesson-body li { margin-bottom: 8px; }

.lesson-body a { color: #4CAFEF; text-decoration: none; }

.lesson-body a:hover { text-decoration: underline; }

.lesson-body code { padding: 2px 6px; border-radius: 4px; font-family: monospace; font-size: 0.9em; color: #F0F0F0; }

.lesson-body pre { border: 1px solid var(--pref-accent-color); border-radius: 8px; padding: 16px; overflow-x: auto; margin-bottom: 16px; }

.lesson-body pre code { background: none; padding: 0; }

.lesson-body blockquote { border-left: 4px solid var(--pref-accent-color); padding-left: 16px; margin-left: 0; color: #aaa; }

.lesson-body img { max-width: 100%; border-radius: 8px; margin: 16px 0; }

.lesson-body table { width: 100%; border-collapse: collapse; margin: 16px 0; }

.lesson-body table th, .lesson-body table td { border: 1px solid var(--pref-accent-color); padding: 8px 12px; text-align: left; }

.lesson-body table th, .lesson-body table tr:nth-child(even) { background: var(--bg-2); }

/* Assignment Submission Widget */
.assignment-submission { margin-top: 48px; padding: 24px; border: 1px solid var(--pref-accent-color); border-radius: 12px; }

.assignment-submission h3 { color: #F0F0F0; font-size: 1.25rem; margin: 0 0 16px 0; display: flex; align-items: center; gap: 8px; }

.assignment-submission-icon { color: #4CAFEF; }

.submission-options { display: flex; gap: 12px; margin-bottom: 20px; }

.submission-tab { padding: 8px 16px; background: transparent; border: 1px solid #2A2D2D; border-radius: 6px; color: #aaa; cursor: pointer; transition: all 0.2s; }

.submission-tab:hover { background: #1F2020; color: #F0F0F0; }

.submission-tab.active { background: #4CAFEF; color: #000; border-color: #4CAFEF; }

.submission-form { display: none; }

.submission-form.active { display: block; }

.form-group { margin-bottom: 16px; }

.form-group label { display: block; color: #F0F0F0; font-size: 14px; margin-bottom: 8px; }

.form-group input[type="text"], .form-group textarea[type="text"].smallInput, .form-group textarea[type="text"].mediumInput, .form-group textarea[type="text"].largeInput, .form-group input[type="url"], .form-group textarea[type="url"].smallInput, .form-group textarea[type="url"].mediumInput, .form-group textarea[type="url"].largeInput, .form-group textarea { width: 100%; padding: 10px 12px; border: 1px solid #2A2D2D; border-radius: 6px; color: #F0F0F0; font-size: 14px; font-family: inherit; }

.form-group input:focus, .form-group textarea.smallInput:focus, .form-group textarea.mediumInput:focus, .form-group textarea.largeInput:focus, .form-group textarea:focus { outline: none; border-color: #4CAFEF; }

.form-group textarea { min-height: 100px; resize: vertical; }

.file-upload-area { border: 2px dashed #2A2D2D; border-radius: 8px; padding: 32px; text-align: center; cursor: pointer; transition: all 0.2s; }

.file-upload-area:hover { border-color: #4CAFEF; background: #1F2020; }

.file-upload-area.dragover { border-color: #4CAFEF; background: #1F2020; }

.file-upload-icon { font-size: 48px; color: #4CAFEF; margin-bottom: 12px; }

.file-upload-text { color: #aaa; margin-bottom: 8px; }

.file-upload-hint { color: #aaa; font-size: 12px; }

.file-list { margin-top: 16px; }

.file-item { display: flex; align-items: center; justify-content: space-between; padding: 12px; background: #1F2020; border-radius: 6px; margin-bottom: 8px; }

.file-info { display: flex; align-items: center; gap: 12px; }

.file-name { color: #F0F0F0; font-size: 14px; }

.file-size { color: #aaa; font-size: 12px; }

.remove-file { background: transparent; border: none; color: #aaa; cursor: pointer; padding: 4px 8px; border-radius: 4px; transition: all 0.2s; }

.remove-file:hover { background: rgba(239, 68, 68, 0.1); color: #ff6b6b; }

.submit-btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 8px; background: var(--pref-accent-color); border-color: var(--pref-accent-color); color: var(--pref-bg-color); font-size: 14px; }
.submit-btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.submit-btn:focus { outline: none; border-color: var(--pref-accent-color); }
.submit-btn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .submit-btn { height: 44px; } }
@media (max-width: 768px) { .submit-btn { margin-left: 0.25rem; width: 44px; } }
.submit-btn:hover { background: var(--pref-accent-color); border-color: var(--pref-accent-color); opacity: 0.85; transform: scale(1.05); }

.submit-btn:disabled { background: #2A2D2D; color: #aaa; cursor: not-allowed; }

.submission-status { margin-top: 16px; padding: 12px; border-radius: 6px; display: none; }

.submission-status.success { display: block; background: rgba(76, 175, 239, 0.1); border: 1px solid #4CAFEF; color: #4CAFEF; }

.submission-status.error { display: block; background: rgba(239, 68, 68, 0.1); border: 1px solid #ef4444; color: #ef4444; }

/* Bottom Navigation */
.lesson-bottom { border-top: 1px solid var(--pref-accent-color); padding: 12px 64px; }

.lesson-bottom-inner { max-width: 1000px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; }

.bottom-actions { display: flex; gap: 12px; }

.btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; display: flex; }
.btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.btn:focus { outline: none; border-color: var(--pref-accent-color); }
.btn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .btn { height: 44px; } }
@media (max-width: 768px) { .btn { flex: 1; } }

.btn-outline { background: transparent; border: 1px solid var(--pref-accent-color); color: #F0F0F0; }

.btn-outline:hover { background: rgba(76, 175, 239, 0.08); color: var(--pref-text-color, #F0F0F0); }

.btn-primary { background: #4CAFEF; color: #000; }

.btn-primary:hover { background: #007ACC; }

/* Floating Menu Button (Mobile) */
.floating-menu-btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; padding: 8px; margin-left: 0; position: fixed; bottom: 20px; right: 20px; width: 56px; height: 56px; background: var(--pref-accent-color); border-radius: 50%; z-index: 1000; }
.floating-menu-btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.floating-menu-btn:focus { outline: none; border-color: var(--pref-accent-color); }
.floating-menu-btn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .floating-menu-btn { height: 44px; } }
@media (max-width: 768px) { .floating-menu-btn { margin-left: 0.25rem; width: 44px; } }

/* Timeline Modal - applies to all screen sizes */
.timeline-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90vw; max-width: 800px; height: 80vh; background-color: var(--pref-bg-color); border: 1px solid #2A2D2D; border-radius: 16px; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5); z-index: 2000; display: none; flex-direction: column; overflow: hidden; }

.timeline-modal.open { display: flex; }

.timeline-modal-overlay { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0, 0, 0, 0.85); z-index: 1999; display: none; }

.timeline-modal-overlay.open { display: block; }

.timeline-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid #2A2D2D; }

.timeline-modal-header h3 { color: #F0F0F0; margin: 0; font-size: 1.5rem; }

.timeline-close-btn { background: var(--pref-bg-color); border: 1px solid var(--ui-border); color: var(--pref-text-color); font-family: var(--pref-font-family); font-size: var(--pref-font-size); cursor: pointer; transition: all 0.2s; height: 38px; padding: 8px 12px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 8px; margin-left: 8px; background: var(--pref-accent-color); border-color: var(--pref-accent-color); color: var(--pref-bg-color); font-size: 24px; }
.timeline-close-btn:hover { background: var(--panel-mid); border-color: var(--pref-accent-color); }
.timeline-close-btn:focus { outline: none; border-color: var(--pref-accent-color); }
.timeline-close-btn:hover { opacity: 0.9; transform: scale(1.05); }
@media (max-width: 768px) { .timeline-close-btn { height: 44px; } }
@media (max-width: 768px) { .timeline-close-btn { margin-left: 0.25rem; width: 44px; } }
.timeline-close-btn:hover { background: var(--pref-accent-color); border-color: var(--pref-accent-color); opacity: 0.85; transform: scale(1.05); }

.timeline-modal-content { flex: 1; overflow-y: auto; padding: 24px; }

/* Sprint cards in modal */
.modal-sprint-card { border: 1px solid var(--pref-accent-color); border-radius: 12px; padding: 20px; margin-bottom: 16px; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); }

.modal-sprint-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--pref-accent-color); }

.modal-sprint-title { color: #F0F0F0; font-size: 1.2rem; margin: 0; }

.modal-sprint-toggle { background: transparent; border: 1px solid var(--pref-accent-color); padding: 4px 8px; border-radius: 4px; cursor: pointer; font-size: 12px; transition: all 0.2s; }

.modal-sprint-toggle:hover { background: var(--bg-2); }

.modal-lessons { display: none; }

.modal-lessons.expanded { display: block; }

.modal-lesson-item { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid #2A2D2D; border-radius: 8px; text-decoration: none; color: #F0F0F0; transition: all 0.2s; margin-bottom: 8px; }

.modal-lesson-item:hover { background: var(--bg-2); border-color: var(--pref-accent-color); }

.modal-lesson-item.active { border-color: var(--pref-accent-color); }

.modal-lesson-status { width: 16px; height: 16px; flex-shrink: 0; transition: all 0.2s ease; }

.modal-lesson-status.incomplete { display: none; }

.modal-lesson-status.completed { display: block; color: #4CAFEF; }

.modal-lesson-title { flex: 1; font-size: 14px; }

@keyframes checkmarkAppear { 0% { opacity: 0; transform: scale(0.5); }
  50% { transform: scale(1.1); }
  100% { opacity: 1; transform: scale(1); } }
.lesson-status-icon.completed, .modal-lesson-status.completed { animation: checkmarkAppear 0.3s ease; }

/* Mobile Styles */
@media (max-width: 768px) { .lesson-player { flex-direction: column; height: auto; position: static; width: 100%; }
  .lesson-sidebar { display: none; }
  .lesson-main { flex: none; width: 100%; height: auto; /* ADD THIS */ min-height: 100vh; /* ADD THIS */ }
  .floating-menu-btn { display: flex; }
  .lesson-topbar { padding: 12px 16px; }
  .topbar-actions { flex-direction: column; align-items: flex-start; gap: 8px; }
  .breadcrumbs { font-size: 12px; }
  .lesson-content { padding: 16px; overflow-y: visible; /* ADD THIS - was auto, causing issues */ height: auto; /* ADD THIS */ }
  .lesson-content-inner { max-width: 100%; /* ADD THIS */ }
  .lesson-header h1 { font-size: 1.5rem; }
  .lesson-meta { flex-direction: column; align-items: flex-start; gap: 8px; }
  .lesson-body { width: 100%; /* ADD THIS */ }
  .lesson-bottom { padding: 8px 16px; position: relative; /* ADD THIS */ }
  .lesson-bottom-inner { flex-direction: column; gap: 12px; align-items: stretch; }
  .bottom-actions { width: 100%; justify-content: space-between; }
  .assignment-submission { margin-top: 24px; padding: 16px; }
  .submission-options { flex-direction: column; gap: 8px; }
  .submission-tab { width: 100%; text-align: center; }
  .file-upload-area { padding: 20px; }
  .file-upload-icon { font-size: 32px; } }
html, body, input, input.smallInput, input.mediumInput, input.largeInput, textarea.smallInput, textarea.mediumInput, textarea.largeInput, input.gradientInput, textarea, select { background-color: #121212; }

:root { --accent: #4CAFEF; --accent-700: #007ACC; --accent-700-hover: #005FA3; --background: #121212; --bg-0: #000; --bg-1: #1F2020; --bg-2: #1F1F1F; --bg-3: #2A2D2D; --black1: black; --blue: #3182CE; --blue1: #007aff; --blueShadow1: #2196f3; --dt-leaderboard: #e85252; --gradient1: linear-gradient(120deg, #1e1e1e 45%, #2a2a2a); --gray1: #8e8e93; --gray2: #636366; --gray3: #48484a; --gray4: #3a3a3c; --gray5: #2c2c2e; --gray6: #1c1c1e; --green: #4ADE80; --green-bg: #2D5A3D; --green1: #34c759; --left-msg-bg: white; --lightBlue1: #4bbaff; --login-container-bg: #1e1e1e; --msger-send-btn-bg: blue; --msger-send-btn-hover-bg: darkblue; --my-custom-cat: #02375a; --my-custom-dog: #cafff3; --orange: #ED8936; --panel: #2B2B2B; --popup-bg: #222; --red: #E53E3E; --right-msg-bg: lightBlue1; --status-indicator-base-bg: rgba(255, 255, 255, 0.05); --status-indicator-base-border: rgba(255, 255, 255, 0.1); --status-indicator-error-bg: rgba(220, 53, 69, 0.2); --status-indicator-error-border: rgba(220, 53, 69, 0.3); --status-indicator-error-color: #dc3545; --status-indicator-pending-bg: rgba(255, 193, 7, 0.2); --status-indicator-pending-border: rgba(255, 193, 7, 0.3); --status-indicator-pending-color: #ffc107; --status-indicator-success-bg: rgba(40, 167, 69, 0.2); --status-indicator-success-border: rgba(40, 167, 69, 0.3); --status-indicator-success-color: #28a745; --success-green: #28A745; --surface: #333; --teal: #38B2AC; --text: #F0F0F0; --text-muted: #aaa; --toggle-btn-bg: green; --toggle-btn-hover-bg: darkgreen; --validation-error-color: #ef4444; --validation-focus-color: #6366f1; --validation-success-color: #10b981; --warn: #FBBF24; --warn-bg: #5A3D2D; --white1: white; --white2: rgba(255, 255, 255, 0.87); --white3: #e1e1e6; }

.lesson-container { display: flex; gap: 2rem; flex-wrap: wrap; align-items: flex-start; padding: 1rem; }
@media (max-width: 768px) { .lesson-container { flex-direction: column; } }

/* Sidebar */
.lesson-sidebar { flex: 0 0 250px; max-width: 100%; background: #1F2020; padding: 1rem; border-radius: 8px; position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; }
@media (max-width: 768px) { .lesson-sidebar { position: relative; top: auto; max-height: none; overflow: visible; width: 100%; } }

/* Main content */
.lesson-content { flex: 1 1 0; min-width: 300px; }

.time-display { background: #2A2D2D; padding: 0.5rem; margin: 0.25rem 0; border-radius: 4px; text-align: center; }
.time-display span { font-size: 1.2rem; font-weight: bold; color: #4CAFEF; display: block; }
.time-display small { font-size: 0.75rem; color: #aaa; }

.timer-status { text-align: center; padding: 0.25rem; border-radius: 4px; font-size: 0.8rem; font-weight: bold; margin-top: 0.5rem; }
.timer-status.active { background: #2D5A3D; color: #4ADE80; }
.timer-status.paused { background: #5A3D2D; color: #FBBF24; }

.progress-bar { background: #333; border-radius: 6px; height: 12px; width: 100%; margin: 0.5rem 0; }
.progress-bar .progress-fill { background: #4CAFEF; height: 100%; width: 0%; border-radius: 6px; }

.btn { display: inline-block; color: white; padding: 15px 25px; border-radius: 4px; text-decoration: none; margin: 0.5rem 0.25rem; border: none; cursor: pointer; font-family: arial; font-weight: bolder; background: #007ACC; }
.btn:hover { background: #005FA3; border-radius: 25px; transition: border-radius 2s; }

.small-btn { font-size: 0.75rem; padding: 3px 6px; margin-top: 0.5rem; }

.sandbox textarea { width: 100%; height: 120px; font-family: monospace; margin-bottom: 0.5rem; }

.resources, .sandbox, .lesson-quiz { background: #2B2B2B; padding: 1rem; border-radius: 8px; margin: 1rem 0; color: #F0F0F0; }

#badges { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.badge { background: #333; color: #fff; padding: 6px 10px; border-radius: 20px; font-size: 0.9rem; display: flex; align-items: center; gap: 5px; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3); }

.congrats-popup { position: fixed; top: 20px; right: -300px; background: #222; color: #fff; padding: 12px 18px; border-radius: 8px; font-weight: bold; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); transition: right 0.3s ease, opacity 0.3s ease; opacity: 0.95; z-index: 9999; }
.congrats-popup.show { right: 20px; }

.lesson-quiz textarea { width: 100%; min-height: 120px; padding: 10px; border-radius: 6px; border: 1px solid #444; font-size: 1rem; resize: vertical; box-sizing: border-box; background: #1F1F1F; color: #F0F0F0; }
.lesson-quiz button:hover { background: #1aa3ff; }
.lesson-quiz #reflection-status { margin-top: 0.5rem; font-size: 0.85rem; font-style: italic; color: #9ACDFF; }

.blackboard { width: 100%; min-height: 240px; }

#blackboard-canvas { border: 1px solid #ccc; background: #000; cursor: crosshair; }

.blackboard-description { margin-top: 10px; color: #ccc; }

.demo-label { display: block; text-align: center; margin: 6px 0; }

#demo-canvas-wrapper { background: white; border: 2px solid #333; display: block; margin: 0 auto; }

#demo-code { display: none; margin: 8px auto; overflow: auto; }

.info-box { padding: 20px; margin: 20px 0; border-radius: 0 8px 8px 0; border-left: 4px solid #3182CE; }

.challenge-box { padding: 20px; margin: 20px 0; border-radius: 0 8px 8px 0; border-left: 4px solid #38B2AC; }

.think-box { padding: 20px; margin: 20px 0; border-radius: 0 8px 8px 0; border-left: 4px solid #ED8936; }

.checkpoint-box, .key-points { padding: 20px; margin: 20px 0; border-radius: 0 8px 8px 0; border-left: 4px solid #3182CE; }

.warning-box { padding: 20px; margin: 20px 0; border-radius: 0 8px 8px 0; border-left: 4px solid #E53E3E; }

.success { padding: 20px; margin: 20px 0; border-radius: 0 8px 8px 0; border-left: 4px solid #28A745; }

.flashcards-section { background: #2B2B2B !important; padding: 1rem !important; border-radius: 8px !important; margin: 1rem 0 2rem 0 !important; color: #F0F0F0 !important; max-width: 100% !important; box-sizing: border-box !important; }

.flashcard-container { position: relative !important; width: 100% !important; max-width: 280px !important; height: 140px !important; perspective: 1500px !important; margin: 1rem auto 1.5rem auto !important; display: block !important; }
.flashcard-container.hidden { display: none !important; }

.flashcard-inner { position: relative !important; width: 100% !important; height: 100% !important; transition: transform 0.6s ease !important; transform-style: preserve-3d !important; box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3) !important; border-radius: 12px !important; }
.flashcard-inner.flipped { transform: rotateY(180deg) !important; }

.flashcard-front, .flashcard-back { position: absolute !important; width: 100% !important; height: 100% !important; backface-visibility: hidden !important; display: flex !important; flex-direction: column !important; justify-content: center !important; align-items: center !important; padding: 12px !important; border-radius: 8px !important; background: #1E293B !important; color: #F8FAFC !important; border: 1px solid rgba(255, 255, 255, 0.15) !important; }

.flashcard-back { transform: rotateY(180deg) !important; }

.card-counter { position: absolute !important; top: 12px !important; right: 12px !important; background: rgba(255, 255, 255, 0.15) !important; border-radius: 15px !important; padding: 4px 10px !important; font-size: 0.8rem !important; }

.flashcard-front h3, .flashcard-back h4 { text-align: center !important; margin-bottom: 1rem !important; color: white !important; }

.flashcard-back p { text-align: center !important; margin-bottom: 1rem !important; color: white !important; }

.flashcard-controls { display: flex !important; flex-wrap: wrap !important; justify-content: center !important; align-items: center !important; margin: 1rem 0 1.5rem 0 !important; gap: 0.4rem !important; max-width: 100% !important; }
.flashcard-controls button { flex: 0 1 auto !important; min-width: 60px !important; max-width: 100px !important; padding: 6px 10px !important; font-size: 0.75rem !important; border-radius: 4px !important; border: none !important; cursor: pointer !important; white-space: nowrap !important; }

.flashcard-actions { display: flex !important; gap: 0.5rem !important; flex: 1 !important; }
.flashcard-actions .know-btn, .flashcard-actions .review-btn { flex: 1 !important; min-width: 60px !important; font-size: 0.75rem !important; padding: 6px 10px !important; }
.flashcard-actions .know-btn { background: #10B981 !important; color: white !important; }
.flashcard-actions .review-btn { background: #F59E0B !important; color: white !important; }

.card-status { margin-top: 12px !important; font-size: 0.85rem !important; color: #CBD5E1 !important; text-align: center !important; }

#flashcard-review-sidebar button { width: 100%; background: #334155; border: none; color: white; padding: 8px; border-radius: 6px; cursor: pointer; margin-bottom: 5px; font-size: 0.85rem; }
#flashcard-review-sidebar button:hover { background: #475569; }

.flashcard-front h3, .flashcard-back h4 { text-align: center !important; margin-bottom: 0.5rem !important; color: white !important; font-size: 1rem !important; }

.flashcard-back p { text-align: center !important; margin-bottom: 0.5rem !important; color: white !important; font-size: 0.9rem !important; }

.flashcard-front .btn, .flashcard-back .btn { padding: 6px 12px !important; font-size: 0.8rem !important; }

.flashcard-deck { width: 100% !important; max-width: 100% !important; overflow: hidden !important; }

.footer-links { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; width: 100%; }

.footer-previous { justify-self: start; margin-left: 10vw; }

.footer-home { justify-self: center; }

.footer-next { justify-self: end; margin-right: 10vw; }
