:root{--bg-primary: #050505;--bg-secondary: #121214;--text-primary: #E2E8F0;--text-secondary: #94A3B8;--accent-color: #00F5FF;--accent-hover: #00D1DA;--cyan-accent: #06b6d4;--border-color: #27272A;--card-shadow: 0 4px 6px -1px rgba(0, 0, 0, .5), 0 2px 4px -1px rgba(0, 0, 0, .3);--card-bg: #121214;--header-bg: rgba(5, 5, 5, .85);--toggle-bg: #27272A;--toggle-circle: #050505;--pattern-color: #121214;--success-color: #34d399;--warning-color: #fbbf24;--error-color: #f87171;--panel-width: 70px;--titlebar-bg: #1e1e1e;--titlebar-text: #f1f5f9}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f4f4f5;--text-primary: #333333;--text-secondary: #555555;--accent-color: #007BFF;--accent-hover: #0056b3;--border-color: #dddddd;--card-shadow: 0 4px 12px rgba(0, 0, 0, .05);--card-bg: #ffffff;--header-bg: rgba(255, 255, 255, .95);--toggle-bg: #e0e0e0;--toggle-circle: #ffffff;--pattern-color: #f9f9f9;--success-color: #28a745;--warning-color: #ffc107;--error-color: #dc3545;--titlebar-bg: #f0f0f0;--titlebar-text: #333333}*{margin:0;padding:0;box-sizing:border-box;transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}html,body{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;height:100vh;overflow:hidden;background-image:none}h2{font-size:1rem;margin-bottom:.75rem}.dashboard-container{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.main-content-wrapper{display:flex;flex-direction:column;flex:1;overflow:hidden}.custom-titlebar{-webkit-app-region:drag;height:30px;width:100%;position:fixed;top:0;left:0;z-index:1000;background-color:var(--titlebar-bg, var(--bg-primary));border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 10px;box-shadow:0 2px 4px #0003;color:var(--accent-color)}.titlebar-left{display:flex;align-items:center;height:100%}.titlebar-icon{width:24px;height:24px;margin-right:8px}.titlebar-title{font-size:13px;font-weight:600;color:var(--titlebar-text, var(--text-primary))}.titlebar-controls{-webkit-app-region:no-drag;display:flex;align-items:center}.titlebar-button{-webkit-app-region:no-drag;width:24px;height:24px;border:none;background-color:transparent;color:var(--titlebar-text, var(--text-primary));font-size:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;margin-left:4px;border-radius:3px}.titlebar-button:hover{background-color:var(--bg-secondary)}.titlebar-button.close:hover{background-color:#e81123;color:#fff}.app-header,.app-header .app-title,.app-header .title-icon,.visualization-bar{display:none}body.term-sidebar-collapsed .visualization-bar{left:calc(var(--panel-width) + 40px);width:calc(100% - (var(--panel-width) + 40px))}body.term-sidebar-collapsed .sheet-selector-bar{left:calc(var(--panel-width) + 40px);width:calc(100% - (var(--panel-width) + 40px))}.sheet-item{padding:8px 5px;background-color:var(--bg-hover);border-radius:4px;cursor:pointer;white-space:nowrap;color:var(--text-dimmed);border:1px solid transparent;transition:all .2s;width:45px;height:80px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center}.sheet-icon{flex-shrink:0;margin-top:1px;margin-bottom:4px}.sheet-icon svg{width:24px;height:24px;stroke:currentColor}.sheet-text{font-size:.6rem;line-height:1.1;margin-top:4px;margin-bottom:10px;word-break:break-word;overflow:visible;text-overflow:clip;max-height:none}.visualization-buttons{display:flex;gap:4px;margin-left:5px}.competency-selector-wrapper{display:flex;align-items:center;justify-content:center;flex:1}.right-buttons{display:flex;gap:4px;margin-right:5px}.visualization-bar .plot-button{width:auto;min-width:60px;height:32px;margin:0;padding:.2rem}.header-icon-button{background:none;border:none;cursor:pointer;padding:.2rem;margin-left:0;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:background-color .3s;background-color:var(--bg-secondary);width:auto;min-width:60px;height:32px;flex-direction:column}.header-icon-button:hover{background-color:var(--accent-color);color:#fff}.header-icon{width:20px;height:20px;stroke:var(--accent-color)}.sidebars-container{display:flex;flex-direction:row;flex:1;overflow:hidden;margin-top:60px}.term-year-sidebar{flex:1;display:flex;flex-direction:column;min-height:150px;overflow:hidden}.term-year-sidebar .toggle-btn{display:none}.term-year-content{flex:1;overflow-y:auto}.side-panel-logo{width:50px;margin:10px auto;display:block}.side-panel{width:var(--panel-width);background-color:var(--bg-primary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;padding:0;box-shadow:2px 0 6px #0003;overflow-y:auto}.side-panel .app-title,.side-panel .title-icon{display:none}body.webapp .visualization-bar{display:none}body.webapp .sheet-selector-bar{top:0}body.webapp .sidebars-container{margin-top:1px}.current-sheet-title{font-size:1rem;font-weight:600;color:var(--text-primary);cursor:pointer;padding:4px 12px;border-radius:4px;transition:background-color .2s;display:flex;align-items:center;justify-content:center;text-align:center}.current-sheet-title:hover{background-color:var(--bg-hover)}.dropdown-arrow{margin-left:6px;font-size:.7rem;color:var(--text-secondary)}.button-icon{stroke:currentColor;display:block;margin:0 auto;width:20px;height:20px}.icon-label{font-size:.45rem;text-align:center;margin-top:1px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;width:100%}.plot-button,.file-buttons button{flex-direction:column;align-items:center;justify-content:center}.header-icon-button{flex-direction:column}.file-buttons{display:flex;flex-direction:column;margin:0;padding:0}.file-buttons button{padding:.25rem;border:none;background-color:var(--bg-secondary);color:var(--text-primary);border-radius:0;cursor:pointer;display:flex;align-items:center;justify-content:center;height:36px;position:relative}.file-buttons button:hover{background-color:var(--accent-color);color:#fff}.plot-button{background-color:transparent;color:var(--text-secondary);border:1px solid transparent;border-radius:12px;padding:.5rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;width:100%;height:48px;position:relative;overflow:hidden}.plot-button:hover{background-color:#ffffff0d;color:var(--accent-color)}.plot-button.active{background-color:#121214d9;border:1px solid rgba(0,245,255,.2);color:#fff;font-weight:600;box-shadow:0 4px 15px #0006}.plot-button.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background-color:var(--accent-color);box-shadow:0 0 15px #00f5ffcc}.plot-button.active .group-hover\:text-accent{color:var(--accent-color)}.side-panel button,.side-panel a.plot-button{margin:.1rem 0;transform:none!important}.side-panel button:hover,.side-panel a.plot-button:hover{transform:none!important}.visualization-bar .plot-button[title]:hover:after,.visualization-bar .header-icon-button[title]:hover:after{display:none}.side-panel .plot-button[title]:hover:after,.file-buttons button[title]:hover:after{content:attr(title);position:absolute;left:100%;top:50%;transform:translateY(-50%);background-color:var(--bg-secondary);color:var(--text-primary);padding:.5rem;border-radius:.3rem;white-space:nowrap;z-index:1000;box-shadow:var(--card-shadow);margin-left:10px;font-size:.75rem;pointer-events:none}.visualization-bar .action-button{background-color:var(--bg-secondary);color:var(--text-primary);border:none;border-radius:4px;padding:.25rem;cursor:pointer;transition:background-color .3s ease,box-shadow .3s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;width:auto;min-width:60px;height:32px;position:relative}.visualization-bar .action-button:hover{background-color:var(--accent-color);color:#fff;box-shadow:0 2px 5px #0003}a.plot-button{text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:none!important}.side-panel{display:flex;flex-direction:column;justify-content:flex-start}#discordButton{margin-top:auto}[data-theme=light] .plot-button,[data-theme=light] .template-item.active,[data-theme=light] .file-buttons button,[data-theme=light] #themeToggleBtn,[data-theme=light] #helpButton,[data-theme=light] #aboutButton{color:#000}[data-theme=light] .plot-button:hover,[data-theme=light] .template-item:hover,[data-theme=light] .file-buttons button:hover,[data-theme=light] #themeToggleBtn:hover,[data-theme=light] #helpButton:hover,[data-theme=light] #aboutButton:hover{color:#181414}.actions-buttons{display:flex;flex-direction:column;gap:5px;padding:5px}.actions-buttons .plot-button{width:100%;height:36px;margin:0;padding:.2rem}#loginModal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:none;justify-content:center;align-items:center;z-index:1000}.add-course-modal,.framework-modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#0006}.add-course-modal-content,.framework-modal-content{background-color:var(--bg-primary);margin:5% auto;padding:20px;border:1px solid var(--border-color);width:80%;max-width:600px;border-radius:8px;position:relative}.framework-modal-content{width:800px}.framework-tabs{display:flex;border-bottom:1px solid var(--border-color);margin-bottom:20px}.tab-button{background:none;border:none;padding:10px 20px;margin-right:5px;cursor:pointer;color:var(--text-primary);font-weight:500;opacity:.7;border-bottom:3px solid transparent}.tab-button.active{opacity:1;border-bottom:3px solid var(--accent-color)}.framework-tab-content{display:block}.category-item{border:1px solid var(--border-color);border-radius:4px;padding:15px;margin-bottom:15px;background-color:var(--bg-secondary)}.category-header{display:flex;align-items:center;margin-bottom:12px}.category-number{width:40px;text-align:center;margin-right:10px;font-weight:700}.category-name{flex-grow:1}.competencies-container{margin-left:30px;margin-bottom:12px}.competency-item{display:flex;align-items:center;margin-bottom:8px}.competency-number{width:60px;text-align:center;margin-right:10px}.competency-name{flex-grow:1}.remove-btn{background:none;border:none;color:var(--error-color);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%}.remove-btn:hover{background-color:#ff4c4c1a}.add-competency-btn,.add-category-btn{background:none;border:1px dashed var(--border-color);color:var(--accent-color);padding:6px 12px;border-radius:4px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;width:fit-content}.add-competency-btn:hover,.add-category-btn:hover{background-color:#007bff1a}.add-category-btn{margin-top:5px;margin-bottom:20px}.framework-modal-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.framework-action-buttons{display:flex;justify-content:center;margin-top:15px;margin-bottom:10px}.action-btn,.action-button{background-color:var(--bg-secondary);border:1px solid var(--border-color);color:var(--accent-color);padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s,color .2s}.action-btn:hover,.action-button:hover{background-color:var(--accent-color);color:#fff}.import-format-guide{margin-top:20px;padding:15px;background-color:var(--bg-secondary);border-radius:4px;font-size:14px}.clone-preview-container{margin-top:20px}.clone-preview{max-height:200px;overflow-y:auto;border:1px solid var(--border-color);border-radius:4px;padding:10px;background-color:var(--bg-secondary);margin-top:8px}.close-framework{position:absolute;top:10px;right:10px;font-size:24px;cursor:pointer;color:var(--text-secondary)}.close-add-course{color:#aaa;float:right}.competency-selector-container{display:none;align-items:center;justify-content:center;padding:0 8px;height:100%;white-space:nowrap;flex-wrap:nowrap;max-width:100%;overflow:hidden}.competency-selector-container label{margin-right:8px;font-weight:500;color:var(--text-primary);font-size:.8rem;white-space:nowrap}.competency-selector{padding:4px 10px;border-radius:4px;border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-primary);width:auto;min-width:200px;max-width:300px;font-size:.8rem;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;height:26px;font-size:28px;font-weight:700;cursor:pointer}.close-add-course:hover,.close-add-course:focus{color:#000;text-decoration:none;cursor:pointer}.add-course-modal-buttons{display:flex;justify-content:flex-end;margin-top:20px}.add-course-modal-buttons .cancel-btn,.add-course-modal-buttons .save-btn{padding:10px 20px;margin-left:10px;border:none;border-radius:4px;cursor:pointer}.add-course-modal-buttons .cancel-btn{background-color:#ccc}.add-course-modal-buttons .save-btn{background-color:#28a745;color:#fff}.competency-input{margin-top:15px}.competency-input label{display:block;margin-bottom:5px;font-weight:700}.competency-input textarea{width:100%;height:60px;padding:8px;resize:vertical;border:1px solid #ccc;border-radius:4px}.help-modal{display:none;position:fixed;z-index:1010;left:0;top:0;width:100%;height:100%;background-color:#00000080;overflow-y:auto}.help-modal-content{background-color:var(--card-bg);margin:5% auto;padding:2rem;border-radius:.5rem;width:90%;max-width:800px;box-shadow:var(--card-shadow);border:1px solid var(--border-color);max-height:80vh;overflow-y:auto}.close-help{color:var(--text-secondary);float:right;font-size:1.5rem;font-weight:300;cursor:pointer;margin-top:-.5rem;margin-right:-.5rem;padding:.25rem .5rem;border-radius:.25rem}.close-help:hover{background-color:var(--bg-secondary);color:var(--accent-color)}.help-header{display:flex;align-items:center;border-bottom:1px solid var(--border-color);padding-bottom:1.5rem;margin-bottom:1.5rem}.help-logo{width:60px;height:auto;margin-right:1.5rem}.help-header h2{font-size:1.8rem;font-weight:600;color:var(--accent-color);margin:0}.help-introduction{margin-bottom:2rem;font-size:1.05rem;line-height:1.6}.help-section{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.help-section:last-child{border-bottom:none}.help-section-header{display:flex;align-items:center;margin-bottom:1rem}.help-icon-container{width:40px;height:40px;background-color:var(--accent-color);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-right:1rem}.help-icon{stroke:#fff;width:24px;height:24px}.help-section-header h3{margin:0;font-size:1.3rem;font-weight:600;color:var(--text-primary)}.help-content{padding-left:3.5rem}.help-content h4{font-size:1.1rem;font-weight:600;margin-top:1.2rem;margin-bottom:.7rem;color:var(--accent-color)}.help-content p{margin-bottom:1rem;line-height:1.6}.help-content ul,.help-content ol{margin-left:1.5rem;margin-bottom:1rem}.help-content li{margin-bottom:.5rem;line-height:1.5}.help-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color);text-align:center;color:var(--text-secondary);font-size:.9rem}.help-footer p:first-child{margin-bottom:.5rem}.about-header{display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;flex-wrap:wrap}.about-logo{width:80px;height:auto;margin-right:1rem}.about-header-text{text-align:left}.about-version{font-size:.9rem;color:var(--text-secondary);margin-bottom:.25rem}.about-tagline{font-size:1.1rem;font-weight:600;color:var(--accent-color);margin:0}.about-description{margin-bottom:1.5rem;line-height:1.5}.about-beta-notice{background-color:#ff9800;color:#000;padding:.75rem;border-radius:.35rem;margin-top:1rem;font-size:.9rem;line-height:1.4;border-left:4px solid #e65100}.about-beta-notice a{color:#000;font-weight:700;text-decoration:underline}.about-team{margin-bottom:1.5rem}.team-section{margin:1rem 0;background-color:var(--bg-secondary);border-radius:.5rem;padding:1rem}.team-section h4{margin-top:0;margin-bottom:.5rem;font-size:1rem;color:var(--accent-color)}.about-footer{font-size:.9rem;color:var(--text-secondary);border-top:1px solid var(--border-color);padding-top:1rem;margin-top:1rem;text-align:center}.edit-modal{display:none;position:fixed;z-index:1010;left:0;top:0;width:100%;height:100%;background-color:#00000080;overflow-y:auto}.edit-modal-content{background-color:var(--card-bg);margin:5% auto;padding:2rem;border-radius:.5rem;width:90%;max-width:800px;box-shadow:var(--card-shadow);border:1px solid var(--border-color);max-height:80vh;overflow-y:auto}.edit-modal-content h3{margin-top:0;font-weight:600}.edit-modal textarea{width:100%;min-height:120px;margin:.75rem 0;padding:.75rem;border:1px solid var(--border-color);border-radius:.25rem;font-family:inherit;resize:vertical;color:var(--text-primary);background-color:var(--bg-primary)}.edit-modal-buttons{text-align:right;margin-top:1rem}.edit-modal-buttons button{padding:.5rem 1rem;margin-left:.5rem;border:none;border-radius:.25rem;cursor:pointer;font-size:.875rem}.edit-modal-buttons .save-btn{background-color:var(--accent-color);color:#fff}.edit-modal-buttons .save-btn:hover{background-color:var(--accent-hover)}.edit-modal-buttons .cancel-btn{background-color:var(--border-color);color:var(--text-primary)}.edit-modal-buttons .cancel-btn:hover{background-color:var(--accent-color);color:#fff}#locationSelectionContent{display:flex;flex-direction:column;gap:10px;margin-top:1rem;margin-bottom:1rem}#locationSelectionContent .template-btn{width:100%}#openFileModal .edit-modal-content{max-width:800px;text-align:center;display:flex;flex-direction:column}#openFileModal h3{font-size:1.8rem;margin-bottom:15px}#openFileModal p{font-size:1rem;color:var(--text-secondary);margin-bottom:30px}.modal-options{display:flex;gap:20px;justify-content:center}.modal-option{cursor:pointer;padding:20px;border:1px solid var(--border-color);border-radius:8px;flex:1;transition:all .2s ease}.modal-option:hover,#dropZone:hover{border-color:var(--accent-color);background-color:var(--bg-hover)}.modal-option h4{font-size:1.1rem;margin:0 0 5px}.modal-option p{font-size:.9rem;color:var(--text-secondary);margin:0}.modal-option svg{margin-top:10px}#dropZone{margin-top:30px;border:2px dashed var(--border-color);border-radius:8px;padding:40px;transition:all .2s ease}#dropZone.dragover{border-color:var(--accent-color);background-color:#17a2b81a}#dropZone svg{margin-bottom:10px;color:var(--text-secondary)}#dropZone p{font-size:1rem;color:var(--text-secondary);margin:0}#sheetSelectionModal .edit-modal-content{max-width:80vw;width:auto;max-height:80vh;overflow-y:auto}#sheetSelectionModal{display:none;position:fixed;z-index:2000;left:0;top:0;width:100%;height:100%;background-color:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;flex-direction:column}#sheetSelectionModal .edit-modal-content{background:#171717f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px -12px #00000080;border-radius:1rem;width:90%;max-width:1000px;height:85vh;margin:0;padding:0;display:flex;flex-direction:column;overflow:hidden;position:relative}#sheetSelectionModal h3#sheetSelectionModalTitle{padding:1.5rem;margin:0;border-bottom:1px solid rgba(255,255,255,.1);background:#17171780;font-size:1.5rem;font-weight:600;color:#fff;display:flex;justify-content:space-between;align-items:center}#sheetSelectionContainer{flex:1;overflow-y:auto;padding:2rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;align-content:start}@media (max-width: 1024px){#sheetSelectionContainer{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){#sheetSelectionContainer{grid-template-columns:1fr}}#sheetSelectionContainer::-webkit-scrollbar{width:8px}#sheetSelectionContainer::-webkit-scrollbar-track{background:#ffffff0d}#sheetSelectionContainer::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}#sheetSelectionContainer::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.sheet-selection-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:12rem;padding:1.5rem;border-radius:.75rem;background-color:#262626;border:1px solid #374151;transition:all .2s ease;cursor:pointer;color:#e5e7eb}.sheet-selection-card:hover{background-color:#1f2937;border-color:#6b7280;color:#fff}.sheet-selection-card.active{background-color:var(--accent-color, #7C8FFF);border-color:var(--accent-color, #7C8FFF);box-shadow:0 0 20px #7c8fff4d;transform:scale(1.02);color:#fff}.sheet-card-icon-wrapper{margin-bottom:1rem;padding:.75rem;border-radius:9999px;background-color:#1f2937;transition:background-color .2s;display:flex;align-items:center;justify-content:center}.sheet-selection-card:hover .sheet-card-icon-wrapper{background-color:#374151}.sheet-selection-card.active .sheet-card-icon-wrapper{background-color:#fff3}.sheet-card-icon{font-size:1.875rem;color:#d1d5db}.sheet-selection-card:hover .sheet-card-icon,.sheet-selection-card.active .sheet-card-icon{color:#fff}.sheet-card-title{font-size:1.125rem;font-weight:500;margin:0}.sheet-card-description{font-size:.75rem;color:#6b7280;margin-top:.5rem;text-align:center;position:absolute;bottom:1rem;opacity:0;transition:opacity .2s}.sheet-selection-card:hover .sheet-card-description{opacity:1}.sheet-selection-card.active .sheet-card-description{color:#fffc;opacity:1}.active-indicator{position:absolute;top:.75rem;right:.75rem;color:#ffffff80}.active-indicator span{font-size:1.2rem}#user-file-list{display:grid;grid-template-columns:1fr;gap:10px;padding:0;margin:0 0 20px}.file-card{display:flex;align-items:center;padding:15px;border-radius:8px;background-color:var(--bg-secondary);border:1px solid var(--border-color);cursor:pointer;transition:all .2s ease}.file-card:hover{transform:translateY(-2px);border-color:var(--accent-color);box-shadow:0 4px 8px #00000026}.file-icon{font-size:2rem;margin-right:15px;color:var(--accent-color)}.file-info{display:flex;flex-direction:column}.file-name{font-weight:600;color:var(--text-primary)}.file-date{font-size:.8rem;color:var(--text-secondary)}.loading-spinner{border:4px solid rgba(0,0,0,.1);border-left-color:var(--accent-color);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:20px auto}@keyframes spin{to{transform:rotate(360deg)}}.no-files-message,.error-message{grid-column:1 / -1;text-align:center;padding:20px;color:var(--text-secondary)}.error-message{color:var(--error-color)}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500}.form-group input[type=text],.form-group select{width:100%;padding:8px 12px;border-radius:4px;border:1px solid var(--border-color);background-color:var(--bg-primary);color:var(--text-primary)}.toggle-control{display:flex;align-items:center;margin-bottom:10px}.settings-toggle{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:40px;height:20px;background-color:var(--border-color);border-radius:20px;margin-right:12px;cursor:pointer;transition:background-color .3s}.settings-toggle:checked{background-color:var(--accent-color)}.settings-toggle:before{content:"";position:absolute;width:16px;height:16px;border-radius:50%;top:2px;left:2px;background-color:#fff;transition:transform .3s}.settings-toggle:checked:before{transform:translate(20px)}.toggle-label{font-weight:400;cursor:pointer}.file-input-container{display:flex;align-items:center;gap:10px}.file-select-btn{padding:8px 16px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer}#selectedFileLabel{color:var(--text-secondary);font-size:14px}.main-content{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:1rem;margin-top:21px;border:1px solid var(--border-color);border-top:none;background-color:var(--bg-primary)}#plotArea{flex:1;display:flex;flex-direction:column;min-height:600px;background-color:transparent;border-radius:10px;box-shadow:var(--card-shadow)}#plotArea{border:1px solid var(--border-color);overflow:visible;border-top:none}#plotArea.pyramid-container{margin-top:0;height:calc(100vh - 95px)}.color-picker-dropdown{display:none;position:absolute;top:100%;right:0;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 8px #0003;z-index:1000;width:220px;padding:10px}.right-buttons .plot-button{position:relative}.color-picker-section{margin-bottom:10px}.color-picker-title{font-size:.8rem;font-weight:600;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.color-scheme-option{padding:6px 10px;cursor:pointer;border-radius:3px;margin-bottom:4px;font-size:.85rem;transition:background-color .2s}.color-scheme-option:hover{background-color:var(--accent-hover);color:#fff}.color-scheme-option.active{background-color:var(--accent-color);color:#fff}.color-matrix{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:6px}.color-swatch{width:100%;height:24px;border-radius:3px;cursor:pointer;transition:transform .15s;border:2px solid transparent}.color-swatch:hover{transform:scale(1.1)}.color-swatch.active{border-color:#fff;box-shadow:0 0 0 1px var(--accent-color)}.combined-view{display:flex;flex-direction:column;width:100%;height:100%}.primary-plot{flex:1.5;min-height:300px;margin-bottom:.5rem;border-bottom:1px solid var(--border-color)}.secondary-plot{flex:1;min-height:180px}.empty-data-message{text-align:center;padding:2rem;color:var(--text-secondary);font-style:italic;font-size:.8rem}.radar-grid-circle{fill:none;stroke:#ffffff14;stroke-width:1}.radar-grid-line{stroke:#ffffff14;stroke-width:1;stroke-dasharray:4 4}.radar-axis-label{font-size:11px;fill:#94a3b8;font-family:Inter,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.1em;text-shadow:0 2px 4px rgba(0,0,0,.9)}.radar-path-primary{fill:#8b5cf633;stroke:#8b5cf6;stroke-width:2.5;filter:drop-shadow(0 0 12px rgba(139,92,246,.4));transition:all .4s ease}.radar-path-primary:hover{stroke-width:3.5;fill:#8b5cf64d;filter:drop-shadow(0 0 20px rgba(139,92,246,.6))}.radar-point-group{cursor:pointer}.radar-point-group circle{transition:all .3s cubic-bezier(.34,1.56,.64,1)}.radar-point-group:hover circle{r:7;stroke-width:3;filter:drop-shadow(0 0 8px currentColor)}.radar-tooltip-container{opacity:0;transition:opacity .3s ease,transform .3s cubic-bezier(.175,.885,.32,1.275);transform:translateY(10px) scale(.9);pointer-events:none}.radar-point-group:hover .radar-tooltip-container{opacity:1;transform:translateY(0) scale(1)}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:0 8px 32px #0006}.template-menu{position:absolute;top:50px;right:10px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;padding:10px;box-shadow:0 2px 10px #0003;z-index:100;display:none}.template-btn{display:block;width:100%;text-align:left;padding:8px;margin:5px 0;border:none;border-radius:4px;background-color:var(--accent-color);color:#fff;cursor:pointer}.template-btn:hover{background-color:var(--accent-hover)}.sheet-selector-bar{position:fixed;width:calc(100% - (var(--panel-width) + 160px));top:15px;left:calc(var(--panel-width) + 160px);background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:.25rem;height:30px;display:flex;align-items:center;justify-content:center;z-index:8;transition:left .3s ease,width .3s ease}.sheets-bar-container{display:flex;gap:8px;align-items:center;justify-content:center;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.sheets-bar-container::-webkit-scrollbar{display:none}.sheet-item{padding:4px;background-color:var(--bg-hover);border-radius:4px;cursor:pointer;white-space:nowrap;color:var(--text-dimmed);border:1px solid transparent;transition:all .2s;width:50px;height:50px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center}.sheet-icon{flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center;height:100%}.sheet-icon svg{width:20px;height:20px;stroke:currentColor}.sheet-text{font-size:.6rem;line-height:1;margin-top:auto;margin-bottom:2px;word-break:break-word;overflow:hidden;text-overflow:ellipsis;max-height:20px}.sheet-item:hover{background-color:var(--bg-input);color:var(--text-primary)}.sheet-item.active{background-color:#0078d426;color:var(--accent-color);border-color:var(--accent-color);font-weight:700}.sheet-item.sdg-sheet .sheet-text{display:none}.sheet-item.sdg-sheet{justify-content:center}.template-search-container{margin-top:0;margin-bottom:.5rem}.search-box{position:relative;margin-bottom:.35rem}.search-box input{width:100%;padding:.5rem 2rem .5rem .75rem;border:1px solid var(--border-color);border-radius:.3rem;font-size:.9rem;background-color:var(--bg-primary);color:var(--text-primary)}.search-box .search-icon{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);stroke:var(--text-secondary)}.template-category{margin-bottom:.35rem;background-color:var(--bg-primary);border-radius:.3rem;border:1px solid var(--border-color);overflow:hidden;display:none}.template-category h3{padding:.35rem;margin:0;background-color:var(--bg-secondary);color:var(--text-primary);font-size:.75rem;font-weight:600;border-bottom:1px solid var(--border-color)}.template-items{padding:.15rem}.template-item{padding:.15rem;cursor:pointer;border-radius:.3rem;margin:.05rem 0;transition:background-color .2s ease,color .2s ease;font-size:.75rem}.template-item:hover{background-color:var(--accent-hover);color:#fff}.template-item.active{background-color:var(--accent-color);color:#fff}.template-item.hidden,.template-category.empty{display:none}.templates-in-sidebar{display:flex;flex-direction:column;width:100%;height:100%;overflow:auto;padding:.5rem}.template-items-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.template-items-list .template-item{padding:.5rem;cursor:pointer;border-radius:.3rem;transition:background-color .2s ease,color .2s ease;font-size:.85rem;background-color:var(--bg-primary);border:1px solid var(--border-color)}.template-items-list .template-item:hover{background-color:var(--accent-hover);color:#fff}.template-items-list .template-item.active{background-color:var(--accent-color);color:#fff}.back-to-term-year{padding:.5rem;background-color:var(--accent-color);color:#fff;border:none;border-radius:.3rem;cursor:pointer;margin-top:.5rem;font-size:.85rem}.back-to-term-year:hover{background-color:var(--accent-hover)}.single-course-table{width:100%;border-collapse:collapse;margin:1rem 0}.single-course-table thead tr{background-color:var(--bg-secondary)}.single-course-table th,.single-course-table td{border:1px solid var(--border-color);padding:.5rem;text-align:left}.single-course-table th{background-color:var(--bg-secondary);font-weight:600}.has-justification{background-color:var(--accent-color);color:#fff;cursor:pointer}.term-year-container{display:flex;flex-direction:column;width:100%;height:100%;overflow:auto;padding:.5rem}.years-container{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;margin-bottom:.5rem}.year-row{display:flex;flex-direction:column;border:none;width:100%;margin-bottom:.25rem}.year-header{background-color:transparent;color:#fff;font-size:.7rem;font-weight:600;text-align:center;padding:.2rem}.terms-grid{display:flex;flex-direction:column}.term-row{display:flex;flex-direction:column;margin-bottom:.15rem}.term-cell{border:none;padding:.05rem;min-height:20px;background-color:transparent;position:relative;overflow:hidden;margin-bottom:.05rem;transition:all .3s ease}.highlighted-course{border:none;background-color:transparent;transform:none;z-index:auto;box-shadow:none}.term-label{position:absolute;bottom:0;right:0;font-size:.4rem;color:#00000080;font-weight:700}.course-code{font-weight:700;margin-bottom:.05rem;font-size:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-placeholder{font-weight:700;font-size:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.elective-dropdown{width:100%;padding:.05rem;margin-bottom:.05rem;border:none;border-radius:.25rem;background-color:var(--accent-color);color:#fff;font-size:.8rem;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;cursor:pointer}.elective-dropdown:focus{outline:2px solid var(--accent-color);border-color:var(--accent-color)}.course-terms{font-size:.45rem;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.free-elective{background-color:#7dcea0}.prescribed-elective{background-color:#a8c7e9}.general-education{background-color:#ccc}.empty-cell{background-color:#fff}.notes-section,.notes-header,.notes-content,.notes-row{display:none}.term-cell.has-dropdown{padding:0;overflow:hidden;background-color:transparent}.term-cell.has-dropdown .elective-dropdown{width:100%;height:100%;padding:.1rem;margin:0;border:none;border-radius:.25rem;background-color:var(--accent-color);color:#fff;font-size:.45rem;position:absolute;top:0;left:0;right:0;bottom:0;z-index:10;opacity:1}.term-cell.has-dropdown .course-code,.term-cell.has-dropdown .course-terms{position:relative;z-index:5;pointer-events:none;padding:.25rem}.term-year-container{padding:5px}.year-row{margin-bottom:15px}.year-header{font-weight:700;margin-bottom:5px;padding-bottom:3px;border-bottom:1px solid var(--border-color);color:var(--accent-color);font-size:.8rem}.terms-grid{display:flex;flex-direction:column;gap:5px}.term-row{display:flex;flex-direction:column;gap:3px}.term-header{font-size:.7rem;font-weight:700;margin-bottom:.2rem;color:var(--text-secondary)}.term-cell{background-color:var(--bg-secondary);border-radius:3px;padding:5px;font-size:.75rem;cursor:pointer;position:relative;transition:background-color .2s}.term-cell:hover{background-color:var(--bg-hover)}.course-placeholder{font-weight:500;font-size:.75rem}.highlighted-course{background-color:inherit;color:inherit}.highlighted-course:hover{background-color:var(--bg-hover)}.term-cell.has-dropdown{padding-right:24px;position:relative}.term-cell.has-dropdown:after{content:"▼";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:8px;color:var(--text-secondary)}.course-dropdown{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2}.course-dropdown:focus+.course-placeholder,.course-dropdown:hover+.course-placeholder{text-decoration:underline}#status-bar{position:fixed;bottom:0;left:0;right:0;background-color:var(--bg-secondary);border-top:1px solid var(--border-color);height:25px;display:flex;align-items:center;padding:0 1rem;font-size:.7rem;color:var(--text-secondary);z-index:1000}.status-bar-left{display:flex;align-items:center;margin-right:1rem}.status-bar-button{background:none;border:none;color:var(--text-secondary);padding:0;margin-right:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.status-bar-icon{width:14px;height:14px}#status-message{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#app-version{margin-left:1rem;opacity:.7;font-weight:600}.account-button{background:none;border:none;color:var(--text-secondary);padding:0;margin-left:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center}#global-loader{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000b3;z-index:2000;display:flex;flex-direction:column;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .3s ease-in-out}#global-loader.hidden{opacity:0;pointer-events:none;visibility:hidden}.loader-content{display:flex;flex-direction:column;align-items:center;gap:20px;background-color:var(--bg-secondary, #1f2937);padding:30px 50px;border-radius:12px;box-shadow:0 10px 25px #00000080;border:1px solid var(--border-color, #374151)}.loader-spinner{width:50px;height:50px;border:4px solid var(--text-secondary, #9ca3af);border-top:4px solid var(--accent-color, #818cf8);border-radius:50%;animation:spin 1s linear infinite}.loader-text{color:var(--text-primary, #f3f4f6);font-size:1.1rem;font-weight:500;text-align:center}.loader-subtext{color:var(--text-secondary, #9ca3af);font-size:.9rem;margin-top:-10px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#toast-container{display:none}.driver-popover{background-color:#121214!important;color:#e2e8f0!important;border:1px solid #27272A!important;border-radius:12px!important;box-shadow:0 0 20px #00000080,0 0 0 1px #ffffff0d!important;padding:20px!important;max-width:350px!important}.driver-popover-title{font-family:Inter,sans-serif!important;font-size:1.1rem!important;font-weight:700!important;color:#fff!important;margin-bottom:8px!important}.driver-popover-description{font-family:Inter,sans-serif!important;font-size:.9rem!important;font-weight:400!important;color:#94a3b8!important;line-height:1.5!important;margin-bottom:20px!important}.driver-popover-footer{display:flex!important;justify-content:flex-end!important;gap:8px!important;margin-top:10px!important}.driver-popover-next-btn,.driver-popover-prev-btn,.driver-popover-close-btn{font-family:Inter,sans-serif!important;font-size:.8rem!important;font-weight:500!important;padding:6px 16px!important;border-radius:6px!important;border:none!important;cursor:pointer!important;transition:all .2s ease!important;text-shadow:none!important}.driver-popover-next-btn{background-color:#9d50ff!important;color:#fff!important;box-shadow:0 4px 12px #9d50ff4d!important}.driver-popover-next-btn:hover{background-color:#a968ff!important;transform:translateY(-1px)!important}.driver-popover-prev-btn,.driver-popover-close-btn{background-color:transparent!important;color:#94a3b8!important;border:1px solid #3F3F46!important}.driver-popover-prev-btn:hover,.driver-popover-close-btn:hover{color:#fff!important;border-color:#52525b!important;background-color:#ffffff0d!important}.driver-overlay path{fill:#000!important;fill-opacity:.85!important}.driver-popover-progress-text{color:#52525b!important;font-size:.75rem!important}
