:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:20px;min-height:100vh;background-color:#f0f2f5}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--apple-white: #ffffff;--apple-light-gray: #f5f5f7;--apple-medium-gray: #86868b;--apple-dark-gray: #424245;--apple-black: #1d1d1f;--apple-blue: #0071e3;--apple-shadow: 0 4px 20px rgba(0, 0, 0, .08);--apple-radius: 12px}*{box-sizing:border-box}body,html{font-family:-apple-system,BlinkMacSystemFont,San Francisco,Helvetica Neue,Helvetica,Arial,sans-serif;margin:0;padding:0;background-color:var(--apple-light-gray);color:var(--apple-black);line-height:1.5;-webkit-font-smoothing:antialiased}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.app-container{display:flex;width:100%;height:90vh;max-width:1200px;margin:0 auto;gap:24px}.chat-container{display:flex;flex-direction:column;height:90vh;flex:1;background-color:var(--apple-white);border-radius:var(--apple-radius);box-shadow:var(--apple-shadow);overflow:hidden}.chat-header{background-color:var(--apple-white);color:var(--apple-black);padding:16px;text-align:center;font-size:18px;border-bottom:1px solid var(--apple-light-gray);display:flex;justify-content:center;align-items:center;position:relative}.chat-header h2{margin:0;font-weight:600;font-size:18px}.settings-button{position:absolute;right:16px;background:transparent;border:none;cursor:pointer;font-size:18px;padding:4px 8px;border-radius:4px;transition:background-color .2s}.settings-button:hover{background-color:var(--apple-light-gray)}.messages-container{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background-color:var(--apple-white)}.message{display:flex;flex-direction:column;max-width:75%}.user-message{align-self:flex-end}.other-message{align-self:flex-start}.message-bubble{padding:12px 16px;border-radius:18px;position:relative;word-break:break-word;min-width:60px;text-align:left;box-shadow:0 1px 2px #0000000d;transition:all .2s ease}.user-message .message-bubble{background-color:var(--apple-blue);color:#fff;border-bottom-right-radius:4px}.other-message .message-bubble{background-color:var(--apple-light-gray);color:var(--apple-black);border-bottom-left-radius:4px}.message-time{font-size:11px;margin-left:8px;opacity:.7;display:inline-block;margin-top:6px;float:right}.message-input-container{display:flex;padding:16px;background-color:var(--apple-white);border-top:1px solid var(--apple-light-gray);gap:10px}.input-row{display:flex;align-items:center;gap:8px;width:100%;background-color:var(--apple-light-gray);border-radius:20px;padding:4px}.message-textarea{flex:1;padding:12px;border:none;outline:none;background-color:transparent;font-size:15px;font-family:inherit;resize:none;max-height:120px;overflow-y:auto;color:var(--apple-black)}.message-textarea::placeholder{color:var(--apple-medium-gray)}.attach-button,.send-button{border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;border:none;transition:all .2s ease}.attach-button{background-color:transparent;color:var(--apple-blue);font-size:18px}.send-button{background-color:var(--apple-blue);color:#fff}.attach-button:hover,.send-button:hover{transform:scale(1.05);opacity:.9}.send-button:disabled{background-color:var(--apple-medium-gray);opacity:.6;cursor:not-allowed}.message-image-container{margin-bottom:12px;max-width:300px;border-radius:12px;overflow:hidden}.message-image{width:100%;object-fit:contain}.message-text{margin-top:0;text-align:left}.image-preview-container{position:relative;padding:8px;border-radius:12px;background-color:var(--apple-light-gray);margin-bottom:12px;width:150px}.image-preview{width:100%;height:auto;border-radius:8px;object-fit:contain}.remove-image-btn{position:absolute;top:-8px;right:-8px;background-color:#0009;color:#fff;border:2px solid white;border-radius:50%;width:24px;height:24px;font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;line-height:1}.typing-indicator{display:flex;align-items:center;justify-content:center;gap:4px;padding:12px 16px;min-width:60px;max-width:80px}.typing-indicator span{display:inline-block;width:8px;height:8px;background-color:var(--apple-medium-gray);border-radius:50%;opacity:.6;animation:typing-animation 1.4s infinite both}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing-animation{0%{transform:scale(.8);opacity:.4}50%{transform:scale(1);opacity:.8}to{transform:scale(.8);opacity:.4}}.sidebar{width:40%;min-width:350px;max-width:550px;height:90vh;background-color:var(--apple-white);border-radius:var(--apple-radius);box-shadow:var(--apple-shadow);display:flex;flex-direction:column;overflow:hidden;transition:all .3s ease}.sidebar.sidebar-full-width{width:100%;max-width:none}.sidebar-header{background-color:var(--apple-white);color:var(--apple-black);padding:16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--apple-light-gray)}.sidebar-header h3{margin:0;font-weight:600;font-size:18px}.sidebar-tabs{display:flex;background-color:var(--apple-white);border-bottom:1px solid var(--apple-light-gray)}.tab-button{flex:1;padding:14px;background:none;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;color:var(--apple-medium-gray)}.tab-button:hover{color:var(--apple-blue)}.tab-button.active{color:var(--apple-blue);border-bottom:2px solid var(--apple-blue);font-weight:600}.sidebar-actions{display:flex;gap:12px;align-items:center}.button-group{display:flex;align-items:center;gap:10px}.close-sidebar{background:none;border:none;color:var(--apple-medium-gray);font-size:22px;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;transition:all .2s ease}.close-sidebar:hover{color:var(--apple-black);background-color:var(--apple-light-gray)}.width-toggle{background:none;border:none;color:var(--apple-medium-gray);font-size:18px;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;transition:all .2s ease;margin-right:8px}.width-toggle:hover,.close-sidebar:hover{color:var(--apple-black);background-color:var(--apple-light-gray)}.template-toggle{display:flex;align-items:center;gap:6px;color:var(--apple-black);font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none}.template-toggle input{margin:0;cursor:pointer;accent-color:var(--apple-blue)}.sidebar-content{flex:1;overflow:hidden;position:relative}.html-preview{width:100%;height:100%;border:none;background-color:var(--apple-white)}.code-view{width:100%;height:100%;overflow:auto;background-color:#1e1e1e;color:#d4d4d4;font-family:SF Mono,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px;line-height:1.5}.code-container{display:table;width:100%;border-spacing:0;counter-reset:line;padding-bottom:20px}.code-line{display:table-row}.code-line:hover{background-color:#ffffff12}.line-number{display:table-cell;padding:0 12px;text-align:right;-webkit-user-select:none;user-select:none;color:#858585;border-right:1px solid rgba(255,255,255,.1);min-width:40px;background-color:#0003}.line-content{display:table-cell;padding:0 12px;white-space:pre;text-align:left;color:#d4d4d4;word-break:break-all}.message-status{font-size:12px;margin-top:6px;padding:6px 10px;border-radius:12px;display:inline-block}.message-status.generating{background-color:#fff4db;color:#8a6d00}.message-status.done{background-color:#e8f4eb;color:#1d7a32;cursor:pointer}.message-status .view-link{text-decoration:underline;font-weight:600;margin-left:4px;color:var(--apple-blue)}.popup-message{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:1000;animation:fade-in-out 2s ease-in-out}.popup-content{background-color:#000c;color:#fff;padding:12px 20px;border-radius:10px;box-shadow:0 4px 15px #0003;display:flex;align-items:center;gap:10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.success-icon{font-weight:700;font-size:16px;color:var(--apple-blue)}@keyframes fade-in-out{0%{opacity:0;transform:translate(-50%,-20px)}15%{opacity:1;transform:translate(-50%)}85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-20px)}}.sidebar-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--apple-medium-gray)}.loading-spinner{width:40px;height:40px;border:4px solid rgba(0,113,227,.2);border-radius:50%;border-top-color:var(--apple-blue);animation:spin 1s ease-in-out infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.settings-panel{background-color:var(--apple-white);border-bottom:1px solid var(--apple-light-gray);padding:16px;animation:slide-down .3s ease-out}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.settings-header h3{margin:0;font-weight:500}.close-settings{background:transparent;border:none;font-size:22px;cursor:pointer;padding:4px 10px;border-radius:50%;color:var(--apple-medium-gray);transition:background-color .2s}.close-settings:hover{background-color:var(--apple-light-gray)}.settings-content{display:flex;flex-direction:column;gap:16px}.settings-group{display:flex;flex-direction:column;gap:8px;text-align:left}.settings-group label{font-size:14px;font-weight:500;color:var(--apple-dark-gray)}.api-key-input{padding:10px 12px;border:1px solid var(--apple-light-gray);border-radius:6px;font-size:14px;font-family:inherit;width:100%;transition:border-color .2s}.api-key-input:focus{border-color:var(--apple-blue);outline:none;box-shadow:0 0 0 2px #0071e333}.system-prompt-textarea{padding:10px 12px;border:1px solid var(--apple-light-gray);border-radius:6px;font-size:14px;font-family:inherit;width:100%;resize:vertical;min-height:80px;transition:border-color .2s}.system-prompt-textarea:focus{border-color:var(--apple-blue);outline:none;box-shadow:0 0 0 2px #0071e333}.settings-header-with-action{display:flex;justify-content:space-between;align-items:center;width:100%}.reset-button{background-color:transparent;border:1px solid var(--apple-light-gray);border-radius:4px;padding:4px 8px;font-size:12px;color:var(--apple-medium-gray);cursor:pointer;transition:all .2s}.reset-button:hover{background-color:var(--apple-light-gray);color:var(--apple-blue)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade-in .3s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.settings-modal{width:90%;max-width:1024px;max-height:85vh;background-color:var(--apple-white);border-radius:16px;box-shadow:0 10px 40px #00000026;overflow:hidden;display:flex;flex-direction:column;animation:slide-up .4s cubic-bezier(.16,1,.3,1)}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.settings-modal .settings-header{padding:20px 24px;border-bottom:1px solid rgba(0,0,0,.08);display:flex;justify-content:space-between;align-items:center;background-color:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:2}.settings-modal .settings-header h3{margin:0;font-weight:600;font-size:18px;color:var(--apple-black)}.settings-modal .close-settings{background:#0000000d;border:none;width:32px;height:32px;font-size:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--apple-dark-gray);transition:all .2s}.settings-modal .close-settings:hover{background-color:#0000001a;transform:scale(1.05)}.settings-modal .settings-content{padding:24px;overflow-y:auto;max-height:calc(85vh - 70px)}.settings-modal .settings-group{margin-bottom:24px}.settings-modal .settings-group label{font-size:15px;font-weight:500;color:var(--apple-black);margin-bottom:10px;display:block}.settings-modal .api-key-input{padding:12px 16px;border:1px solid rgba(0,0,0,.12);border-radius:12px;font-size:15px;width:100%;transition:all .2s;box-shadow:0 2px 5px #0000000a}.settings-modal .api-key-input:focus{border-color:var(--apple-blue);box-shadow:0 0 0 3px #0071e326;outline:none}.settings-modal .system-prompt-textarea{padding:14px 16px;border:1px solid rgba(0,0,0,.12);border-radius:12px;font-size:15px;width:100%;transition:all .2s;resize:vertical;min-height:100px;box-shadow:0 2px 5px #0000000a;line-height:1.5}.settings-modal .system-prompt-textarea:focus{border-color:var(--apple-blue);box-shadow:0 0 0 3px #0071e326;outline:none}.settings-header-with-action{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.reset-button{background-color:transparent;border:1px solid rgba(0,0,0,.15);border-radius:20px;padding:6px 12px;font-size:13px;font-weight:500;color:var(--apple-dark-gray);cursor:pointer;transition:all .2s}.reset-button:hover{background-color:#0000000d;color:var(--apple-blue);border-color:var(--apple-blue)}.auto-save-message{background-color:#2ecc71;color:#fff;text-align:center;padding:10px;font-size:14px;font-weight:500;animation:fade-out 1.5s ease-out;position:relative;letter-spacing:.3px;display:flex;align-items:center;justify-content:center;gap:8px}.auto-save-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:#fff;color:#2ecc71;border-radius:50%;font-size:14px;font-weight:700}@keyframes fade-out{0%{opacity:1}70%{opacity:1}to{opacity:0}}.api-key-warning{background-color:#ffe8e6;border-left:4px solid #ff4d4f;color:#cf1322;padding:12px 16px;display:flex;align-items:center;gap:12px;margin:8px 16px;border-radius:8px;animation:slide-in .3s ease-out}.warning-icon{font-size:18px}.configure-now-btn{margin-left:auto;background-color:#ff4d4f;color:#fff;border:none;border-radius:4px;padding:6px 12px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.configure-now-btn:hover{background-color:#ff7875;transform:translateY(-1px)}@keyframes slide-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.model-input-wrapper{position:relative;width:100%;margin-bottom:8px}.model-input{width:100%;padding:12px 16px;border:1px solid rgba(0,0,0,.12);border-radius:12px;font-size:15px;box-shadow:0 2px 5px #0000000a;transition:all .2s}.model-input:focus{border-color:var(--apple-blue);box-shadow:0 0 0 3px #0071e326;outline:none}.model-hint{font-size:13px;color:var(--apple-medium-gray);margin-top:4px}.required-indicator{color:#ff4d4f;margin-left:4px}.api-key-missing{border-color:#ff4d4f;background-color:#fff1f0}.api-key-hint{font-size:13px;color:#ff4d4f;margin-top:8px;line-height:1.5}.api-key-hint a{color:#1890ff;text-decoration:none}.api-key-hint a:hover{text-decoration:underline}.settings-saved-notification{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:2000;animation:fade-in-out 1.5s ease-in-out;pointer-events:none}.settings-saved-content{background-color:#2ecc71e6;color:#fff;padding:12px 20px;border-radius:30px;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;gap:10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-weight:500}.settings-saved-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:#fff;color:#2ecc71;border-radius:50%;font-size:14px;font-weight:700}
