.editor-panel{background-color:#1e1e2e;display:flex;flex-direction:column;height:100%;position:relative}.editor-tabs{background:#16161f;border-bottom:1px solid #ffffff0f;display:flex;flex-shrink:0}.tab-button{background:#0000;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:12px;font-weight:500;letter-spacing:.6px;padding:10px 16px;text-transform:uppercase;transition:color .15s ease}.tab-button:hover{color:#d1d5db}.tab-button.active{border-bottom-color:#6366f1;color:#818cf8}.mode-menu-wrap{margin-left:auto;position:relative}.mode-btn,.mode-menu-wrap{align-items:center;align-self:center;display:flex}.mode-btn{background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;font-family:inherit;font-size:11px;font-weight:500;gap:5px;height:24px;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap}.mode-btn.active,.mode-btn:hover{background:#6366f114;border-color:#6366f166;color:#a5b4fc}.mode-menu{left:auto;min-width:280px;right:0}.mode-menu-item-active{background:#6366f11a!important;color:#a5b4fc!important}.mode-menu .download-menu-item{display:flex;flex-direction:column;gap:1px;padding:7px 12px}.mode-menu-item-label{color:inherit;font-size:.75rem;font-weight:600}.mode-menu-item-detail{color:#6b7280;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.68rem}.upload-btn{align-items:center;align-self:center;background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;height:24px;margin-left:0;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease}.upload-btn.active,.upload-btn:hover{background:#6366f114;border-color:#6366f166;color:#a5b4fc}.download-menu-wrap,.upload-menu-wrap{align-items:center;align-self:center;display:flex;position:relative}.download-menu{background:#1e1e2e;border:1px solid #ffffff1f;border-radius:6px;box-shadow:0 4px 12px #0006;min-width:130px;overflow:hidden;position:absolute;right:0;top:calc(100% + 6px);z-index:100}.download-menu-item{background:#0000;border:none;color:#d1d5db;cursor:pointer;display:block;font-family:inherit;font-size:12px;padding:8px 12px;text-align:left;transition:background .12s ease,color .12s ease;white-space:nowrap;width:100%}.download-menu-item:hover{background:#6366f126;color:#a5b4fc}.download-btn{align-items:center;align-self:center;background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;height:24px;margin-left:0;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease}.download-btn.active,.download-btn:hover{background:#6366f114;border-color:#6366f166;color:#a5b4fc}.reset-btn{align-items:center;align-self:center;background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-family:inherit;font-size:11px;height:24px;margin-left:0;margin-right:8px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap}.reset-btn:hover{background:#ffffff0d;border-color:#fff3;color:#d1d5db}.reset-btn-confirm{background:#f8717114;border-color:#f8717166;color:#f87171}.reset-btn-confirm:hover{background:#f8717126;border-color:#f8717199;color:#fca5a5}.editor-wrapper{flex:1 1;min-height:0;overflow:hidden}.revert-btn{align-items:center;align-self:center;background:#0000;border:1px solid #fbbf244d;border-radius:4px;color:#fbbf24;cursor:pointer;display:flex;font-family:inherit;font-size:11px;gap:4px;height:24px;margin-left:0;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap}.revert-btn:hover{background:#fbbf2414;border-color:#fbbf248c;color:#fcd34d}.drop-overlay{align-items:center;background:#6366f11f;border:2px dashed #6366f1;display:flex;inset:0;justify-content:center;pointer-events:none;position:absolute;z-index:50}.drop-overlay-content{align-items:center;color:#a5b4fc;display:flex;flex-direction:column;font-size:.9375rem;font-weight:600;gap:12px}.drop-confirm-overlay{align-items:center;background:#000000a6;display:flex;inset:0;justify-content:center;position:absolute;z-index:100}.drop-confirm-modal{background:#1e1e2e;border:1px solid #ffffff1f;border-radius:10px;box-shadow:0 8px 32px #0009;max-width:340px;padding:24px;width:90%}.drop-confirm-title{color:#e5e7eb;font-size:1rem;font-weight:600;margin:0 0 10px}.drop-confirm-body{color:#9ca3af;font-size:.875rem;margin:0 0 10px}.drop-confirm-tags{display:flex;gap:6px;margin-bottom:12px}.drop-confirm-tag{background:#6366f12e;border:1px solid #6366f159;border-radius:4px;color:#a5b4fc;font-size:.78rem;font-weight:600;padding:2px 8px}.drop-confirm-note{color:#6b7280;font-size:.8125rem;font-style:italic;margin:0 0 20px}.drop-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.drop-confirm-cancel{background:#0000;border:1px solid #ffffff1f;border-radius:6px;color:#9ca3af;cursor:pointer;font-family:inherit;font-size:.875rem;padding:6px 14px;transition:background .12s ease,color .12s ease}.drop-confirm-cancel:hover{background:#ffffff0f;color:#d1d5db}.drop-confirm-apply{background:#6366f1;border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:inherit;font-size:.875rem;font-weight:600;padding:6px 14px;transition:background .12s ease}.drop-confirm-apply:hover{background:#4f46e5}.browser-preview{background:#fff;display:flex;flex-direction:column;height:100%}.tab-strip{align-items:stretch;background:#dee1e6;display:flex;flex-shrink:0;height:38px;padding-left:8px}.tab-row{align-items:flex-end;flex:1 1;gap:0}.browser-tab,.tab-row{display:flex;min-width:0}.browser-tab{align-items:center;align-self:flex-end;background:#fff;border-radius:8px 8px 0 0;box-shadow:0 1px 3px #0000001f;color:#3c4043;font-size:.78rem;font-weight:500;gap:7px;height:30px;max-width:220px;padding:0 14px 0 12px;white-space:nowrap}.tab-favicon{color:#5f6368;flex-shrink:0}.tab-favicon-img{flex-shrink:0;height:14px;object-fit:contain;width:14px}.tab-title{overflow:hidden;text-overflow:ellipsis}.new-tab-btn{align-items:center;align-self:flex-end;background:#0000;border:none;border-radius:50%;color:#5f6368;cursor:default;display:flex;flex-shrink:0;height:28px;justify-content:center;margin-bottom:1px;opacity:.45;width:28px}.window-controls{align-items:stretch;margin-left:auto}.wc-btn,.window-controls{display:flex;flex-shrink:0}.wc-btn{align-items:center;background:#0000;border:none;color:#3c4043;cursor:pointer;height:38px;justify-content:center;transition:background .1s ease;width:46px}.wc-max:hover,.wc-min:hover{background:#0000001a}.wc-close:hover{background:#c42b1c;color:#fff}.chrome-toolbar{background:#f1f3f4;border-bottom:1px solid #dadce0;gap:2px;height:44px;padding:5px 10px}.chrome-icon-btn,.chrome-toolbar{align-items:center;display:flex;flex-shrink:0}.chrome-icon-btn{background:#0000;border:none;border-radius:50%;color:#3c4043;cursor:pointer;height:32px;justify-content:center;transition:background .1s ease;width:32px}.nav-btn{cursor:default;opacity:.3}.refresh-btn{color:#3c4043;margin-right:4px;opacity:1}.refresh-btn:hover{background:#3c40431f;color:#1a73e8}.refresh-btn:active{background:#1a73e829;color:#1a73e8}.side-btn{cursor:default;opacity:.5}.omnibox{align-items:center;background:#fff;border:1.5px solid #dadce0;border-radius:16px;cursor:default;display:flex;flex:1 1;gap:7px;height:30px;padding:0 14px;-webkit-user-select:none;user-select:none}.omnibox-lock{color:#188038;flex-shrink:0}.omnibox-url{color:#202124;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.8125rem;letter-spacing:.01em}.console-toggle-btn{opacity:.75;position:relative}.console-toggle-btn:hover{background:#3c40431f;opacity:1}.console-toggle-btn.active{background:#1a73e81a;color:#1a73e8;opacity:1}.console-toggle-btn.has-errors svg{transform:scale(1.4);transform-origin:center}.browser-content{display:flex;flex:1 1;min-height:0;overflow:hidden;position:relative}.syntax-error-banner{align-items:center;background:#7f1d1d;border-top:1px solid #991b1b;color:#fecaca;display:flex;flex-shrink:0;font-family:Consolas,Menlo,monospace;font-size:.78rem;gap:8px;padding:7px 14px}.syntax-error-banner strong{color:#fca5a5;font-weight:700}.syntax-error-dismiss{background:#0000;border:none;color:#fca5a5;cursor:pointer;font-size:1rem;line-height:1;margin-left:auto;opacity:.75;padding:0 4px;transition:opacity .1s}.syntax-error-dismiss:hover{opacity:1}.console-panel{background:#1e1e1e;border-left:1px solid #333;display:flex;flex-direction:column;flex-shrink:0;font-family:Consolas,Menlo,Monaco,monospace;font-size:.78rem;overflow:hidden;position:relative}.console-resize-handle{bottom:0;cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='16'%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' d='M11 1v14'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M4 8H0'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='M2 5 0 8l2 3'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M18 8h4'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='m20 5 2 3-2 3'/%3E%3C/svg%3E") 11 8,col-resize;left:0;position:absolute;top:0;transition:background .15s ease;width:5px;z-index:10}.console-resize-handle:hover{background:#6366f159}.resize-overlay{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='16'%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' d='M11 1v14'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M4 8H0'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='M2 5 0 8l2 3'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M18 8h4'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='m20 5 2 3-2 3'/%3E%3C/svg%3E") 11 8,col-resize;inset:0;position:absolute;z-index:100}.console-panel-header{align-items:center;background:#2d2d2d;border-bottom:1px solid #444;display:flex;flex-shrink:0;gap:6px;justify-content:space-between;min-height:32px;padding:2px 8px 2px 12px}.console-tabs{display:flex;gap:2px}.console-tab-btn{background:none;border:none;border-radius:3px;color:#6b7280;cursor:pointer;font-family:inherit;font-size:.7rem;font-weight:600;letter-spacing:.05em;padding:3px 8px;text-transform:uppercase;transition:color .1s,background .1s}.console-tab-btn:hover{background:#ffffff0f;color:#d1d5db}.console-tab-btn.active{background:#ffffff1a;color:#e5e7eb}.console-header-right{align-items:center;display:flex;gap:6px;margin-left:auto}.console-filter-chips{display:flex;gap:3px}.console-filter-chip{background:#ffffff0d;border:1px solid #ffffff14;border-radius:3px;color:#4b5563;cursor:pointer;font-family:inherit;font-size:.62rem;font-weight:700;letter-spacing:.04em;padding:1px 5px;transition:background .12s,color .12s,border-color .12s}.console-filter-chip.filter-error.active{background:#ef444426;border-color:#ef444466;color:#ef4444}.console-filter-chip.filter-warn.active{background:#fbbf241f;border-color:#fbbf2466;color:#fbbf24}.console-filter-chip.filter-log.active{background:#6b728026;border-color:#ffffff1f;color:#9ca3af}.console-filter-chip:hover{opacity:.85}.console-clear-btn{background:none;border:none;border-radius:3px;color:#6b7280;cursor:pointer;font-family:inherit;font-size:.72rem;padding:2px 6px;transition:background .1s,color .1s}.console-clear-btn:hover{background:#ffffff14;color:#d1d5db}.console-tab-body{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.console-entries{flex:1 1;min-height:0;overflow-y:auto;padding:4px 0}.console-empty{color:#6b7280;font-size:.75rem;font-style:italic;padding:8px 12px}.console-entry{border-bottom:1px solid #ffffff08;cursor:default;display:flex;flex-direction:column;line-height:1.4;padding:3px 12px}.console-entry:last-child{border-bottom:none}.console-entry-linked{cursor:pointer}.console-entry-linked:hover{background:#ffffff0a}.console-entry-main{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px}.console-level{flex-shrink:0;font-size:.68rem;font-weight:700;letter-spacing:.04em;padding-top:1px;text-transform:uppercase;width:34px}.console-message{color:#e5e7eb;flex:1 1;white-space:pre-wrap;word-break:break-all}.console-line-link{color:#6b7280;flex-shrink:0;font-size:.7rem;margin-left:4px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.console-stack-btn{background:none;border:none;color:#6b7280;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:.68rem;padding:0 4px;transition:color .1s}.console-stack-btn:hover{color:#9ca3af}.console-entry-source-line{padding:3px 8px 3px 42px}.console-entry-source-line code{background:#ffffff0d;border-radius:3px;color:#9ca3af;display:block;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.7rem;max-width:100%;overflow:hidden;padding:1px 5px;text-overflow:ellipsis;white-space:pre}.console-stack{border-left:2px solid #333;margin-left:2px;margin-top:3px;padding-left:42px}.console-stack-frame{color:#6b7280;font-size:.7rem;line-height:1.5;white-space:pre-wrap;word-break:break-all}.console-log .console-level{color:#6b7280}.console-info .console-level{color:#60a5fa}.console-info .console-message{color:#93c5fd}.console-warn{background:#fbbf2412}.console-warn .console-level{color:#fbbf24}.console-warn .console-message{color:#fde68a}.console-error{background:#ef44441a}.console-error .console-level{color:#ef4444}.console-error .console-message{color:#fca5a5}.console-arg{display:inline}.obj-node{display:inline-block;vertical-align:top}.obj-toggle{background:none;border:none;color:#a5b4fc;cursor:pointer;font-family:inherit;font-size:.75rem;padding:0;transition:color .1s;white-space:nowrap}.obj-toggle:hover{color:#818cf8}.obj-children{border-left:1px solid #333;margin-left:4px;padding-left:14px}.obj-row{display:flex;flex-wrap:wrap;line-height:1.5}.obj-key{color:#a5b4fc;font-size:.73rem}.obj-primitive{color:#86efac;font-size:.73rem}.obj-ellipsis{color:#6b7280;font-size:.73rem}.console-repl{background:#181818;border-top:1px solid #333;flex-shrink:0}.console-repl-history{max-height:120px;overflow-y:auto;padding:4px 0}.console-repl-entry{padding:2px 10px}.console-repl-expr{color:#d1d5db;display:flex;font-size:.73rem;gap:6px}.console-repl-prompt{color:#6366f1;flex-shrink:0;font-weight:700}.console-repl-expr-text{color:#e5e7eb}.console-repl-result{color:#86efac;display:flex;font-size:.73rem;gap:6px;padding-left:2px}.console-repl-error{color:#fca5a5}.console-repl-arrow{color:#6b7280;flex-shrink:0}.console-repl-pending{color:#4b5563;font-size:.73rem;padding-left:12px}.console-repl-input-row{align-items:center;border-top:1px solid #2a2a2a;display:flex;gap:6px;padding:5px 8px 5px 10px}.console-repl-input{background:#0000;border:none;caret-color:#a5b4fc;color:#e5e7eb;flex:1 1;font-family:Consolas,Menlo,monospace;font-size:.75rem;outline:none}.console-repl-input::placeholder{color:#4b5563}.console-repl-run{background:#6366f126;border:1px solid #6366f14d;border-radius:3px;color:#a5b4fc;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:.68rem;padding:2px 7px;transition:background .1s,color .1s}.console-repl-run:hover{background:#6366f147;color:#c7d2fe}.console-source{background:#1e1e1e;flex:1 1;min-height:0;overflow-x:auto;overflow-y:auto}.console-source-info{background:#2d2d2d;border-bottom:1px solid #444;color:#fbbf24;font-size:.7rem;padding:5px 12px;position:-webkit-sticky;position:sticky;top:0;white-space:nowrap;z-index:5}.console-source-body{display:flex;min-width:-webkit-max-content;min-width:max-content;position:relative}.console-source-line-highlight{background:#ef44442e;border-left:3px solid #ef4444;height:18px;left:0;pointer-events:none;position:absolute;right:0;z-index:1}.console-source-gutter{background:#1e1e1e;border-right:1px solid #333;flex-shrink:0;left:0;padding-right:0;position:-webkit-sticky;position:sticky;-webkit-user-select:none;user-select:none;z-index:2}.console-source-linenum{align-items:center;color:#4b5563;display:flex;font-size:.73rem;height:18px;justify-content:flex-end;line-height:18px;min-width:42px;padding-right:10px}.console-source-linenum.line-highlighted{background:#ef444426;color:#fca5a5}.console-source-pre{background:#0000!important;color:#d4d4d4;font-family:Consolas,Menlo,Monaco,monospace!important;font-size:.73rem!important;line-height:18px!important;margin:0;padding:0 14px;tab-size:2;white-space:pre!important}.console-source-pre .token.tag{color:#569cd6}.console-source-pre .token.attr-name{color:#9cdcfe}.console-source-pre .token.attr-value,.console-source-pre .token.string{color:#ce9178}.console-source-pre .token.comment{color:#6a9955}.console-source-pre .token.keyword{color:#569cd6}.console-source-pre .token.number{color:#b5cea8}.console-source-pre .token.function{color:#dcdcaa}.console-source-pre .token.operator,.console-source-pre .token.punctuation{color:#d4d4d4}.console-source-pre .token.cdata,.console-source-pre .token.doctype,.console-source-pre .token.prolog{color:grey}.browser-iframe{background:#fff;border:none;display:block;flex:1 1;min-width:0}.client-panel{background:#fff;display:flex;flex-direction:column;height:100%;overflow:hidden}.modal-header{align-items:center;background:#111827;display:flex;flex-shrink:0;justify-content:space-between;padding:14px 16px}.modal-header-left{align-items:center;display:flex;gap:10px}.modal-avatar{align-items:center;background:#6366f1;border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.modal-header h2{color:#f9fafb;font-size:.9375rem;font-weight:600;line-height:1.2;margin:0}.modal-status{color:#6b7280;display:block;font-size:.75rem;margin-top:1px}.close-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;flex-shrink:0;height:30px;justify-content:center;transition:color .12s ease,background .12s ease;width:30px}.close-btn:hover{background:#ffffff14;color:#f9fafb}.modal-body{min-height:0;overflow:hidden}.modal-body,.setup-screen{display:flex;flex:1 1;flex-direction:column}.setup-screen{gap:18px;overflow-y:auto;padding:18px}.helper-blurb{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;padding:16px}.helper-blurb h3{color:#111827;font-size:.9375rem;font-weight:600;margin:0 0 10px}.helper-blurb p{color:#374151;font-size:.8rem;line-height:1.6;margin:0 0 10px}.blurb-list{display:flex;flex-direction:column;gap:6px;margin:0 0 10px;padding-left:16px}.blurb-list li{color:#374151;font-size:.8rem;line-height:1.5}.blurb-footer{color:#6b7280!important;font-size:.8rem!important;font-style:italic;margin:0!important}.setup-form{gap:14px}.form-group,.setup-form{display:flex;flex-direction:column}.form-group{gap:4px}.form-group label{color:#374151;font-size:.8125rem;font-weight:500}.required-star{color:#ef4444;margin-left:1px}.optional-label{color:#9ca3af;font-weight:400;margin-left:3px}.setup-input{background:#fafafa;border:1px solid #e5e7eb;border-radius:7px;color:#111827;font-family:inherit;font-size:.875rem;padding:9px 12px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.setup-input:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.field-hint{color:#9ca3af;font-size:.75rem}.setup-input-disabled{cursor:not-allowed;opacity:.45}.setup-textarea{font-family:inherit;min-height:56px;resize:vertical}.form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.checkbox-label{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:.8rem;gap:7px;margin-top:2px;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{accent-color:#6366f1;cursor:pointer;flex-shrink:0;height:14px;width:14px}.btn-start{background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;letter-spacing:.1px;padding:10px 16px;transition:background .15s ease;width:100%}.btn-start:hover:not(:disabled){background:#5254cc}.btn-start:disabled{background:#c7d2fe;cursor:not-allowed}.btn-start:active{background:#4749b5}.error-message{background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.875rem;margin:16px;padding:12px 14px}.error{color:#b91c1c;font-size:.8125rem;margin:4px 0 0}.chat-section,.messages-list{display:flex;flex:1 1;flex-direction:column;min-height:0}.messages-list{gap:8px;overflow-y:auto;padding:16px}.messages-list::-webkit-scrollbar{width:4px}.messages-list::-webkit-scrollbar-track{background:#0000}.messages-list::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:10px}.messages-list::-webkit-scrollbar-thumb:hover{background:#d1d5db}.message{align-items:flex-end;display:flex;gap:8px}.msg-user{flex-direction:row-reverse}.msg-assistant{flex-direction:row}.msg-avatar{align-items:center;background:#6366f1;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:.6875rem;font-weight:600;height:26px;justify-content:center;margin-bottom:2px;width:26px}.bubble-wrap{align-items:flex-start;display:flex;flex-direction:column;gap:3px;max-width:72%;min-width:0}.msg-user .bubble-wrap{align-items:flex-end}.msg-assistant .bubble-wrap{max-width:90%}.bubble-actions{align-items:center;align-self:flex-start;display:flex;gap:2px}.msg-user .bubble-actions{align-self:flex-end}.bubble-copy-btn,.bubble-retry-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;display:flex;justify-content:center;opacity:0;padding:2px 4px;pointer-events:none;transition:opacity .12s ease,color .12s ease}.bubble-wrap:hover .bubble-copy-btn,.bubble-wrap:hover .bubble-retry-btn{opacity:1;pointer-events:auto}.bubble-copy-btn:hover,.bubble-retry-btn:hover{color:#6b7280}.message-bubble{word-wrap:break-word;border-radius:16px;min-width:0;overflow:hidden;padding:9px 13px}.msg-user .message-bubble{background:#6366f1;border-bottom-right-radius:4px;color:#fff}.msg-assistant .message-bubble{background:#f3f4f6;border-bottom-left-radius:4px;color:#111827}.message-bubble p{font-size:.875rem;line-height:1.5;margin:0}.message-bubble .md{font-size:.875rem;line-height:1.55}.message-bubble .md>*+*{margin-top:6px}.message-bubble .md p{margin:0}.message-bubble .md p+p{margin-top:6px}.message-bubble .md ol,.message-bubble .md ul{margin:4px 0;padding-left:18px}.message-bubble .md li{margin:2px 0}.message-bubble .md strong{font-weight:600}.message-bubble .md em{font-style:italic}.message-bubble .md h1,.message-bubble .md h2,.message-bubble .md h3{font-size:.9375rem;font-weight:600;margin:4px 0 2px}.message-bubble .md table{border-collapse:collapse;font-size:.8rem;margin:6px 0;width:100%}.message-bubble .md td,.message-bubble .md th{border:1px solid #d1d5db;line-height:1.45;padding:5px 8px;text-align:left;vertical-align:top}.message-bubble .md th{background:#f3f4f6;color:#111827;font-weight:600;white-space:nowrap}.message-bubble .md tr:nth-child(2n) td{background:#f9fafb}.code-block-wrapper{border-radius:6px;margin:6px 0;overflow:hidden}.code-block-header{align-items:center;background:#2d2d2d;border-bottom:1px solid #ffffff12;display:flex;justify-content:space-between;padding:6px 10px 6px 12px}.code-block-lang{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.75rem;gap:6px;-webkit-user-select:none;user-select:none}.code-block-lang,.code-copy-btn{align-items:center;color:#9ca3af;display:flex}.code-copy-btn{background:#0000;border:none;border-radius:3px;cursor:pointer;justify-content:center;line-height:1;padding:3px 5px;transition:color .12s ease,background .12s ease}.code-copy-btn:hover{background:#ffffff1a;color:#e5e7eb}.message-bubble .md pre{background:#2d2d2d;border-radius:0;color:#d4d4d4;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.78rem;line-height:1.5;margin:0;overflow-x:auto;padding:10px 12px;white-space:pre}.message-bubble .md pre code{background:none;border-radius:0;color:inherit;font-size:inherit;padding:0}.message-bubble .md code{background:#e5e7eb;border-radius:4px;color:#111827;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.8rem;padding:1px 5px}.typing-bubble{align-items:center;display:flex;gap:4px;min-width:52px;padding:12px 14px}.dot{animation:bounce 1.2s ease-in-out infinite;background:#9ca3af;border-radius:50%;display:block;height:6px;width:6px}.dot:first-child{animation-delay:0s}.dot:nth-child(2){animation-delay:.18s}.dot:nth-child(3){animation-delay:.36s}@keyframes bounce{0%,60%,to{opacity:.6;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.chat-footer{background:#fff;border-top:1px solid #f3f4f6;display:flex;flex-direction:column;flex-shrink:0;gap:8px;padding:12px 14px}.chat-error{margin:0}.csv-block{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin:6px 0;overflow:hidden}.csv-block-header{align-items:center;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;gap:8px;justify-content:space-between;padding:8px 11px}.csv-block-info{align-items:center;color:#374151;display:flex;gap:7px;min-width:0}.csv-filename{color:#111827;font-size:.8125rem;font-weight:600}.csv-rowcount{color:#9ca3af;font-size:.75rem}.csv-download-btn{align-items:center;background:#6366f1;border:none;border-radius:5px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-family:inherit;font-size:.75rem;font-weight:500;gap:5px;padding:4px 10px;transition:background .12s ease}.csv-download-btn:hover{background:#5254cc}.csv-download-btn:active{background:#4749b5}.csv-block-preview{color:#374151;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.72rem;line-height:1.6;overflow-x:auto;padding:8px 11px}.csv-row{white-space:pre}.csv-row-header{border-bottom:1px solid #f3f4f6;color:#111827;font-weight:600;margin-bottom:3px;padding-bottom:3px}.csv-row-more{color:#9ca3af;font-size:.7rem;margin-top:3px}.pasted-preview{align-self:flex-start;display:inline-flex;position:relative}.pasted-thumb{border:1px solid #e5e7eb;border-radius:8px;display:block;max-height:80px;max-width:100%;object-fit:contain}.pasted-remove{align-items:center;background:#374151;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:18px;justify-content:center;padding:0;position:absolute;right:-6px;top:-6px;width:18px}.pasted-remove:hover{background:#111827}.msg-image-badge{align-items:center;background:#ffffff26;border-radius:4px;color:#fffc;display:inline-flex;font-size:.75rem;gap:5px;margin-bottom:4px;padding:3px 7px}.chat-input-form{align-items:center;display:flex;gap:8px}.chat-input{background:#f9fafb;border:1px solid #e5e7eb;border-radius:20px;color:#111827;flex:1 1;font-family:inherit;font-size:.875rem;line-height:1.5;max-height:140px;min-height:36px;overflow:hidden;overflow-y:auto;padding:9px 13px;resize:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.chat-input:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f114;outline:none}.chat-input:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.btn-send{align-items:center;background:#6366f1;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:34px;justify-content:center;transition:background .15s ease,transform .1s ease;width:34px}.btn-send:hover:not(:disabled){background:#5254cc}.btn-send:active:not(:disabled){transform:scale(.93)}.btn-send:disabled{background:#e5e7eb;cursor:not-allowed}.btn-send:disabled svg{color:#9ca3af}.send-spinner{animation:spin .7s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:block;height:13px;width:13px}.btn-reset{align-self:center;background:none;border:none;color:#9ca3af;cursor:pointer;font-family:inherit;font-size:.75rem;padding:2px 0;text-align:center;text-decoration:underline;-webkit-text-decoration-color:#0000;text-decoration-color:#0000;text-underline-offset:2px;transition:color .12s ease}.btn-reset:hover{color:#6b7280;-webkit-text-decoration-color:#9ca3af;text-decoration-color:#9ca3af}.report-download{align-items:center;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;display:flex;flex-wrap:wrap;gap:8px 10px;justify-content:space-between;margin:8px 0 2px;padding:10px 12px}.report-download-info{align-items:center;color:#4338ca;display:flex;gap:9px;min-width:0}.report-download-title{color:#312e81;font-size:.8125rem;font-weight:600;line-height:1.3}.report-download-subtitle{color:#6366f1;font-size:.75rem;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-prompt-banner{align-items:center;background:#eef2ff;border-bottom:1px solid #c7d2fe;display:flex;flex-shrink:0;gap:10px;justify-content:space-between;padding:10px 14px}.save-prompt-text{align-items:center;color:#312e81;display:flex;font-size:.8125rem;font-weight:500;gap:8px;min-width:0}.save-prompt-actions{display:flex;flex-shrink:0;gap:6px}.save-prompt-btn-primary{background:#6366f1;border:none;border-radius:5px;color:#fff;cursor:pointer;font-family:inherit;font-size:.75rem;font-weight:500;padding:4px 12px;transition:background .12s ease}.save-prompt-btn-primary:hover{background:#5254cc}.save-prompt-btn-dismiss{background:#0000;border:1px solid #c7d2fe;border-radius:5px;color:#6366f1;cursor:pointer;font-family:inherit;font-size:.75rem;font-weight:500;padding:4px 10px;transition:background .12s ease,border-color .12s ease}.save-prompt-btn-dismiss:hover{background:#e0e7ff;border-color:#a5b4fc}.welcome-overlay{align-items:center;animation:wm-fade .2s ease;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:2000}@keyframes wm-fade{0%{opacity:0}to{opacity:1}}.welcome-modal{animation:wm-slide .22s ease;background:#fff;border-radius:14px;box-shadow:0 20px 60px #0003;max-width:calc(100vw - 32px);padding:24px 36px 20px;width:560px}@keyframes wm-slide{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.welcome-header{margin-bottom:14px;text-align:center}.welcome-logo{height:36px;margin-bottom:8px;object-fit:contain;width:36px}.welcome-title{color:#111827;font-size:1.375rem;font-weight:700;letter-spacing:-.3px;margin:0 0 8px}.welcome-subtitle{color:#6b7280;font-size:.9rem;line-height:1.5;margin:0}.welcome-steps{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.welcome-step{align-items:flex-start;display:flex;gap:14px}.step-icon{align-items:center;border-radius:7px;display:flex;flex-shrink:0;height:30px;justify-content:center;width:30px}.step-icon-editor{background:#eff6ff;color:#3b82f6}.step-icon-preview{background:#f0fdf4;color:#22c55e}.step-icon-client{background:#faf5ff;color:#a855f7}.step-text{display:flex;flex-direction:column;gap:3px;padding-top:2px}.step-text strong{color:#111827;font-size:.875rem;font-weight:600}.step-text span{color:#6b7280;font-size:.8125rem;line-height:1.5}.welcome-file-modes{margin-bottom:12px}.welcome-file-modes-label{color:#374151;font-size:.8125rem;font-weight:600;margin:0 0 10px}.welcome-mode-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.welcome-mode-option{align-items:flex-start;background:#f9fafb;border:1.5px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:3px;padding:8px 10px;text-align:left;transition:border-color .12s ease,background .12s ease;width:100%}.welcome-mode-option:hover{background:#f5f3ff;border-color:#a5b4fc}.welcome-mode-option.selected{background:#eef2ff;border-color:#6366f1}.welcome-mode-count{color:#6366f1;font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.welcome-mode-option:not(.selected) .welcome-mode-count{color:#9ca3af}.welcome-mode-files{align-items:center;display:flex;flex-wrap:wrap;gap:2px;line-height:1.4}.welcome-mode-filename{background:none;color:#111827;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.75rem;padding:0}.welcome-mode-sep{color:#9ca3af;font-size:.75rem}.welcome-mode-desc{color:#9ca3af;font-size:.73rem;line-height:1.4}.welcome-cta{align-items:center;border-top:1px solid #f3f4f6;display:flex;flex-direction:column;padding-top:14px}.welcome-cta-hint{color:#6b7280;font-size:.8125rem;line-height:1.5;margin:0;text-align:center}.welcome-btn{align-items:center;background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:.9rem;font-weight:600;gap:8px;letter-spacing:.01em;padding:10px 24px;transition:background .15s ease,transform .1s ease}.welcome-btn:hover{background:#5254cc}.welcome-btn:active{background:#4749b5;transform:scale(.98)}.login-overlay{align-items:center;background:#0f1117;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.login-card{background:#1a1d27;border:1px solid #2a2d3e;border-radius:12px;box-shadow:0 20px 60px #00000080;max-width:380px;padding:36px 40px;width:100%}.login-logo{align-items:center;display:flex;gap:10px;margin-bottom:6px}.login-logo img{height:32px;width:32px}.login-logo h1{color:#e8eaf0;font-size:20px;font-weight:700;margin:0}.login-subtitle{color:#6b7280;font-size:13px;margin:0 0 24px}.login-form{gap:16px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:6px}.login-field label{color:#9ca3af;font-size:12px;font-weight:500;letter-spacing:.03em}.login-field input{background:#0f1117;border:1px solid #2a2d3e;border-radius:7px;color:#e8eaf0;font-size:14px;outline:none;padding:9px 12px;transition:border-color .15s}.login-field input:focus{border-color:#6366f1}.login-field input::placeholder{color:#4b5563}.login-error{background:#f8717114;border:1px solid #f8717133;border-radius:6px;color:#f87171;font-size:12px;margin:0;padding:8px 10px}.login-btn{align-items:center;background:#6366f1;border:none;border-radius:7px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;justify-content:center;margin-top:4px;min-height:40px;padding:10px;transition:background .15s}.login-btn:hover:not(:disabled){background:#4f52d1}.login-btn:disabled{cursor:not-allowed;opacity:.6}.login-spinner{animation:spin .7s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.login-note{color:#4b5563;margin:20px 0 0}.login-link,.login-note{font-size:12px;text-align:center}.login-link{background:none;border:none;color:#6366f1;cursor:pointer;padding:4px 0;transition:color .15s}.login-link:hover{color:#818cf8}.login-form-row-2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;min-width:0}.login-form-row-2 .login-field{min-width:0}.login-textarea{background:#0f1117;border:1px solid #2a2d3e;border-radius:7px;color:#e8eaf0;font-family:inherit;font-size:14px;outline:none;padding:9px 12px;resize:vertical;transition:border-color .15s}.login-textarea:focus{border-color:#6366f1}.login-textarea::placeholder{color:#4b5563}.login-optional{color:#4b5563;font-weight:400}.request-sent{align-items:center;display:flex;flex-direction:column;gap:10px;padding:16px 0;text-align:center}.request-sent-icon{align-items:center;background:#4ade8026;border-radius:50%;color:#4ade80;display:flex;font-size:20px;font-weight:700;height:40px;justify-content:center;width:40px}.request-sent h3{color:#e8eaf0;font-size:15px;font-weight:600;margin:0}.request-sent p{color:#6b7280;font-size:13px;margin:0}.instructor-panel{background:#0f1117;color:#e8eaf0;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100vh}.instructor-header{align-items:center;background:#1a1d27;border-bottom:1px solid #2a2d3e;display:flex;flex-shrink:0;height:52px;justify-content:space-between;padding:0 24px}.instructor-header-left{align-items:center;display:flex;gap:10px}.instructor-logo{height:24px;width:24px}.instructor-header h1{color:#e8eaf0;font-size:15px;font-weight:600;margin:0}.instructor-logout{align-items:center;background:#0000;border:1px solid #2a2d3e;border-radius:6px;color:#9ca3af;cursor:pointer;display:flex;font-size:13px;gap:6px;padding:6px 12px;transition:border-color .15s,color .15s}.instructor-logout:hover{border-color:#4b5563;color:#e8eaf0}.instructor-tabs{background:#1a1d27;border-bottom:1px solid #2a2d3e;display:flex;flex-shrink:0;gap:0;padding:0 24px}.instructor-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:13px;font-weight:500;padding:12px 16px;transition:color .15s,border-color .15s}.instructor-tab.active{border-bottom-color:#6366f1;color:#e8eaf0}.instructor-tab:hover:not(.active){color:#9ca3af}.instructor-body{flex:1 1;overflow:auto;padding:24px}.tab-body{display:flex;flex-direction:column;gap:16px}.tab-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}.tab-toolbar h2{color:#e8eaf0;font-size:15px;font-weight:600;margin:0}.toolbar-right{align-items:center;display:flex;gap:10px}.panel-empty{color:#6b7280;font-size:13px;padding:24px 0}.btn-primary{background:#6366f1;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:7px 14px;transition:background .15s}.btn-primary:hover:not(:disabled){background:#4f52d1}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-secondary{align-items:center;background:#0000;border:1px solid #2a2d3e;border-radius:6px;color:#9ca3af;cursor:pointer;display:flex;font-size:12px;gap:6px;padding:6px 12px;transition:border-color .15s,color .15s}.btn-secondary:hover{border-color:#4b5563;color:#e8eaf0}.btn-export{align-items:center;background:#0000;border:1px solid #2a2d3e;border-radius:5px;color:#9ca3af;cursor:pointer;display:flex;padding:5px 8px;transition:border-color .15s,color .15s}.btn-export:hover{border-color:#6366f1;color:#818cf8}.action-btns{align-items:center;display:flex;gap:6px}.btn-edit{background:#0000;border:1px solid #2a2d3e;border-radius:5px;color:#9ca3af;cursor:pointer;font-size:12px;padding:4px 10px;transition:border-color .15s,color .15s}.btn-edit:hover{border-color:#6366f1;color:#818cf8}.btn-delete{background:#0000;border:1px solid #2a2d3e;border-radius:5px;color:#9ca3af;cursor:pointer;font-size:12px;padding:4px 10px;transition:border-color .15s,color .15s}.btn-delete:hover{border-color:#ef4444;color:#f87171}.btn-save{background:#6366f1;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:12px;font-weight:600;padding:4px 10px;transition:background .15s}.btn-save:hover{background:#4f52d1}.btn-cancel{background:#0000;border:1px solid #2a2d3e;border-radius:5px;color:#6b7280;cursor:pointer;font-size:12px;padding:4px 10px;transition:border-color .15s,color .15s}.btn-cancel:hover{border-color:#4b5563;color:#9ca3af}.sessions-table-wrap{border:1px solid #2a2d3e;border-radius:8px;overflow-x:auto}.sessions-table{border-collapse:collapse;font-size:12px;width:100%}.sessions-table th{background:#1a1d27;border-bottom:1px solid #2a2d3e;color:#6b7280;font-weight:500;padding:10px 12px;text-align:left;white-space:nowrap}.sessions-table td{border-bottom:1px solid #1e2130;color:#c9cdd5;padding:10px 12px;vertical-align:middle}.sessions-table tbody tr:last-child td{border-bottom:none}.sessions-table tbody tr:hover td{background:#1a1d27}.row-complete td{opacity:.85}.row-editing td{background:#1a1d27}.td-topics{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sessions-table td input{background:#0f1117;border:1px solid #2a2d3e;border-radius:5px;color:#e8eaf0;font-size:12px;min-width:80px;outline:none;padding:5px 8px;transition:border-color .15s;width:100%}.sessions-table td input:focus{border-color:#6366f1}.edit-name-row{display:flex;gap:4px}.edit-name-row input{min-width:70px}.role-select{background:#0f1117;border:1px solid #2a2d3e;border-radius:5px;color:#e8eaf0;cursor:pointer;font-size:12px;outline:none;padding:5px 8px;transition:border-color .15s}.role-select:focus{border-color:#6366f1}.status-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:500;padding:2px 8px}.status-badge.active{background:#6366f126;color:#818cf8}.status-badge.complete{background:#22c55e1f;color:#4ade80}.status-badge.denied{background:#f871711f;color:#f87171}.role-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:500;padding:2px 8px}.role-badge.instructor{background:#fbbf241f;color:#fbbf24}.role-badge.student{background:#6366f11f;color:#818cf8}.group-control{align-items:center;color:#6b7280;display:flex;font-size:12px;gap:8px}.group-control select{background:#1a1d27;border:1px solid #2a2d3e;border-radius:6px;color:#e8eaf0;cursor:pointer;font-size:12px;outline:none;padding:5px 8px;transition:border-color .15s}.group-control select:focus{border-color:#6366f1}.session-group{display:flex;flex-direction:column;gap:8px}.session-group-label{align-items:center;border-bottom:1px solid #2a2d3e;color:#e8eaf0;display:flex;font-size:13px;font-weight:600;gap:8px;padding:8px 0 4px}.session-group-count{color:#6b7280;font-size:11px;font-weight:400}.create-form{background:#1a1d27;border:1px solid #2a2d3e;border-radius:10px;display:flex;flex-direction:column;gap:14px;max-width:520px;padding:20px}.create-form h3{color:#e8eaf0;font-size:14px;font-weight:600;margin:0}.form-row-2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.cu-field{display:flex;flex-direction:column;gap:6px}.cu-field label{color:#9ca3af;font-size:12px;font-weight:500}.cu-field input{background:#0f1117;border:1px solid #2a2d3e;border-radius:7px;color:#e8eaf0;font-size:13px;outline:none;padding:9px 12px;transition:border-color .15s}.cu-field input:focus{border-color:#6366f1}.cu-field input::placeholder{color:#4b5563}.req{color:#f87171}.cu-error{background:#f8717114;border:1px solid #f8717133;border-radius:6px;color:#f87171}.cu-error,.cu-success{font-size:12px;margin:0;padding:8px 10px}.cu-success{background:#4ade8014;border:1px solid #4ade8033;border-radius:6px;color:#4ade80}.confirm-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:600}.confirm-modal{background:#1a1d27;border:1px solid #2a2d3e;border-radius:10px;box-shadow:0 20px 60px #00000080;max-width:380px;padding:24px 28px;width:100%}.confirm-modal h3{color:#e8eaf0;font-size:15px;font-weight:600;margin:0 0 10px}.confirm-modal p{color:#9ca3af;font-size:13px;line-height:1.5;margin:0 0 20px}.confirm-modal p strong{color:#e8eaf0}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.btn-delete-confirm{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px;transition:background .15s}.btn-delete-confirm:hover{background:#dc2626}.request-section-label{color:#9ca3af;font-size:13px;font-weight:600;margin:0}.request-list{display:flex;flex-direction:column;gap:10px}.request-card{align-items:flex-start;background:#1a1d27;border:1px solid #2a2d3e;border-radius:8px;display:flex;gap:16px;justify-content:space-between;padding:14px 16px}.request-info{display:flex;flex-direction:column;gap:4px}.request-name{color:#e8eaf0;font-size:14px;font-weight:600}.request-meta{color:#9ca3af;font-size:12px}.request-message{color:#6b7280;font-size:12px;font-style:italic}.request-date{color:#4b5563;font-size:11px}.approve-form{display:flex;flex-direction:column;gap:8px;min-width:200px}.approve-form input{background:#0f1117;border:1px solid #2a2d3e;border-radius:6px;color:#e8eaf0;font-size:12px;outline:none;padding:7px 10px;transition:border-color .15s}.approve-form input:focus{border-color:#6366f1}.approve-form input::placeholder{color:#4b5563}.profile-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:500}.profile-modal{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 20px 60px #00000026;max-width:440px;padding:28px 32px;width:100%}.profile-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.profile-header h2{color:#111827;font-size:16px;font-weight:600;margin:0}.profile-close{align-items:center;background:none;border:none;border-radius:4px;color:#9ca3af;cursor:pointer;display:flex;padding:4px;transition:color .15s}.profile-close:hover{color:#374151}.profile-readonly{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:7px;display:flex;gap:10px;margin-bottom:18px;padding:9px 12px}.profile-readonly-label{color:#9ca3af;font-size:12px;font-weight:500}.profile-readonly-value{color:#374151;font-family:ui-monospace,monospace;font-size:13px}.profile-form{display:flex;flex-direction:column;gap:14px}.profile-row-2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;min-width:0}.profile-row-2 .profile-field{min-width:0}.profile-field{display:flex;flex-direction:column;gap:5px}.profile-field label{color:#6b7280;font-size:12px;font-weight:500}.profile-field input{background:#fff;border:1px solid #d1d5db;border-radius:7px;box-sizing:border-box;color:#111827;font-size:13px;outline:none;padding:8px 11px;transition:border-color .15s;width:100%}.profile-field input:focus{border-color:#6366f1}.profile-field input::placeholder{color:#d1d5db}.profile-optional{color:#9ca3af;font-weight:400}.profile-divider{background:#f3f4f6;height:1px;margin:2px 0}.profile-error{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626}.profile-error,.profile-success{font-size:12px;margin:0;padding:8px 10px}.profile-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;color:#16a34a}.profile-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:4px}.profile-btn-cancel{background:#0000;border:1px solid #d1d5db;border-radius:7px;color:#6b7280;cursor:pointer;font-size:13px;padding:8px 16px;transition:border-color .15s,color .15s}.profile-btn-cancel:hover{border-color:#9ca3af;color:#374151}.profile-btn-save{background:#6366f1;border:none;border-radius:7px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 18px;transition:background .15s}.profile-btn-save:hover:not(:disabled){background:#4f52d1}.profile-btn-save:disabled{cursor:not-allowed;opacity:.6}.fpr-overlay{background:#0f1117;inset:0;justify-content:center;position:fixed;z-index:900}.fpr-modal,.fpr-overlay{align-items:center;display:flex}.fpr-modal{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 24px 64px #0000002e;flex-direction:column;max-width:420px;padding:36px 40px;text-align:center;width:100%}.fpr-icon{font-size:36px;margin-bottom:12px}.fpr-modal h2{color:#111827;font-size:18px;font-weight:700;margin:0 0 8px}.fpr-modal p{color:#6b7280;font-size:13px;line-height:1.5;margin:0 0 24px}.fpr-form{gap:14px;text-align:left;width:100%}.fpr-field,.fpr-form{display:flex;flex-direction:column}.fpr-field{gap:5px}.fpr-field label{color:#6b7280;font-size:12px;font-weight:500}.fpr-field input{background:#fff;border:1px solid #d1d5db;border-radius:7px;color:#111827;font-size:14px;outline:none;padding:9px 12px;transition:border-color .15s}.fpr-field input:focus{border-color:#6366f1}.fpr-field input::placeholder{color:#d1d5db}.fpr-hint{color:#9ca3af;font-weight:400}.fpr-error{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:12px;margin:0;padding:8px 10px}.fpr-btn{background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;margin-top:4px;padding:11px;transition:background .15s}.fpr-btn:hover:not(:disabled){background:#4f52d1}.fpr-btn:disabled{cursor:not-allowed;opacity:.6}.app-loading{background:#0f1117;inset:0;position:fixed}.App{background:#f0f2f5;color:#111827;display:flex;flex-direction:column;height:100vh;overflow:hidden}.App-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;flex-shrink:0;height:48px;justify-content:space-between;padding:0 14px}.header-left,.header-right{align-items:center;display:flex;gap:8px}.header-user-section{align-items:center;border-left:1px solid #e5e7eb;display:flex;gap:4px;margin-left:2px;padding-left:10px}.header-logo{flex-shrink:0;height:22px;object-fit:contain;width:22px}.App-header h1{color:#111827;font-size:.9375rem;font-weight:600;letter-spacing:-.1px;margin:0}.header-toggle-btn{align-items:center;background:#0000;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;position:relative;transition:background .12s ease,color .12s ease,border-color .12s ease;width:32px}.header-toggle-btn:hover{background:#f9fafb;border-color:#d1d5db;color:#374151}.chat-pulse-dot{animation:pulse-ring 1.6s ease-in-out infinite;background:#6366f1;border:2px solid #fff;border-radius:50%;height:9px;position:absolute;right:-4px;top:-4px;width:9px}@keyframes pulse-ring{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.4)}}.header-toggle-btn.active{background:#eff6ff;border-color:#bfdbfe;color:#3b82f6}.workspace{flex:1 1;min-height:0}.panel,.workspace{display:flex;overflow:hidden;position:relative}.panel{flex-direction:column}.panel-left{border-right:1px solid #00000012;flex-shrink:0}.panel-left.panel-closed{border-right:none}.panel-center{flex:1 1;min-width:0}.panel-right{background:#fff;border-left:1px solid #e5e7eb;flex-shrink:0}.panel-right.panel-closed{border-left:none}.panel-resize-handle{bottom:0;cursor:col-resize;position:absolute;top:0;transition:background .15s ease;width:5px;z-index:10}.panel-resize-handle:active,.panel-resize-handle:hover{background:#6366f159}.panel-resize-handle-right{right:0}.panel-resize-handle-left{left:0}*{box-sizing:border-box;margin:0;padding:0}#root,body,html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
/*# sourceMappingURL=main.fc601026.css.map*/