@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.bunny.net/open-sans/files/open-sans-latin-400-normal.woff2) format('woff2'),url(https://fonts.bunny.net/open-sans/files/open-sans-latin-400-normal.woff) format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Open Sans';font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.bunny.net/open-sans/files/open-sans-latin-800-normal.woff2) format('woff2'),url(https://fonts.bunny.net/open-sans/files/open-sans-latin-800-normal.woff) format('woff');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--primary-color:#4361ee;--primary-light:#eef2ff;--primary-dark:#3f37c9;--primary-hover:#3a53cc;--primary-active:#2e43a3;--secondary-color:#35d8ac;--secondary-light:#e6f7f4;--secondary-dark:#2ba98d;--text-color:#2d3748;--text-dark:#333333;--text-medium:#4a5568;--text-light:#718096;--text-white:#ffffff;--border-color:#e2e8f0;--background-light:#f5f7fa;--background-white:#ffffff;--background-dark:#1a202c;--border-light:#e2e8f0;--border-medium:#cbd5e0;--shadow-color:rgba(0,0,0,.1);--danger-color:#e53e3e;--danger-light:#feb2b2;--danger-dark:#c53030;--danger-bg:#fff5f5;--success-color:#16a34a;--success-hover:#138a3f;--warning-color:#ff9800;--warning-dark:#e67e22;--danger-darkest:#c0392b;--session-warning-border:#0347b5;--session-expired-border:#e74c3c;--session-timer-bg:rgba(231,76,60,.1);--session-timer-border:rgba(231,76,60,.2);--session-timer-text:#e74c3c;--error-color:#e74c3c;--box-shadow:0 4px 6px rgba(0,0,0,.1);--box-shadow-sm:0 2px 4px rgba(0,0,0,.05);--box-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1);--border-radius:5px;--transition:all .3s ease}.CodeMirror-hints{font-family:'Arial',sans-serif;font-size:16px;border:1px solid #ccc;border-radius:4px;background:#f9f9f9;max-height:200px;overflow-y:auto;z-index:1000;padding:5px}.CodeMirror{height:100%}.icon-function::before{content:"𝑓";font-weight:bold;font-size:18px;color:#007bff;margin-right:5px}.icon-keyword::before{content:"𝑘";font-weight:bold;font-size:18px;color:#28a745;margin-right:5px}.icon-variable::before{content:"𝑣";font-weight:bold;font-size:18px;color:#ff5733;margin-right:5px}.hint-info{color:#888;font-style:italic;margin-left:5px}li.CodeMirror-hint-active{background:#2b7600}:root{--font-size:14px}body{font-family:'Open Sans',sans-serif;margin:0;height:100vh;overflow:hidden;background-color:#ffffff;color:#555555}strong,b{color:rgb(126,126,141)}.logo img{width:50px;height:auto}.header{display:flex;justify-content:space-between;align-items:center;padding-left:10px;box-shadow:0 4px 2px -2px gray;background-color:#e8ecf1}#mycanvas,#p5canvas{border:1px solid rgb(0,0,0);background-color:white;width:100%;height:100%;box-sizing:border-box}#turtleModal,#p5Modal,#pygameModal,#matplotlibModal{display:none;position:fixed;z-index:99;left:100px;top:100px;width:850px;height:700px;background-color:transparent;border-radius:4px;box-shadow:0 4px 8px rgba(0,0,0,.2)}#turtleModal{width:fit-content;height:fit-content;max-width:95vw;max-height:90vh}#turtleModal .turtle-modal-content{width:fit-content;height:fit-content;overflow:visible}#turtleModal #mycanvas{width:auto;height:auto;display:inline-block}#pygameModal{width:fit-content;height:fit-content;max-width:95vw;max-height:90vh}#pygameModal .pygame-modal-content{width:fit-content;height:fit-content;overflow:visible}#pygamecanvas{display:block}.turtle-modal-content,#p5ModalContent,.pygame-modal-content,.matplotlib-modal-content{background-color:#fefefe;border:1px solid #888;border-radius:0 0 4px 4px;height:calc(100% - 32px);overflow:auto;position:relative}#matplotlibcanvas{width:100%;height:100%;background-color:white}.close{position:absolute;top:4px;right:8px;cursor:pointer;z-index:999;font-size:22px;font-weight:300;color:white;line-height:1;transition:all .2s ease;opacity:.8;padding:4px 6px}.close:hover,.close:focus{color:white;opacity:1;transform:scale(1.15)}#title-bar{background-color:#6785e9;color:white;padding:8px 12px;text-align:center;font-size:14px;font-weight:600;cursor:move;position:relative;border-radius:4px 4px 0 0;user-select:none;height:32px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #ddd}#toolbar{display:flex;justify-content:center;gap:10px;background-color:#F0F0F0;padding:10px}.toolbar-button{padding:5px 10px;cursor:pointer;border:none;background-color:#4A90E2;color:white;border-radius:4px;transition:background-color .3s}.toolbar-button:hover{background-color:#357ABD}.CodeMirror{font-size:var(--font-size)}.draggable{cursor:move}.title{display:flex;align-items:center;gap:10px}label{margin-right:5px}h1{color:rgb(126,126,141);margin:0;margin-bottom:15px;padding-bottom:10px;border-bottom:3px solid rgb(151,185,200);width:100%;font-family:'Open Sans',sans-serif;font-weight:800;font-size:28px;letter-spacing:1.2px}h2,h3,h4,h5,h6{color:rgb(126,126,141);font-family:'Open Sans',sans-serif}select{padding:8px;font-size:14px;cursor:pointer}.container{display:flex;position:relative;width:100%;height:90vh}.left-container,.right-container{flex-grow:1;overflow:hidden;border:1px solid #ccc;height:93vh;background-color:#eef2f7}.left-container{padding:0}.output-container,.description-container{height:60%}.description-container{padding:0 10px 0 10px;box-sizing:border-box}.editor-container{overflow:hidden;margin-bottom:20px;padding-bottom:100px;max-height:75vh;line-height:1.4}#input-run-container{align-items:flex-start;margin-bottom:20px}#input-run-container textarea{width:100%;padding:8px;box-sizing:border-box;border:1px solid #ccc;border-radius:4px;margin-top:5px;resize:none}.input-container{display:none;margin-top:-40px}#output-box{max-height:70vh;overflow:auto}#project-description{max-height:77vh;overflow:auto;padding-right:5px}select,button{padding:8px;font-size:12px;cursor:pointer}.sidebar button,.modal button{border-radius:4px;cursor:pointer;height:auto;min-width:auto;text-align:center;max-width:none;padding:8px 16px;border:1px solid #6785e9;color:#ffffff;background-color:#6785e9;transition:all .2s ease;font-size:13px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px}.sidebar button:hover,.modal button:hover{border-color:#6785e9;color:#6785e9;background-color:#ffffff}.button-container{display:flex;align-items:center;margin-top:10px;margin-bottom:10px;gap:10px;margin-right:10px}.button-container button{flex:1;min-width:0}.input-button-container,#toggle-container{display:flex;justify-content:flex-end;gap:10px}.input-button-container button,#toggle-container button{flex:1;min-width:100px}.input-button-container h2,#toggle-container h2{flex:6;margin:0 10px 10px 10px}.auth-buttons button:hover{background-color:rgba(255,255,255,.3)}.showInputs{color:white;border:none;cursor:pointer;font-weight:bold;font-size:14px;background-color:#05761b;flex:1;border-radius:4px;height:37px}.showInputs:hover{background-color:#50a550}.title button{border-radius:4px;padding:8px 16px;margin:0 4px;cursor:pointer;font-family:'Rubik';background-color:#6785e9;color:#ffffff;border:1px solid #6785e9;font-size:13px;font-weight:500;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px;flex:1}.video-button{background-color:#47cf6e!important;border-color:#47cf6e!important}.video-button:hover{background-color:#3aa655!important;border-color:#3aa655!important}.video-button i{font-size:14px}.project-select-button{min-width:135px;flex:2}.run-button,.run-tests-button,.submit-button,#save-playground-button{border-radius:4px;padding:8px 16px;display:flex;align-items:center;justify-content:center;gap:6px;margin:0 4px;transition:all .2s ease;border:1px solid transparent;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;height:auto;color:white}.run-button{border-color:#51b9a8}.run-tests-button{border-color:#6785e9}.submit-button{border-color:#6a9955}.run-button i,.run-tests-button i,.submit-button i,#save-playground-button i{font-size:16px}.title button:hover{background-color:#ffffff;color:#6785e9;border-color:#6785e9}.submit-button{display:none}.run-button.run{background-color:#51b9a8}.run-button.run:hover{background-color:#ffffff;color:#51b9a8;border-color:#51b9a8}.run-button.stop{background-color:#e74c3c}.run-button.stop:hover{background-color:#ffffff;color:#e74c3c;border-color:#e74c3c}.run-tests-button{background-color:#6785e9}.run-tests-button:hover{background-color:#ffffff;color:#6785e9;border-color:#6785e9}.submit-button{background-color:#6a9955}.submit-button:hover{background-color:#ffffff;color:#6a9955;border-color:#6a9955}.run-button[data-tooltip]:before,.run-tests-button[data-tooltip]:before,.submit-button[data-tooltip]:before,#save-playground-button[data-tooltip]:before{bottom:120%}.left-container h2,#project-title,#programoutput{color:rgb(126,126,141);background-color:#ffffff;font-size:24px;font-weight:600;margin-bottom:0;margin-top:0;padding:8px 12px;text-align:center;border-radius:0;border-bottom:2px solid #e8ecf1;font-family:'Open Sans',sans-serif;letter-spacing:.5px}.left-container h2{border-radius:0}.title-container{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0}h2#project-title{font-size:24px;margin:0;flex:1}.description-container hr{border-color:#cac9fb}.draggable-handle{width:5px;height:103.5%;background-color:#b2c3ff;cursor:col-resize;top:0;z-index:1}label{display:block;margin-bottom:5px}textarea{width:100%;padding:8px;box-sizing:border-box;border:1px solid #ccc;border-radius:4px;margin-top:5px;resize:none}pre{background-color:#ffffff;padding:10px;white-space:pre-wrap}pre#output-box{margin:0;padding:10px;line-height:1.4}input#userInputBox{width:100%;border:0;border-radius:0;padding:10px 6px 10px 10px;box-sizing:border-box;color:#4763e1}.tooltip{position:relative;display:inline-block}.tooltip .tooltiptext{visibility:hidden;width:60px;background-color:black;color:white;text-align:center;border-radius:6px;padding:5px 0;position:absolute;z-index:1;top:calc(100% + 5px);left:50%;margin-left:-60px;opacity:0;transition:opacity .3s}.input-button-container .tooltiptext{top:-35px;left:50%;margin-left:-100px;width:100px;font-size:16px}.tooltip:hover .tooltiptext{visibility:visible;opacity:1}.tab-content.active{display:block}.tabs_wrap{display:flex;gap:0;padding:0;margin:0 0 8px 0;overflow-x:auto;overflow-y:hidden;box-shadow:0 2px 4px rgba(0,0,0,.05);height:45px}.tabs_wrap ul{display:flex;gap:0;margin:0;padding:0;list-style:none;width:100%}.tabs_wrap ul li.tab-button{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 24px;cursor:pointer;transition:all .3s ease;background:#f8f9fa;border-right:1px solid #e2e8f0;border-bottom:3px solid transparent;color:#4a5568;font-size:13px;font-weight:500;white-space:nowrap;flex-shrink:0;flex:1}.tabs_wrap ul li.tab-button:hover{background:#dfe7f1;color:#2d3748;border-bottom-color:#6785e9}.tabs_wrap ul li.tab-button.active{background:#e8ecf7;color:#6785e9;border-bottom-color:#6785e9;font-weight:600}.tab-content{display:none;padding:0 4px}.tab-content h2{margin-top:0}.tabs_wrap ul li:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.tabs_wrap ul li:last-child{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}div#tests{padding:0}#toggle-container-top.toggle-switch{height:10px}#toggle-container-top .slider{background-color:blue}#toggle-container-top input:checked+.slider{background-color:green}.toggle-switch{position:relative;display:inline-block;width:60px;height:30px;background-color:#ccc;border-radius:15px;overflow:hidden}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#000000;transition:.4s;border-radius:15px}.slider:before{position:absolute;content:"";height:24px;width:24px;left:4px;bottom:3px;background-color:white;transition:.4s;border-radius:50%}input:checked+.slider{background-color:#00800f}input:checked+.slider:before{transform:translateX(26px)}#test-container{max-height:83vh;overflow-y:auto}.test-box{margin:0 auto 6px;padding:0;font-weight:bold;color:white;cursor:pointer;width:99%;overflow:hidden}.passed{background-color:#5cb85c}.passed:hover{background-color:#6cc76c}.failed{background-color:#d9534f}.failed:hover{background-color:#e06561}.test-box-title{display:flex;justify-content:space-between;padding:12px 15px;align-items:center;position:relative;font-family:Arial,sans-serif}.test-box-title::before{content:'▼';font-size:10px;margin-right:8px;transition:transform .2s}.test-box.expanded .test-box-title::before{transform:rotate(-180deg)}span.status.failed{background-color:white;border-radius:6px;color:#d9534f;padding:3px;font-size:14px}span.status.passed{background-color:white;border-radius:6px;color:#5cb85c;padding:3px;font-size:14px}.test-details{display:none;font-weight:normal;color:black;padding:15px;background-color:#fafafa;border-top:2px solid rgba(255,255,255,.3)}.view-toggle-btn{background-color:#ffffff;color:#6785e9;border:1px solid #6785e9;padding:8px 16px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:background-color .2s ease;margin-bottom:10px;width:150px}.view-toggle-btn:hover{background-color:#ffffff;color:#6785e9;border:1px solid #6785e9}.view-toggle-btn:active{background-color:#4451b8}.test-output-header-row{background-color:#f5f5f5;font-weight:bold;border-bottom:2px solid #333}.test-output-header{padding:10px 8px;text-align:left;font-size:11px;color:#333;letter-spacing:.5px;font-family:Arial,sans-serif}.test-output-header.expected{background-color:#e8f5e9;border-right:2px solid #ddd}.test-output-header.actual{background-color:#e8f5e9}.test-output-header.actual.failed{background-color:#ffebee}.test-output-raw-header{font-weight:bold;margin-bottom:5px;padding:8px;background-color:#f5f5f5;font-family:Arial,sans-serif;font-size:11px;letter-spacing:.5px;color:#333}.test-detail-item{margin-bottom:15px;background-color:white;padding:12px;border-radius:6px;border:1px solid #e0e0e0}.test-detail-item strong{display:block;margin-bottom:8px;color:#333;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.test-detail-item pre{background-color:#f8f8f8;padding:10px;border-radius:4px;margin:0;overflow-x:auto;font-size:13px;border:1px solid #e0e0e0;max-height:200px;overflow-y:auto;font-family:'Courier New',Courier,monospace;line-height:1.5;color:#333;white-space:pre-wrap;word-wrap:break-word}.test-output-comparison{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:10px}.test-output-column{display:flex;flex-direction:column}.test-output-column strong{display:block;margin-bottom:8px;color:#333;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.test-output-expected{border-left:4px solid #5cb85c}.test-output-actual{border-left:4px solid #d9534f}.test-output-expected.match{border-left:4px solid #5cb85c;background-color:#f1f8f4}.test-output-actual.match{border-left:4px solid #5cb85c;background-color:#f1f8f4}.test-output-box-compare{background-color:#f8f8f8;padding:10px;border-radius:4px;border:1px solid #e0e0e0;font-size:12px;font-family:'Courier New',Courier,monospace;white-space:pre-wrap;word-wrap:break-word;overflow-x:auto;max-height:250px;overflow-y:auto;line-height:1.5;color:#333}.test-output-expected .test-output-box-compare{background-color:#f5fdf8;border-color:#c8e6c9}.test-output-actual .test-output-box-compare{background-color:#fff5f5;border-color:#ffcdd2}.test-output-actual.match .test-output-box-compare{background-color:#f1f8f4;border-color:#c8e6c9}.diff-added{background-color:#c8e6c9;color:#1b5e20;padding:1px 3px;border-radius:2px}.diff-removed{background-color:#ffcdd2;color:#b71c1c;text-decoration:line-through;padding:1px 3px;border-radius:2px}.diff-highlight{background-color:#fff9c4;padding:1px 3px;border-radius:2px}.test-diff-table{width:100%;border-collapse:collapse;border:2px solid #ddd;border-radius:6px;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.05)}.test-diff-table th{background-color:#f5f5f5;padding:10px 8px;text-align:left;font-size:11px;font-weight:600;letter-spacing:.5px;border-bottom:2px solid #333}.test-diff-table td{border-bottom:1px solid #e8e8e8;padding:8px;font-family:'Courier New',Courier,monospace;font-size:12px;line-height:1;white-space:pre-wrap;word-wrap:break-word;vertical-align:top}.test-diff-table tr:last-child td{border-bottom:none}.test-diff-table td:first-child{width:50%;background-color:#f5fdf8;border-right:2px solid #ddd}.test-diff-table td:last-child{width:50%;background-color:#fff5f5}.test-diff-table tr[style*="border-left:4px solid #4CAF50"] td{background-color:#f1f8f4!important;color:#1b5e20!important}.test-diff-table tr[style*="border-left:4px solid #d9534f"] td:first-child{background-color:#fafafa}#inputBox{display:none}.custom-input{padding:8px;font-size:16px;border:1px solid #ccc;border-radius:4px;margin-bottom:10px;width:calc(100% - 22px)}.custom-button{padding:8px 12px;font-size:16px;border:1px solid #ccc;border-radius:4px;cursor:pointer;background-color:#039b06}.custom-button:hover{padding:8px 12px;font-size:16px;border:1px solid #ccc;border-radius:4px;cursor:pointer;background-color:#016003}#firework-container{position:absolute;top:0;right:0;width:50%;height:100%;pointer-events:none;overflow:hidden}.firework-particle{position:absolute;width:6px;height:6px;border-radius:50%;opacity:0;pointer-events:none;animation:explode 1s ease-out forwards}@keyframes explode{0%{opacity:1}100%{transform:translateY(-150px) scale(1.5);opacity:0}}.sidebar{position:fixed;top:0;left:-250px;width:250px;height:100%;background-color:#2d3748;color:#e2e8f0;transition:all .3s ease;z-index:999;box-shadow:2px 0 8px rgba(0,0,0,.3);border-right:1px solid #1a202c}.container{transition:margin-left .3s ease}.header{transition:margin-left .3s ease}.sidebar-item{display:flex;justify-content:space-between;align-items:center;padding:10px;gap:10px}.gci-overlay-section{border-top:1px solid rgba(255,255,255,.1);padding-top:15px!important;margin-top:5px}.gci-overlay-controls{padding:0}.gci-overlay-controls input[type="color"]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:2px}.gci-overlay-controls input[type="color"]::-webkit-color-swatch-wrapper{padding:0}.gci-overlay-controls input[type="color"]::-webkit-color-swatch{border:none;border-radius:2px}.gci-overlay-controls input[type="range"]{-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:linear-gradient(to right,rgba(67,97,238,.2) 0%,rgba(67,97,238,.6) 100%);outline:none}.gci-overlay-controls input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#4361ee;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.3)}.gci-overlay-controls input[type="range"]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#4361ee;cursor:pointer;border:none;box-shadow:0 1px 3px rgba(0,0,0,.3)}.reset-framework,.support-framework,.show-parsons,#download,#upload{display:flex;gap:10px}.reset-framework button,.support-framework button,.show-parsons button,.download-button,.upload-button{width:100px;padding:8px 16px;border-radius:4px;border:1px solid #6785e9;background-color:#6785e9;color:#ffffff;font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s ease;cursor:pointer}.reset-framework button:hover,.support-framework button:hover,.show-parsons button:hover,.download-button:hover,.upload-button:hover{background-color:#ffffff;color:#6785e9;border-color:#6785e9}.sidebar-item label,.sidebar-item>span{flex-shrink:0;font-weight:500;font-size:13px;color:#cbd5e0}.theme-container,.toggle-container{margin-left:auto;display:flex;gap:10px;align-items:center}#slider{margin-left:auto;flex-shrink:0;width:120px;height:6px;border-radius:3px;background:#ddd;outline:none;-webkit-appearance:none;appearance:none}#slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#6785e9;cursor:pointer;border:none}#slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#6785e9;cursor:pointer;border:none}.sidebar-item h2{margin:0}.theme-container,.toggle-container{display:flex;gap:10px;align-items:center}.sidebar-header{padding:16px;font-size:14px;font-weight:600;color:#cbd5e0;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #4a5568;background:#1a202c}.modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;pointer-events:none;animation:fadeIn .2s ease}.video-modal-content{cursor:default;pointer-events:auto}.modal-drag-handle{background:#8b5cf6;color:white;padding:8px 12px;cursor:move;display:flex;align-items:center;justify-content:space-between;border-radius:8px 8px 0 0;user-select:none}.modal-drag-handle:active{cursor:grabbing}.drag-icon{font-size:20px;font-weight:bold;letter-spacing:-2px;margin-right:8px}.drag-text{font-size:12px;font-weight:500;opacity:.95}.modal-close-btn{background:transparent;border:none;outline:none;color:white;font-size:22px;cursor:pointer;line-height:1;padding:4px 6px;transition:all .2s ease;font-weight:300;opacity:.8}.modal-close-btn:hover{color:white;opacity:1;transform:scale(1.15)}#videoContainer{padding:0;height:calc(100% - 44px);overflow:hidden;display:flex;flex-direction:column}.video-modal-content{resize:both;overflow:auto;min-width:400px;min-height:300px;width:800px;height:500px;display:flex;flex-direction:column;position:relative}.video-modal-content::before{content:'RESIZE';position:absolute;bottom:16px;right:2px;font-size:7px;font-weight:bold;color:#8b5cf6;transform:rotate(-45deg);transform-origin:center;pointer-events:none;z-index:10;opacity:.8;letter-spacing:1px;background:rgba(255,255,255,.9);padding:2px 4px;border-radius:2px}#videoContainer iframe{display:block;width:100%;height:100%;flex:1;border:none}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.modal-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#ffffff;padding:0;border-radius:8px;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);max-width:90%;max-height:90vh;overflow:hidden}.modal-content>h2:first-child,.modal-content>h3:first-child{background-color:#6785e9;color:#ffffff;padding:16px 24px;margin:0 0 24px 0;font-size:18px;font-weight:600}.video-button{background-color:#4361ee;color:white;border:none;padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;height:auto;display:inline-flex;align-items:center;gap:8px;transition:all .2s ease;font-weight:500;font-family:'Open Sans',sans-serif;white-space:nowrap}.video-button i{font-size:14px}.video-button:hover{background-color:#3a53cc;transform:translateY(-1px);box-shadow:0 2px 8px rgba(67,97,238,.3)}#loading-overlay{position:fixed;width:100%;height:100%;top:0;left:0;background-color:rgba(0,0,0,.5);z-index:9999;justify-content:center;align-items:center}#loading-overlay{display:flex}.loading-spinner{border:16px solid #f3f3f3;border-top:16px solid #3498db;border-radius:50%;width:120px;height:120px;animation:spin 2s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}#parsons-modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;overflow:hidden;background-color:rgba(0,0,0,.4);display:flex;justify-content:center;align-items:center;pointer-events:auto}#parsons-modal *{pointer-events:auto}.parsons-container{display:flex;justify-content:space-between}.sortable-container{border:1px solid #ccc;min-height:200px;max-height:400px;margin:5px;padding:10px;overflow-y:auto}.parsons-header{font-weight:bold;margin:10px;text-align:center}.parsons-modal-content{background-color:#fefefe;padding:20px;border:1px solid #888;width:80%;max-height:80%;display:flex;flex-direction:column;border-radius:5px;border:solid 1px lightgrey;min-height:fit-content}.parsons-modal-heading,.parsons-modal-footer{flex-shrink:0;text-align:center}.parsons-modal-heading{font-size:20px;font-weight:bold;border:solid 1px grey;border-radius:10px;padding:5px}#parsons-problem-container{gap:5px;padding:10px;box-sizing:border-box}#parsons-solution{box-sizing:border-box}.parsons-draggable-block{border:1px solid #ccc;border-radius:5px;background-color:#f9f9f9;padding:10px;box-shadow:0 2px 5px rgba(0,0,0,.1)}.parsons-draggable-line{padding:5px;cursor:pointer;transition:background-color .2s ease}.parsons-draggable-block:hover{background-color:#eaeaea}#parsons-source-container,#parsons-solution-container{flex:1}.submit-button[disabled]{cursor:not-allowed}#project-description h1{background-color:transparent;color:rgb(126,126,141);padding:5px 0;padding-bottom:10px;border-bottom:3px solid rgb(151,185,200);border-radius:0;margin-bottom:15px;width:100%;font-family:'Open Sans',sans-serif;font-weight:800;font-size:28px;letter-spacing:1.2px}#project-description h2{color:#666666;text-decoration:none;font-family:'Open Sans',sans-serif;font-weight:400;margin-top:20px;margin-bottom:12px;padding-bottom:5px;border-bottom:2px solid #e0e6ed}#project-description blockquote{border-left:3px solid #000000;padding-left:38px}.star-modal,.custom-modal{display:none;position:fixed;z-index:100;left:0;top:0;width:100%;height:100%;background-color:rgba(0,0,0,.5)}.star-modal{display:flex;justify-content:center;align-items:center;pointer-events:auto;animation:fadeIn .3s ease}.custom-modal{justify-content:center;align-items:center;pointer-events:auto}.star-modal-content,.custom-modal-content{background-color:white;margin:2% auto;padding:0;border:none;width:20%;text-align:center;border-radius:0;box-shadow:0 4px 20px rgba(0,0,0,.2)}.star-modal-content{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:20px;padding:40px;min-width:400px;box-shadow:0 20px 60px rgba(0,0,0,.4);animation:modalBounce .5s cubic-bezier(.68,-.55,.265,1.55)}@keyframes modalBounce{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05)}100%{transform:scale(1);opacity:1}}.star-display{color:white}.star-display h2{color:white;font-size:32px;margin:20px 0 10px 0;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.star-display p{color:white;font-size:18px;margin:10px 0 0 0;font-weight:500}#starIcons{display:flex;justify-content:center;gap:15px;margin-bottom:10px}.custom-modal-content{width:auto;min-width:350px;max-width:80%;text-align:center;display:inline-block;overflow:hidden}.custom-modal-content::before{content:'Reset Project';display:block;background-color:#6785e9;color:#ffffff;padding:16px 24px;font-size:16px;font-weight:600;margin:0}.custom-modal-content p,.custom-modal-content #modalMessage{padding:24px 24px 16px 24px}.custom-modal-content #modalButtons{padding:0 24px 24px 24px}#modalButtons{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.custom-modal-content button,.modal-content button:not(.close){padding:8px 20px;margin:0;color:#ffffff;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.custom-modal-content button:hover,.modal-content button:not(.close):hover{background-color:#ffffff;color:#6785e9}.gold-star{color:#ffd700;font-size:80px;text-shadow:0 0 20px rgba(255,215,0,.8),0 0 40px rgba(255,215,0,.5);animation:starPop .6s ease backwards;filter:drop-shadow(0 5px 10px rgba(0,0,0,.3))}.gold-star:nth-child(1){animation-delay:.1s}.gold-star:nth-child(2){animation-delay:.2s}.gold-star:nth-child(3){animation-delay:.3s}@keyframes starPop{0%{transform:scale(0) rotate(-180deg);opacity:0}50%{transform:scale(1.2) rotate(10deg)}100%{transform:scale(1) rotate(0deg);opacity:1}}iframe{background-color:black;width:600px;height:340px}.accordion-row{display:flex;gap:15px;align-items:flex-start;margin-bottom:10px}.accordion-row .accordion-left-content{flex-shrink:0}.accordion-row .accordion-left-content img{width:100%;height:auto;border-radius:6px;object-fit:cover;display:block}.accordion-row .accordion-left-content i{font-size:48px;color:#47cf6e}.accordion-row .accordion{flex:1;margin-bottom:0}.accordion .accordion-content{display:none;background-color:white;padding:0 10px}.accordion-content{display:none}.accordion-content.active{display:block}.accordion .accordion-title{background-color:#47cf6e;cursor:pointer;padding:10px;width:100%;text-align:left;border:none;outline:none;border-radius:0;font-size:16px;height:auto}.accordion-content p{padding:10px;margin:0;white-space:pre-wrap;word-wrap:break-word}.accordion{margin-bottom:10px}table,tbody,th,td{border:solid 1px black;border-collapse:collapse;padding:5px}.tab-container{display:flex;align-items:center;border-bottom:none;background-color:#fafbfc;gap:0}.tab-container ul{list-style-type:none;padding:0;margin:0;display:flex}#tab-list{display:flex;overflow-x:auto;white-space:nowrap;flex-grow:1;width:100%}.tab{padding:12px 16px;position:relative;cursor:pointer;border:none;border-bottom:3px solid transparent;display:flex;justify-content:space-between;align-items:center;gap:8px;color:#718096;font-size:13px;font-weight:500;white-space:nowrap;transition:all .2s ease;background-color:transparent;flex-shrink:0}.tab:hover{background-color:#f0f4f8;color:#4a5568}.tab.active{background-color:#ffffff;color:#2d3748;border-bottom-color:#6785e9}#add-tab{padding:10px;cursor:pointer}.tab input{border:none;outline:none;width:100px}.tab .icons{gap:5px;flex-direction:row;margin-left:10px;background-color:white;padding:5px;border-radius:5px;border:solid 1px}.tab .icons .icon{cursor:pointer;font-size:.8em}#back-arrow,#forward-arrow{cursor:pointer;background-color:transparent;border:none;border-radius:0;height:100%;width:40px;margin:0;display:flex;align-items:center;justify-content:center;color:#4a5568;font-size:18px;transition:all .2s ease;flex-shrink:0}button#return-playground-button{min-width:170px}#back-arrow:hover,#forward-arrow:hover{background-color:rgba(107,114,128,.1);color:#2d3748}li.tab.active input{background-color:#f0f0f0;font-size:1em}li.tab input{background-color:#cfe2fe;font-size:1em}.editor-pane{height:100%}.icons-container{position:absolute;top:0;right:2px;display:flex;gap:1px}.not-writeable-icon,.padlock-icon{color:#000000;font-size:7px;border:1px solid #000000;background-color:#ffffff;border-radius:3px;padding:2px}.not-writeable-icon{position:relative;cursor:pointer}.not-writeable-icon::after,.padlock-icon::after{content:attr(aria-label);position:absolute;bottom:-10px;left:-60px;transform:translateX(-50%);background-color:#333;color:#fff;padding:5px 10px;border-radius:4px;white-space:nowrap;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:10;font-family:'Rubik',sans-serif}.not-writeable-icon:hover::after,.padlock-icon:hover::after{opacity:1}.tab{position:relative}.session-warning-modal,.session-expired-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.session-warning-modal.active,.session-expired-modal.active{opacity:1;visibility:visible}.session-warning-content,.session-expired-content{background-color:white;padding:25px;border-radius:8px;box-shadow:0 5px 15px rgba(0,0,0,.2);max-width:400px;width:90%;text-align:center;transform:translateY(-20px);transition:transform .3s ease;border:1px solid #e2e8f0}.session-warning-content{border-top:4px solid #0347b5}.session-expired-content{border-top:4px solid #e74c3c}.session-warning-modal.active .session-warning-content,.session-expired-modal.active .session-expired-content{transform:translateY(0)}.session-warning-content h3,.session-expired-content h3{font-size:1.5rem;margin-top:0;margin-bottom:10px;color:#152032;font-weight:600}.session-warning-content p,.session-expired-content p{color:#4a5568;font-size:1rem;line-height:1.5;margin-bottom:15px}.session-timer{font-size:24px;font-weight:bold;margin:15px 0;padding:8px 15px;background-color:rgba(231,76,60,.1);border-radius:8px;color:#e74c3c;display:inline-block;border:1px solid rgba(231,76,60,.2);font-family:'Rubik',sans-serif;letter-spacing:1px}.session-warning-buttons{display:flex;justify-content:center;gap:12px;margin-top:20px}.session-warning-modal button,.session-expired-modal button{background-color:#ffffff;color:#152032;border:1px solid #e2e8f0;border-radius:8px;padding:10px 20px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:120px;font-size:.95rem;font-family:'Rubik',sans-serif}.session-warning-modal .primary-btn{background-color:blue;color:white;border:1px solid blue}.session-warning-modal .primary-btn:hover{background-color:rgb(61,61,235)}.session-expired-modal .primary-btn{background-color:#e74c3c;color:white;border:1px solid #e74c3c}.session-expired-modal .primary-btn:hover{background-color:#c0392b}.session-warning-modal button:hover,.session-expired-modal button:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.1)}.session-warning-modal button:active,.session-expired-modal button:active{transform:translateY(0)}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}.session-timer.urgent{animation:pulse 2s infinite;color:white;background-color:#e74c3c}@media screen and (max-width:520px){.session-warning-buttons{flex-direction:column;gap:10px}.session-warning-buttons button{width:100%}.session-warning-content,.session-expired-content{padding:20px;width:85%}.session-timer{font-size:20px}}.project-navigation-container{background-color:#ffffff;border-bottom:1px solid #e0e6ed;margin-bottom:0;box-shadow:0 1px 2px rgba(0,0,0,.05);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}.assignment-title-container{display:flex;align-items:center;justify-content:center;padding:5px 15px;flex-grow:1;margin:0 15px;gap:10px}.nav-header{padding:12px 15px;display:flex;justify-content:space-between;align-items:center;background-color:#f8f9fa}.assignment-title{font-weight:600;font-size:16px;color:#374151}.toggle-nav-button{background-color:white;border:1px solid #414141;color:#6b7280;cursor:pointer;font-size:13px;padding:10px 10px;transition:color .2s;border-radius:5px}.toggle-nav-button:hover{color:#1f2937;background-color:#b7d1f4}.nav-content{padding:15px;transition:max-height .3s ease-in-out,opacity .2s,padding .3s;overflow:hidden;background-color:#ffffff}.nav-content.hidden{max-height:0;padding:0 15px;opacity:0}.nav-controls{display:flex;align-items:center;gap:15px;margin-bottom:20px}.nav-button{background-color:#f3f4f6;color:#4b5563;border:1px solid #e5e7eb;border-radius:4px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s,color .2s}.nav-button:hover:not(:disabled){background-color:#e5e7eb;color:#111827}.nav-button:disabled{background-color:#f9fafb;color:#d1d5db;cursor:not-allowed;border-color:#f3f4f6}.project-dropdown{flex:1;padding:8px 12px;border-radius:4px;border:1px solid #d1d5db;font-size:14px;color:#374151;background-color:white;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%236b7280'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd' /%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:20px;padding-right:30px}.project-dropdown:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.status-label{display:inline-block;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:500;margin-right:8px}.status-completed{background-color:#d1fae5;color:#065f46}.status-started{background-color:#fef3c7;color:#92400e}.status-not-started{background-color:#f3f4f6;color:#6b7280}.assignment-progress{margin-top:10px}.progress-bar-container{margin-bottom:15px}.progress-bar{height:8px;background-color:#f3f4f6;border-radius:9999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#10b981 0%,#34d399 100%);transition:width .5s ease}.progress-text{font-size:12px;color:#6b7280;text-align:right;margin-top:6px}.progress-stats{display:flex;flex-wrap:wrap;flex-direction:row-reverse;gap:15px;font-size:13px;color:#4b5563;margin-top:10px}.stat{display:flex;align-items:center;gap:6px}.stat-indicator{width:12px;height:12px;border-radius:2px}.stat-completed .stat-indicator{background-color:#10b981}.stat-in-progress .stat-indicator{background-color:#f59e0b}.stat-not-started .stat-indicator{background-color:#e5e7eb}.nav-loading,.nav-error{padding:15px;text-align:center;color:#6b7280;font-size:14px}.nav-error{color:#ef4444}@media (max-width:1020px){.assignment-title{display:none}}@media (max-width:768px){.nav-controls{flex-direction:column;align-items:stretch}.header{flex-direction:column}.progress-stats{flex-direction:column;gap:8px}}.toast{position:fixed;bottom:30px;right:30px;padding:15px 25px;box-shadow:var(--box-shadow-lg);z-index:1100;font-size:15px;font-weight:500;display:flex;align-items:center;gap:10px;animation:slideIn .3s forwards;max-width:450px;color:var(--text-white)}.toast.info{background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));border-left:4px solid var(--primary-dark)}.toast.success{background:linear-gradient(135deg,var(--success-color),var(--secondary-dark));border-left:4px solid var(--secondary-dark)}.toast.error{background:linear-gradient(135deg,var(--danger-color),var(--danger-darkest));border-left:4px solid var(--danger-darkest)}.toast.warning{background:linear-gradient(135deg,var(--warning-color),var(--warning-dark));border-left:4px solid var(--warning-dark)}.toast i{font-size:18px}.toast.fade-out{opacity:0;transition:opacity .3s ease-out}@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}[data-tooltip]{position:relative}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;top:110%;left:50%;transform:translateX(-50%);margin-bottom:8px;padding:6px 12px;border-radius:4px;background-color:var(--background-dark);color:var(--text-white);text-align:center;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s;pointer-events:none;z-index:999;box-shadow:var(--box-shadow-sm);overflow:visible;height:fit-content}[data-tooltip]:after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border-width:5px;border-style:solid;border-color:var(--background-dark) transparent transparent transparent;margin-bottom:-2px;opacity:0;visibility:hidden;transition:all .2s}[data-tooltip]:hover:before,[data-tooltip]:hover:after{opacity:1;visibility:visible}[data-tooltip-position="left"]:before{top:50%;left:auto;right:100%;transform:translateY(-50%);margin-bottom:0;margin-right:8px}[data-tooltip-position="left"]:after{top:50%;left:auto;right:100%;bottom:auto;transform:translateY(-50%);margin-bottom:0;margin-right:3px;border-color:transparent transparent transparent var(--background-dark)}[data-tooltip-position="right"]:before{top:50%;left:100%;transform:translateY(-50%);margin-bottom:0;margin-left:8px}[data-tooltip-position="right"]:after{top:50%;left:100%;bottom:auto;transform:translateY(-50%);margin-bottom:0;margin-left:3px;border-color:transparent var(--background-dark) transparent transparent}.success-button{background-color:var(--success-color)!important}.error-button{background-color:var(--danger-color)!important}input[type="text"],input[type="email"],input[type="password"],input[type="number"],textarea,select{border:1px solid #cbd5e0;border-radius:4px;padding:8px 12px;font-size:13px;font-family:inherit;transition:all .2s ease;background-color:#ffffff}input[type="text"]:focus,input[type="email"]:focus,input[type="password"]:focus,input[type="number"]:focus,textarea:focus,select:focus{outline:none;border-color:#6785e9;box-shadow:0 0 0 3px rgba(103,133,233,.1);background-color:#ffffff}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236785e9' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:30px}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c4c4c4;border-radius:6px;border:2px solid #f1f1f1}::-webkit-scrollbar-thumb:hover{background:#a0a0a0}*{scrollbar-color:#c4c4c4 #f1f1f1;scrollbar-width:thin}