.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{--background-color: #121212;--card-color: #1E1E1E;--text-color: #EAEAEA;--primary-text-color: #FFFFFF;--border-color: #333333;--primary-accent: #007BFF;--primary-accent-hover: #0056b3;--danger-accent: #dc3545;--danger-accent-hover: #c82333;--success-accent: #28a745;--font-family: "Poppins", sans-serif;--icon-button-bg: rgba(255, 255, 255, .1);--icon-button-bg-hover: rgba(255, 255, 255, .2)}body.light-mode{--background-color: #f4f7f9;--card-color: #ffffff;--text-color: #4a4a4a;--primary-text-color: #121212;--border-color: #e1e1e1;--icon-button-bg: rgba(0, 0, 0, .05);--icon-button-bg-hover: rgba(0, 0, 0, .1)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background-color:var(--background-color);color:var(--text-color);font-family:var(--font-family);overflow-x:hidden;transition:background-color .3s ease,color .3s ease}#root{display:flex;flex-direction:column;min-height:100vh;width:100%;align-items:center;justify-content:flex-start;padding-top:0}.container{width:100%;max-width:1200px;padding:2rem;margin:0 auto}.login-screen{display:flex;align-items:center;justify-content:center;width:100%;min-height:100vh;padding:1rem;background:var(--background-color);background-image:radial-gradient(circle at center,#2a2a3a 0%,var(--background-color) 70%);position:relative;overflow:hidden;transition:background-image .3s ease}.login-screen .theme-switch{position:absolute;top:2rem;right:2rem;z-index:2}.login-card{background:#1e1e1ea6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:3rem;border-radius:16px;border:1px solid rgba(255,255,255,.1);box-shadow:0 15px 35px #00000059;width:100%;max-width:420px;text-align:center;animation:fadeInSlideUp .6s ease-out forwards;transition:background-color .3s ease,border-color .3s ease}.login-card h1{font-size:3.2rem;font-weight:700;color:var(--primary-text-color);margin-bottom:.5rem;text-shadow:0 2px 10px rgba(0,0,0,.2)}.login-card h1 span{color:var(--primary-accent)}.login-card p{margin-bottom:2rem;font-size:1.1rem;color:var(--text-color);opacity:.9}.form-group{margin-bottom:1.5rem;text-align:left}.input,.select-input{width:100%;padding:.85rem 1rem;background-color:#0003;border:1px solid var(--border-color);border-radius:8px;color:var(--primary-text-color);font-size:1rem;font-family:var(--font-family);transition:all .3s ease}.input:focus,.select-input:focus{outline:none;border-color:var(--primary-accent);box-shadow:0 0 0 3px #007bff40}.select-input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23AAAAAA' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 1rem center;background-size:1em}.btn{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease-in-out;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn:disabled{cursor:not-allowed;opacity:.6}.btn svg{width:18px;height:18px}.btn-primary{background-color:var(--primary-accent);color:var(--primary-text-color)}.btn-primary:not(:disabled):hover{background-color:var(--primary-accent-hover);transform:translateY(-2px);box-shadow:0 4px 15px #007bff33}.btn-secondary{background-color:var(--card-color);color:var(--primary-text-color);border:1px solid var(--border-color)}.btn-secondary:hover{background-color:var(--background-color)}.btn-danger{background-color:var(--danger-accent);color:#fff}.btn-danger:hover{background-color:var(--danger-accent-hover)}.btn.btn-sm{padding:.25rem .75rem;font-size:.8rem;font-weight:500}.main-header{width:100%;max-width:1200px;margin:0 auto;padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.breadcrumbs{display:flex;align-items:center;gap:.5rem}.breadcrumb-item{background:none;border:none;color:var(--text-color);font-family:var(--font-family);font-size:1rem;cursor:pointer;transition:color .2s}.breadcrumb-item:hover:not(:disabled){color:var(--primary-accent)}.breadcrumb-item.active{color:var(--primary-text-color);font-weight:500;cursor:default}.breadcrumb-separator{color:var(--text-color);opacity:.5}.dashboard{width:100%;animation:fadeIn .5s ease-in-out}.dashboard-header{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;margin-bottom:2rem}.dashboard-header h1{font-size:2.5rem;color:var(--primary-text-color)}.header-actions{display:flex;align-items:center;gap:1rem}.dashboard-main-actions{display:flex;gap:1rem}.subject-card{border-radius:12px;padding:1.5rem;min-height:150px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out;cursor:pointer;border:1px solid var(--border-color);position:relative}.subject-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0006}.subject-card h3{font-size:1.75rem;font-weight:600;padding-right:60px}.subject-card-progress{margin-top:1rem}.subject-card-progress p{font-size:.9rem;opacity:.8}.progress-bar{height:6px;background-color:#fff3;border-radius:3px;margin-top:.5rem;overflow:hidden}.progress-bar-inner{height:100%;background-color:#fff;border-radius:3px;transition:width .3s ease}.card-actions{position:absolute;top:1rem;right:1rem;display:flex;gap:.5rem}.icon-btn{background-color:var(--icon-button-bg);color:var(--primary-text-color);border:none;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s}.icon-btn:hover{background-color:var(--icon-button-bg-hover)}.icon-btn svg{width:18px;height:18px}.summary-list-view{animation:fadeIn .5s ease-in-out}.summary-list{list-style:none}.summary-list-item{background-color:var(--card-color);padding:1.25rem 1.5rem;border-radius:8px;margin-bottom:1rem;transition:background-color .2s ease;border:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;gap:1rem}.summary-list-item-title{flex-grow:1;cursor:pointer;display:flex;align-items:center;gap:.75rem}.summary-list-item-title:hover{color:var(--primary-accent)}.completion-check svg{color:var(--success-accent);width:20px;height:20px}.summary-list-item-actions{display:flex;gap:.5rem;flex-shrink:0}.empty-state{text-align:center;padding:4rem 2rem;background-color:var(--card-color);border:1px dashed var(--border-color);border-radius:12px}.empty-state h2{color:var(--primary-text-color);margin-bottom:.5rem}.empty-state p{margin-bottom:1.5rem}.empty-state-actions{display:flex;justify-content:center;gap:1rem}.summary-detail-layout{width:100%;max-width:1200px;display:flex;gap:2rem;align-items:flex-start;padding:0 2rem}.summary-detail-view{animation:fadeIn .5s ease-in-out;flex-grow:1;min-width:0}.summary-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.summary-detail-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:1rem}.summary-detail-title{font-size:2.5rem;font-weight:700;color:var(--primary-text-color);line-height:1.3;flex-grow:1}.tabs-nav{display:flex;border-bottom:2px solid var(--border-color);margin-bottom:2rem}.tab-button{background:none;border:none;color:var(--text-color);padding:1rem 1.5rem;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;border-bottom:3px solid transparent;margin-bottom:-2px}.tab-button:hover{background-color:var(--icon-button-bg)}.tab-button.active{color:var(--primary-accent);border-bottom-color:var(--primary-accent)}.tab-content{animation:fadeIn .4s;background-color:var(--card-color);border:1px solid var(--border-color);border-radius:12px;padding:2rem}#tab-panel-summary{padding:0;background:none;border:none}.youtube-player-container{position:relative;width:100%;padding-bottom:56.25%;height:0;border-radius:12px;overflow:hidden;background-color:#000}.youtube-player-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.spotify-player-container{border-radius:12px;overflow:hidden}.spotify-player-container iframe{width:100%;height:152px;border:none}.summary-content{max-width:100%}.summary-content h1{display:none}.summary-content h2{font-size:1.8rem;margin-top:2rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.summary-content h3{font-size:1.4rem;margin-top:1.5rem;margin-bottom:.75rem}.summary-content p{line-height:1.8;margin-bottom:1rem}.summary-content strong{font-weight:600}.summary-content ul,.summary-content ol{list-style-position:inside;padding-left:1rem;margin-bottom:1rem}.summary-content li{margin-bottom:.5rem;line-height:1.7}.summary-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.95rem}.summary-content th,.summary-content td{border:1px solid var(--border-color);padding:.75rem;text-align:left}.summary-content th{background-color:var(--background-color);font-weight:600}.summary-content tr:nth-child(2n){background-color:#ffffff08}.toc-container{position:sticky;top:2rem;width:250px;flex-shrink:0;padding:1.5rem;background-color:var(--card-color);border-radius:8px;border:1px solid var(--border-color)}.toc-container h4{margin-bottom:1rem;color:var(--primary-text-color)}.toc-container ul{list-style:none;max-height:70vh;overflow-y:auto}.toc-container li a{text-decoration:none;color:var(--text-color);display:block;padding:.4rem 0;transition:color .2s;font-size:.9rem}.toc-container li a:hover{color:var(--primary-accent)}.toc-container .toc-level-2{padding-left:1rem}.quiz-container{margin-top:0;padding-top:0;border-top:none}.empty-quiz{text-align:center}.empty-quiz p{margin-bottom:1rem}.quiz-container h2{font-size:1.8rem;margin-bottom:2rem;color:var(--primary-text-color)}.question-block{margin-bottom:2.5rem}.question-text{font-size:1.1rem;font-weight:500;margin-bottom:1rem;line-height:1.6}.alternatives-list{display:flex;flex-direction:column;gap:.75rem}.alternative-item{width:100%;padding:.75rem 1rem;font-family:var(--font-family);font-size:1rem;text-align:left;background-color:var(--background-color);color:var(--text-color);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s ease}.alternative-item:not(:disabled):hover{border-color:var(--primary-accent);color:var(--primary-accent)}.alternative-item:disabled{cursor:default;opacity:.7}.alternative-item.correct{background-color:var(--success-accent);border-color:var(--success-accent);color:#fff;opacity:1}.alternative-item.incorrect{background-color:var(--danger-accent);border-color:var(--danger-accent);color:#fff;opacity:1}.explanation-box{margin-top:1rem;padding:1rem;background-color:var(--background-color);border:1px solid var(--border-color);border-left:4px solid var(--primary-accent);border-radius:8px;font-size:.95rem;line-height:1.7}.loader-sm{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--primary-accent);border-radius:50%;animation:spin .8s linear infinite}.file-upload-info{display:flex;align-items:center;justify-content:space-between;background-color:var(--background-color);padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;gap:1rem}.file-name{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.input[type=file]{padding:.5rem;font-size:.9rem}.input[type=file]::-webkit-file-upload-button{border-radius:4px;cursor:pointer;font-family:var(--font-family);font-weight:500;padding:.5rem 1rem;transition:background-color .2s;margin-right:1rem;border:1px solid var(--border-color);background:var(--card-color);color:var(--text-color)}.input[type=file]::-webkit-file-upload-button:hover{background-color:var(--background-color)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s}.modal-content{background:var(--card-color);padding:2rem;border-radius:12px;width:90%;max-width:600px;box-shadow:0 5px 15px #00000080}.modal-content.large{max-width:800px}.modal-content h2{margin-bottom:1.5rem;color:var(--primary-text-color);text-align:left}.modal-content p{margin-bottom:1.5rem}.modal-content textarea{width:100%;min-height:250px;padding:.75rem 1rem;background-color:var(--background-color);border:1px solid var(--border-color);border-radius:8px;color:var(--primary-text-color);font-size:1rem;font-family:var(--font-family);resize:vertical}.modal-actions{margin-top:1.5rem;display:flex;justify-content:flex-end;gap:1rem}.editor-container{border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.editor-toolbar{display:flex;gap:.25rem;background-color:var(--background-color);padding:.5rem;border-bottom:1px solid var(--border-color)}.editor-toolbar button{background:var(--card-color);border:1px solid var(--border-color);color:var(--text-color);font-family:var(--font-family);border-radius:4px;cursor:pointer;padding:.25rem .75rem}.editor-toolbar button:hover{background-color:var(--background-color)}.editor-container textarea{border:none;border-radius:0;min-height:300px}.search-bar-container{position:relative;margin-bottom:2.5rem}.search-bar-container svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--text-color);opacity:.5}.search-input{width:100%;padding:1rem 1rem 1rem 3.5rem;font-size:1.1rem;background-color:var(--card-color);border:1px solid var(--border-color);border-radius:12px;color:var(--primary-text-color);font-family:var(--font-family)}.search-results h2,.search-results h3{margin-bottom:1rem;color:var(--primary-text-color)}.search-results h3{font-size:1.2rem;margin-top:2rem}.summary-list-item-subject{font-size:.9rem;color:var(--text-color);opacity:.7}.last-viewed-section{margin-bottom:2.5rem}.last-viewed-section h2{margin-bottom:1rem;color:var(--primary-text-color)}.last-viewed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.last-viewed-card{background-color:var(--card-color);border:1px solid var(--border-color);padding:1.25rem;border-radius:8px;cursor:pointer;transition:all .2s}.last-viewed-card:hover{transform:translateY(-3px);border-color:var(--primary-accent)}.last-viewed-card h4{color:var(--primary-text-color);margin-bottom:.25rem}.last-viewed-card p{font-size:.9rem;opacity:.7}.streak-display{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--card-color);border-radius:20px;font-weight:500;color:var(--primary-text-color);border:1px solid var(--border-color)}.loader-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.loader{border:4px solid var(--border-color);border-top:4px solid var(--primary-accent);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}.theme-switch{display:flex;align-items:center;gap:.5rem;color:var(--text-color)}.theme-switch-wrapper{display:inline-block;height:24px;position:relative;width:44px}.theme-switch-wrapper input{display:none}.slider{background-color:#444;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.4s;border-radius:24px}.slider:before{background-color:#fff;bottom:4px;content:"";height:16px;left:4px;position:absolute;transition:.4s;width:16px;border-radius:50%}input:checked+.slider{background-color:var(--primary-accent)}input:checked+.slider:before{transform:translate(20px)}@keyframes fadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@media (max-width: 992px){.toc-container{display:none}.summary-detail-layout{flex-direction:column;padding:0 1rem}}@media (max-width: 768px){.container{padding:1rem}.main-header{padding:1rem;flex-direction:column;align-items:flex-start}.summary-header{flex-direction:column;align-items:flex-start}.tabs-nav{flex-wrap:wrap}}@keyframes fadeInSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-card form{margin-bottom:0}.login-card .btn-primary{width:100%;margin-top:1rem}body.light-mode .login-screen{background-image:radial-gradient(circle at center,#e0e8f0 0%,var(--background-color) 70%)}body.light-mode .login-card{background:var(--card-color);backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid var(--border-color);box-shadow:0 10px 30px #0000001a}body.light-mode .login-card .input,body.light-mode .login-card .select-input{background-color:var(--background-color);border-color:#d1d9e6}body.light-mode .login-card .input:focus,body.light-mode .login-card .select-input:focus{border-color:var(--primary-accent);box-shadow:0 0 0 3px #007bff26}.loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:var(--background-color);z-index:9999;gap:1.5rem}.loader-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.loader{border:4px solid var(--border-color);border-top:4px solid var(--primary-accent);border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}.loading-overlay p{font-size:1.1rem;color:var(--text-color);opacity:.8}.spinner-sm{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:spin .75s linear infinite}@media (max-width: 768px){.container,.main-header{padding-left:1rem;padding-right:1rem}.login-card{padding:2rem;margin:0 1rem}.dashboard-header{flex-direction:column;align-items:flex-start;gap:1.5rem}.dashboard-header h1{font-size:2rem}.subject-grid{grid-template-columns:1fr;gap:1rem}.summary-list-item{flex-direction:column;align-items:flex-start;gap:.75rem}.summary-detail-layout{flex-direction:column}.toc-container{display:none}.summary-detail-title{font-size:1.8rem}.summary-header{flex-direction:column;align-items:flex-start}.summary-detail-actions{width:100%;justify-content:flex-start}.tabs-nav{flex-wrap:wrap}.tab-content{padding:1.5rem}}@media (max-width: 480px){.header-actions{flex-direction:column;align-items:flex-start;width:100%;gap:.75rem}.modal-content{padding:1.5rem}.modal-actions{flex-direction:column;gap:.5rem}.modal-actions>div{display:flex;gap:.5rem;width:100%}.modal-actions .btn{flex-grow:1}}@media (max-width: 768px){.container{padding:1rem}.main-header{flex-wrap:wrap;gap:10px;padding:.75rem 1rem}.login-card{width:95%;padding:1.5rem}.dashboard-header{flex-direction:column;align-items:flex-start;gap:1rem}.dashboard-header .header-actions{width:100%;justify-content:space-between}.subject-grid,.last-viewed-grid{grid-template-columns:1fr;gap:1rem}.summary-detail-layout{grid-template-columns:1fr}.toc-container{display:none}.summary-header{flex-direction:column;align-items:flex-start;gap:1rem}.summary-detail-actions{flex-wrap:wrap;gap:.5rem}.tabs-nav{overflow-x:auto;padding-bottom:10px;white-space:nowrap}.modal-content,.modal-content.large{width:95vw;max-height:85vh;padding:1.5rem 1rem}.modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem}h1,.summary-detail-title{font-size:1.8rem}h2{font-size:1.5rem}h3{font-size:1.2rem}.btn{padding:.6rem 1rem}}.tab-content{flex-grow:1;overflow-y:auto;overflow-x:auto;padding:1.5rem}.summary-content{max-width:100%;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.summary-content img{max-width:100%;height:auto;display:block}.summary-content pre{overflow-x:auto;background-color:var(--card-bg);padding:1rem;border-radius:8px;white-space:pre}.hamburger-btn{display:none;background:none;border:none;padding:.5rem;cursor:pointer;z-index:1001}.hamburger-btn svg{stroke:var(--text-color)}.sidebar-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1002;opacity:0;visibility:hidden;transition:opacity .3s ease-in-out,visibility .3s ease-in-out}.sidebar-overlay.open{opacity:1;visibility:visible}.sidebar{position:fixed;top:0;left:0;height:100%;width:300px;max-width:85%;background-color:var(--card-bg);box-shadow:2px 0 10px #0000001a;z-index:1003;transform:translate(-100%);transition:transform .3s ease-in-out;display:flex;flex-direction:column}.sidebar.open{transform:translate(0)}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color)}.sidebar-header h3{margin:0;font-size:1.2rem}.sidebar-header .close-btn{background:none;border:none;font-size:2rem;font-weight:300;color:var(--text-color);cursor:pointer;padding:0 .5rem}.sidebar-content{flex-grow:1;overflow-y:auto;padding:1rem}.summary-header{display:flex;align-items:center;width:100%;margin-bottom:1.5rem}.toc-toggle-btn,.summary-detail-title{margin-right:1rem}.summary-detail-actions{margin-left:auto;display:flex;gap:.5rem}.icon-btn{background:transparent;border:none;cursor:pointer;padding:.5rem;border-radius:50%;color:var(--text-secondary);display:inline-flex;align-items:center;justify-content:center;transition:background-color .2s,color .2s}.icon-btn:hover{background-color:var(--background-modifier-hover);color:var(--text-primary)}.quiz-question ul{list-style:none;padding:0;margin:1rem 0}.quiz-question li{padding:12px 16px;margin-bottom:8px;border:1px solid var(--border-color, #ccc);border-radius:8px;cursor:pointer;transition:background .2s ease,transform .1s ease}.quiz-question li:hover{background:var(--hover-color, #f5f5f5);transform:scale(1.02)}.quiz-question li.selected{border:2px solid #007bff;background:#eaf2ff}.quiz-question li.correct{border:2px solid #28a745;background:#e6f9ec;color:#155724;font-weight:700}.quiz-question li.incorrect{border:2px solid #dc3545;background:#fdeaea;color:#721c24;font-weight:700}.feedback{margin-top:1rem;padding:12px;border-radius:8px;background:#f8f9fa}.feedback .correct{color:#28a745;font-weight:700}.feedback .incorrect{color:#dc3545;font-weight:700}.hidden{display:none}.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}@media (max-width: 768px){.subject-grid{grid-template-columns:1fr}.dashboard-header{flex-direction:column;align-items:flex-start;gap:1rem}.dashboard-header .header-actions{width:100%;justify-content:flex-end}.add-subject-button-container{justify-content:center}}.flashcard-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;gap:2.5rem}.flashcard-progress{font-size:1rem;color:var(--text-muted);font-weight:500}.flashcard{width:100%;max-width:550px;height:300px;background-color:transparent;border:none;cursor:pointer;perspective:1200px;flex-shrink:0}.flashcard-inner{position:relative;width:100%;height:100%;transition:transform .6s;transform-style:preserve-3d;border-radius:16px;box-shadow:0 10px 25px #0003}.flashcard.is-flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-front,.flashcard-back{position:absolute;width:100%;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;padding:2rem;border-radius:16px;text-align:center;line-height:1.5;font-weight:500;overflow:auto}.flashcard-front{background-color:var(--surface-color);color:var(--text-color);border:1px solid var(--border-color);font-size:1.4rem}.flashcard-back{background:linear-gradient(45deg,#007bff,#0056b3);color:#fff;transform:rotateY(180deg);font-size:1.2rem;font-weight:400}.flashcard-actions{display:flex;gap:1.5rem;width:100%;max-width:550px;justify-content:center;padding-bottom:1rem}.btn-action-dont-know,.btn-action-know{flex-basis:200px;padding:1rem;font-size:1rem;font-weight:600;border-radius:12px;border:2px solid transparent;transition:all .2s ease-in-out}.btn-action-dont-know:hover,.btn-action-know:hover{transform:translateY(-3px);box-shadow:0 4px 10px #0003}.btn-action-dont-know{background-color:#ff4d4d;color:#fff}.btn-action-know{background-color:#28a745;color:#fff}.finished-deck{justify-content:center;text-align:center}:root{--chatbot-primary-color: #007aff;--chatbot-primary-text-color: #ffffff;--chatbot-bubble-ai-bg: #262626}body.light-mode{--chatbot-bubble-ai-bg: #e5e5ea}.chatbot-fab{position:fixed;bottom:25px;right:25px;background-color:var(--chatbot-primary-color);color:var(--chatbot-primary-text-color);border-radius:50px;border:none;padding:14px 22px;display:flex;align-items:center;gap:10px;font-size:1rem;font-weight:500;cursor:pointer;box-shadow:0 6px 18px #0003;transition:transform .2s ease,box-shadow .2s ease;z-index:1000}.chatbot-fab:hover{transform:scale(1.05);box-shadow:0 8px 24px #00000040}.chatbot-fab svg{width:24px;height:24px}.chatbot-widget{position:fixed;bottom:25px;right:25px;width:420px;max-width:90vw;height:65vh;max-height:700px;background-color:var(--card-color);border:1px solid var(--border-color);border-radius:18px;box-shadow:0 10px 30px #0003;display:flex;flex-direction:column;overflow:hidden;z-index:1000;transform-origin:bottom right;animation:scale-up .3s ease-out}@keyframes scale-up{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.chatbot-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background-color:var(--chatbot-primary-color);color:var(--chatbot-primary-text-color);flex-shrink:0}.chatbot-header h3{margin:0;font-size:1.1rem;font-weight:600}.chatbot-header .icon-btn{background-color:transparent;color:var(--chatbot-primary-text-color)}.chatbot-header .icon-btn:hover{background-color:#ffffff26}.chatbot-messages{flex-grow:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:12px;background-color:var(--background-color)}.message-bubble{padding:12px 18px;border-radius:20px;max-width:85%;word-wrap:break-word;font-size:.95rem;line-height:1.5}.message-bubble.user{background-color:var(--chatbot-primary-color);color:var(--chatbot-primary-text-color);align-self:flex-end;border-bottom-right-radius:6px}.message-bubble.ai{background-color:var(--chatbot-bubble-ai-bg);color:var(--text-color);align-self:flex-start;border-bottom-left-radius:6px}.chatbot-input-area{display:flex;align-items:center;padding:.75rem 1rem;border-top:1px solid var(--border-color);gap:8px;background-color:var(--card-color)}.chatbot-input-area textarea{flex-grow:1;border:1px solid var(--border-color);background-color:var(--background-color);color:var(--text-color);resize:none;max-height:100px;padding:10px;font-family:inherit;font-size:1rem;border-radius:10px}.chatbot-input-area textarea:focus{outline:none;border-color:var(--primary-accent)}.chatbot-input-area .icon-btn{color:var(--text-color)}.chatbot-input-area .icon-btn:hover{color:var(--primary-accent)}.chatbot-input-area .icon-btn.listening{color:var(--danger-accent);animation:pulse 1.5s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.message-bubble.ai .loader-sm{border-color:var(--text-color);border-top-color:transparent}.message-bubble.ai .typing-indicator{display:flex;align-items:center;padding:8px 0}.typing-indicator span{height:8px;width:8px;background-color:var(--text-color);opacity:.5;border-radius:50%;display:inline-block;margin:0 2px;animation:blink 1.4s infinite both}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes blink{0%{opacity:.2;transform:scale(1)}20%{opacity:1;transform:scale(1.1)}to{opacity:.2;transform:scale(1)}}.loader-container.full-chat{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%;box-sizing:border-box}.reactflow-wrapper{width:100%;height:600px;border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--background-secondary)}.tabs-nav{display:flex;border-bottom:1px solid var(--border-color);margin-bottom:1.5rem}.tab-button{padding:.75rem 1.5rem;cursor:pointer;background-color:transparent;border:none;color:var(--text-secondary);font-size:1rem;font-weight:500;border-bottom:3px solid transparent;transition:all .2s ease-in-out}.tab-button.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.tab-button:hover:not(.active){color:var(--text-primary);background-color:var(--background-hover)}.tab-content .hidden{display:none}.summary-detail-layout{display:flex;gap:1.5rem;align-items:flex-start}.summary-detail-view{flex-grow:1;min-width:0}.toc-toggle-btn{margin-right:1rem;color:var(--text-secondary)}.toc-toggle-btn:hover{color:var(--primary-color)}:root{--primary-color: #007BFF;--primary-hover: #0056b3;--secondary-bg: #343a40;--bg-color: #1a1a1a;--bg-color-light: #2c2c2c;--bg-color-darker: #121212;--text-color: #f8f9fa;--text-color-muted: #adb5bd;--border-color: #495057;--danger-accent: #e53e3e;--success-accent: #38a169}body.light-mode{--secondary-bg: #e9ecef;--bg-color: #ffffff;--bg-color-light: #f8f9fa;--bg-color-darker: #e9ecef;--text-color: #212529;--text-color-muted: #6c757d;--border-color: #dee2e6}.loader-container{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:#000000b3;z-index:9999;flex-direction:column;gap:1rem;color:var(--text-color)}.loader{border:5px solid #f3f3f3;border-top:5px solid var(--primary-color);border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}.loader-sm{border:3px solid #f3f3f3;border-top:3px solid var(--primary-color);border-radius:50%;width:20px;height:20px;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-screen{display:flex;justify-content:center;align-items:center;min-height:100vh;width:100%;background-color:var(--bg-color-darker);padding:1rem}.login-card{background-color:var(--bg-color);padding:2rem 2.5rem;border-radius:12px;box-shadow:0 10px 30px #0003;width:100%;max-width:400px;text-align:center;border:1px solid var(--border-color)}.login-card h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;color:var(--text-color)}.login-card h1 span{color:var(--primary-color)}.login-card h2{font-size:1.5rem;margin-bottom:.75rem;color:var(--text-color)}.login-card p{color:var(--text-color-muted);margin-bottom:2rem;line-height:1.5}.form-group{text-align:left;margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-color)}.input,.select-input{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color);background-color:var(--bg-color-light);color:var(--text-color);border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.input:focus,.select-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #007bff40}.btn{padding:.75rem 1.5rem;border-radius:8px;border:none;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s;width:100%}.btn:hover{transform:translateY(-2px)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary-bg);color:var(--text-color)}.btn-secondary:hover{background-color:var(--border-color)}.error-message{color:var(--danger-accent);background-color:#e53e3e1a;padding:.75rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem;text-align:center}.toggle-auth-btn{background:none;border:none;color:var(--primary-color);cursor:pointer;padding:.5rem;margin-top:1.5rem;font-size:.9rem}.toggle-auth-btn:hover{text-decoration:underline}.container{padding:2rem}.batch-loader{display:flex;align-items:center;gap:10px;padding:.5rem 1rem;background-color:var(--secondary-bg);border-radius:8px}.add-subject-button-container{margin-bottom:2rem;display:flex;justify-content:flex-start}.summary-content h2,.summary-content h3{background-color:var(--subject-color);color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.25);padding:8px 16px;margin-top:2rem;margin-bottom:1.5rem;border-radius:8px;display:inline-block;max-width:fit-content;font-size:1.4rem}.summary-content h3{padding:6px 14px;font-size:1em}.admin-panel{padding:2rem;max-width:1200px;margin:0 auto;animation:fadeIn .5s ease-in-out}.admin-section{background-color:var(--card-bg);padding:1.5rem 2rem;border-radius:12px;margin-bottom:2rem;box-shadow:0 4px 12px #0000000d;border:1px solid var(--border-color)}.light-mode .admin-section{box-shadow:0 4px 12px #00000014}.admin-section h2{font-size:1.5rem;color:var(--text-primary);margin-top:0;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.admin-table{width:100%;border-collapse:collapse;text-align:left;font-size:.95rem}.admin-table thead{background-color:var(--background)}.admin-table th,.admin-table td{padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.admin-table th{font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.8rem;letter-spacing:.5px}.admin-table tbody tr{transition:background-color .2s ease}.admin-table tbody tr:hover{background-color:var(--hover-bg)}.status-badge{padding:.25rem .6rem;border-radius:12px;font-weight:600;font-size:.8rem;text-transform:capitalize;display:inline-block;border:1px solid transparent}.status-active{background-color:#27ae6026;color:#27ae60;border-color:#27ae604d}.status-pending_approval{background-color:#f39c1226;color:#f39c12;border-color:#f39c124d}.status-blocked{background-color:#e74c3c26;color:#e74c3c;border-color:#e74c3c4d}.user-actions{display:flex;gap:.5rem;align-items:center}.btn-sm{padding:.3rem .8rem;font-size:.85rem;border-radius:6px;border:none;cursor:pointer;font-weight:500;transition:all .2s ease}.btn-sm:hover{transform:translateY(-1px);opacity:.9}.btn-success{background-color:#27ae60;color:#fff}.btn-danger{background-color:#e74c3c;color:#fff}.btn-secondary{background-color:#7f8c8d;color:#fff}.usage-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stat-card{background-color:var(--background);padding:1.5rem;border-radius:8px;border:1px solid var(--border-color);text-align:center}.stat-card h4{margin-top:0;margin-bottom:.5rem;color:var(--text-secondary);font-size:1rem;font-weight:500}.stat-card p{margin:0;color:var(--text-primary);font-size:2.25rem;font-weight:700}.admin-panel{max-width:1200px;margin:0 auto;padding:2rem;display:flex;flex-direction:column;gap:2.5rem}.admin-section{background-color:var(--surface-color);border-radius:12px;padding:1.5rem 2rem;box-shadow:0 4px 12px #0000001a}.admin-section h2{margin-top:0;margin-bottom:1.5rem;border-bottom:1px solid var(--border-color);padding-bottom:1rem}.admin-tabs{margin-bottom:-1px;border-bottom:1px solid var(--border-color)}.admin-tabs .tab-button{border-radius:8px 8px 0 0;margin-bottom:-1px;border:1px solid transparent;border-bottom:none}.admin-tabs .tab-button.active{background-color:var(--surface-color);border-color:var(--border-color);color:var(--primary-color);font-weight:600}.admin-table{width:100%;border-collapse:collapse;font-size:.95rem}.admin-table thead th{background-color:var(--hover-color);padding:1rem;text-align:left;font-weight:600;color:var(--text-secondary);border-bottom:2px solid var(--border-color)}.admin-table tbody td{padding:1rem;border-bottom:1px solid var(--border-color)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background-color:var(--hover-color)}.status-badge{padding:.3rem .8rem;border-radius:20px;font-weight:600;font-size:.8rem;text-transform:capitalize}.status-badge.status-active{background-color:#28a74526;color:#28a745}.status-badge.status-pending_approval{background-color:#ffc10726;color:#ffc107}.status-badge.status-blocked{background-color:#dc354526;color:#dc3545}.light-mode .status-badge.status-active{background-color:#d4edda;color:#155724}.light-mode .status-badge.status-pending_approval{background-color:#fff3cd;color:#856404}.light-mode .status-badge.status-blocked{background-color:#f8d7da;color:#721c24}.user-actions{display:flex;gap:.5rem}.btn-sm{padding:.4rem .8rem;font-size:.85rem}.btn-success{background-color:#28a745;color:#fff}.btn-danger{background-color:#dc3545;color:#fff}.btn-success:hover{background-color:#218838}.btn-danger:hover{background-color:#c82333}.stat-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background-color:var(--surface-color);padding:1.5rem;border-radius:12px;box-shadow:0 4px 12px #0000001a}.stat-card h4{margin:0 0 .5rem;font-size:1rem;color:var(--text-secondary);font-weight:500}.stat-card p{margin:0;font-size:2.2rem;font-weight:700;color:var(--text-primary)}.costs-input-section{margin-bottom:2rem}.costs-input-section label{display:block;margin-bottom:.5rem;font-weight:500}.costs-input-section .input-group{display:flex;max-width:400px}.costs-input-section .input-group .input{border-top-right-radius:0;border-bottom-right-radius:0;flex-grow:1}.costs-input-section .input-group .btn{border-top-left-radius:0;border-bottom-left-radius:0}.admin-term-selector{padding:1rem 2rem;background-color:var(--surface-color);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:flex-end;gap:1rem}.admin-term-selector label{font-weight:500;color:var(--text-secondary)}.admin-term-selector .select-input{min-width:200px}@media (max-width: 768px){.admin-panel,.admin-section{padding:1rem}.admin-table{display:block;overflow-x:auto;white-space:nowrap}.dashboard-header .header-actions{flex-direction:column;align-items:flex-end;gap:.5rem}.stat-cards-grid{grid-template-columns:1fr}}.dashboard-global-actions{display:flex;justify-content:flex-end;align-items:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.color-selector{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.color-swatch{width:30px;height:30px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .2s ease,border-color .2s ease}.color-swatch:hover{transform:scale(1.1)}.color-swatch.selected{border-color:var(--primary-color);transform:scale(1.15);box-shadow:0 0 5px var(--primary-color)}.integrator-week-view{padding-bottom:4rem}.integrator-form{background-color:var(--card-background);border-radius:12px;padding:2rem;margin-top:2rem;border:1px solid var(--border-color);box-shadow:0 4px 12px #0000000d}.integrator-form h2{margin-top:0;margin-bottom:.5rem;color:var(--text-color)}.integrator-form p{margin-bottom:2rem;color:var(--text-secondary-color);font-size:1rem;line-height:1.6}.question-input-group{display:grid;grid-template-columns:1fr auto auto;gap:1rem;align-items:center;margin-bottom:1rem;padding:1rem;border-radius:8px;background-color:var(--background-color);border:1px solid var(--border-color)}.question-input-group textarea{min-height:48px;resize:vertical;width:100%;padding:.75rem;line-height:1.5}.question-input-group .select-input{min-width:200px;height:48px}.integrator-actions{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.error-message{color:var(--danger-accent);text-align:center;margin-top:1rem;font-weight:500}.answers-section{margin-top:3rem}.answers-section h2{text-align:center;margin-bottom:2rem;color:var(--text-color)}.answer-card{background-color:var(--card-background);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem 2rem;margin-bottom:1.5rem;box-shadow:0 2px 8px #0000000d;transition:transform .2s ease,box-shadow .2s ease}.answer-card:hover{transform:translateY(-3px);box-shadow:0 4px 12px #00000014}.answer-card h3{margin-top:0;margin-bottom:1rem;font-size:1.25rem;color:var(--primary-color);font-weight:600;line-height:1.4}.answer-content p{color:var(--text-color);line-height:1.7;margin-bottom:1rem}.answer-content p:last-child{margin-bottom:0}.answer-reference{margin-top:1.5rem;padding-top:1rem;border-top:1px dashed var(--border-color)}.answer-reference strong{color:var(--text-secondary-color);font-size:.9rem;display:block;margin-bottom:.5rem}.answer-reference p{font-family:Courier New,Courier,monospace;background-color:var(--background-color);padding:.75rem;border-radius:6px;font-size:.85rem;color:var(--text-secondary-color);white-space:pre-wrap;word-wrap:break-word}@media (max-width: 768px){.integrator-form{padding:1.5rem}.question-input-group{grid-template-columns:1fr}.question-input-group .select-input{min-width:100%}.question-input-group .icon-btn{position:absolute;top:.75rem;right:.75rem}.question-input-group{position:relative;padding-top:3rem}.integrator-actions{flex-direction:column;gap:1rem}.integrator-actions .btn{width:100%;text-align:center}}.fab{position:fixed;bottom:2rem;right:2rem;z-index:1000;display:flex;align-items:center;gap:.75rem;padding:.8rem 1.4rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:50px;font-size:1rem;font-weight:500;cursor:pointer;box-shadow:0 4px 15px #0003;transition:all .2s ease-in-out}.fab svg{width:24px;height:24px}.fab:hover{background-color:var(--primary-hover);box-shadow:0 6px 20px #00000040;transform:translateY(-3px)}.schedules-view .dashboard-header{margin-bottom:2rem}.conversation-list{display:flex;flex-direction:column;gap:1rem}.conversation-item{background-color:var(--card-bg);padding:1rem 1.5rem;border-radius:var(--border-radius-lg);border:1px solid var(--border-color);cursor:pointer;transition:all .2s ease-in-out}.conversation-item:hover{border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.conversation-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem}.conversation-item-user{font-weight:600;color:var(--text-primary)}.conversation-item-summary{font-size:.875rem;color:var(--text-secondary);background-color:var(--background-color);padding:.2rem .6rem;border-radius:50px;white-space:nowrap}.conversation-item-message{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.chat-view{display:flex;flex-direction:column;height:calc(100vh - 80px);max-width:900px;margin:0 auto}.chat-view .dashboard-header{display:flex;align-items:center;gap:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.chat-view .dashboard-header h2{margin:0;font-size:1.25rem;flex-grow:1}.chat-view .dashboard-header span{color:var(--text-secondary)}.chat-messages{flex-grow:1;overflow-y:auto;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:1rem}.chat-message{display:flex;flex-direction:column;max-width:75%;width:fit-content}.chat-message p{margin:0;padding:.75rem 1rem;border-radius:var(--border-radius-lg);line-height:1.5}.chat-message-time{font-size:.75rem;color:var(--text-secondary);margin-top:.25rem}.chat-message.received{align-self:flex-start;align-items:flex-start}.chat-message.received p{background-color:var(--card-bg);border:1px solid var(--border-color);color:var(--text-primary);border-top-left-radius:0}.chat-message.received .chat-message-time{align-self:flex-start;margin-left:.25rem}.chat-message.sent{align-self:flex-end;align-items:flex-end}.chat-message.sent p{background-color:var(--primary-color);color:#fff;border-top-right-radius:0}.chat-message.sent .chat-message-time{align-self:flex-end;margin-right:.25rem}.chat-input-form{display:flex;gap:.5rem;padding:1rem;border-top:1px solid var(--border-color);background-color:var(--background-color)}.chat-input-form .input{flex-grow:1}.flashcard-mode-selection{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:350px;margin-top:1.5rem}.flashcard-mode-selection .btn{padding:1rem;font-size:1.1rem}.annotation-creator-btn{position:absolute;z-index:1050;padding:.5rem 1rem;font-size:.875rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius);box-shadow:0 4px 12px #0003;cursor:pointer;transition:all .2s ease}.annotation-creator-btn:hover{transform:scale(1.05);background-color:var(--primary-hover)}.annotations-panel{width:300px;flex-shrink:0;padding:1.5rem 1rem;background-color:var(--background-color);border-left:1px solid var(--border-color);overflow-y:auto;height:calc(100vh - 80px);position:sticky;top:80px}.annotations-panel h4{margin-top:0;margin-bottom:1.5rem;text-align:center;color:var(--text-primary)}.annotations-panel ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.annotation-item{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:1rem;display:flex;flex-direction:column;gap:.75rem}.highlighted-quote{margin:0;padding:.75rem;font-style:italic;color:var(--text-secondary);border-left:4px solid var(--primary-color);background-color:var(--background-color);border-radius:var(--border-radius);font-size:.9rem}.note-content{margin:0;color:var(--text-primary);line-height:1.6}.annotation-actions{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem}.annotation-date{font-size:.75rem;color:var(--text-secondary)}.empty-annotations{text-align:center;color:var(--text-secondary);font-size:.9rem;padding:1rem}.highlighted-quote-modal{margin-bottom:1rem;padding:1rem;font-style:italic;color:var(--text-secondary);border:1px solid var(--border-color);background-color:var(--background-color);border-radius:var(--border-radius);font-size:.95rem}.summary-view-toggles{display:flex;gap:.5rem}.summary-view-toggles .icon-btn.active{background-color:var(--primary-color);color:#fff}.dashboard-main-actions{margin-bottom:2rem;text-align:center}.dashboard-main-actions .btn{padding:1rem 1.5rem;font-size:1.1rem;display:inline-flex;align-items:center;gap:.75rem}.subjects-checkbox-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;padding:1rem;background-color:var(--background-color);border-radius:var(--border-radius);max-height:300px;overflow-y:auto}.subjects-checkbox-group label{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-radius:var(--border-radius);cursor:pointer;transition:background-color .2s}.subjects-checkbox-group label:hover{background-color:var(--card-bg-hover)}.subjects-checkbox-group input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary-color)}.mock-exam-view,.mock-exam-results{padding:2rem;max-width:800px;margin:auto}.mock-exam-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.mock-exam-header h1{margin:0}.mock-exam-header span{font-size:1rem;color:var(--text-secondary)}.mock-exam-view .alternatives-list .alternative-item.selected{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.mock-exam-footer{margin-top:2rem;text-align:right}.mock-exam-results{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh}.mock-exam-results h2{font-size:2.5rem;margin-bottom:1rem}.final-score{font-size:1.5rem;color:var(--text-primary);margin-bottom:2rem;background-color:var(--card-bg);padding:1rem 2rem;border-radius:var(--border-radius-lg)}.dp-selection-container{max-height:60vh;overflow-y:auto;padding:1rem;border:1px solid var(--border-color);border-radius:8px;margin-top:1rem;background-color:var(--background-color)}.dp-term-group{border:none;border-left:2px solid var(--border-color);padding:1rem 1.5rem;margin-bottom:1.5rem}.dp-term-group:last-child{margin-bottom:0}.dp-term-group legend{padding:0 .5rem;margin-left:-.5rem;font-weight:600;font-size:1.1rem;color:var(--primary-accent)}.subjects-checkbox-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem;margin-top:1rem}.dp-subject-label{display:flex;align-items:center;padding:.75rem;cursor:pointer;border-radius:6px;transition:background-color .2s ease,border-color .2s ease;background-color:var(--card-color);border:1px solid transparent}.dp-subject-label:hover{background-color:var(--icon-button-bg-hover);border-color:var(--border-color)}.dp-subject-label.disabled{cursor:not-allowed;color:var(--text-color);opacity:.6;background-color:transparent;text-decoration:line-through}.dp-subject-label input[type=checkbox]{margin-right:.75rem;width:18px;height:18px;accent-color:var(--primary-accent)}.main-term-indicator{font-size:.75rem;color:var(--text-color);opacity:.7;margin-left:.5rem;font-style:italic}.admin-table .user-actions .btn-secondary{background-color:var(--card-color);color:var(--primary-text-color);border:1px solid var(--border-color)}.admin-table .user-actions .btn-secondary:hover{background-color:var(--background-color)}.annotation-container{position:relative;width:100%}.annotation-canvas{position:absolute;top:0;left:0;width:100%;height:100%;cursor:crosshair}.annotation-toolbar{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);z-index:1010;display:flex;gap:.5rem;padding:.75rem;background-color:var(--card-color);border:1px solid var(--border-color);border-radius:50px;box-shadow:0 4px 20px #00000040;animation:fadeInSlideUp .3s ease-out}.annotation-toolbar .icon-btn{width:44px;height:44px}.annotation-toolbar .icon-btn.active{background-color:var(--primary-accent);color:#fff}.color-swatch-btn{width:32px;height:32px;border-radius:50%;border:2px solid var(--border-color);cursor:pointer;transition:transform .2s}.color-swatch-btn:hover{transform:scale(1.1)}.color-swatch-btn.active{border-color:var(--primary-accent);box-shadow:0 0 0 2px var(--primary-accent)}.annotation-toolbar{align-items:center}.toolbar-separator{width:1px;height:24px;background-color:var(--border-color);margin:0 .75rem}.thickness-slider-container{display:flex;align-items:center;padding:0 .5rem}.thickness-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100px;height:5px;background:var(--border-color);outline:none;border-radius:3px;cursor:pointer}.thickness-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--primary-accent);border-radius:50%;border:2px solid var(--card-color)}.thickness-slider::-moz-range-thumb{width:18px;height:18px;background:var(--primary-accent);border-radius:50%;border:2px solid var(--card-color)}
