*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:-apple-system,BlinkMacSystemFont,sans-serif;background:#ffffff;height:100%;overflow:hidden;-webkit-text-size-adjust:100%}#app{height:100vh;height:100dvh;background:#ffffff}.app-container{display:flex;height:100%}.desktop-sidebar{width:320px;background:#ffffff;border-right:1px solid #f0f0f0;display:flex;flex-direction:column;flex-shrink:0}@media (max-width: 1023px){.desktop-sidebar{display:none}}.sidebar-content{height:100%;display:flex;flex-direction:column}.sidebar-header{padding:20px;border-bottom:1px solid #f0f0f0;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;background:#ffffff;position:relative;z-index:10}.logo-container{display:flex;align-items:center;gap:8px}.penguin-logo{font-size:24px}.logo-text{font-size:18px;font-weight:700;color:#000}.desktop-new-chat-btn{width:36px;height:36px;background:none;border:2px solid #6b7280;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;position:relative}.desktop-new-chat-btn:hover{background:#000;border-color:#000}.desktop-new-chat-btn:hover .plus{color:#fff}.desktop-new-chat-btn .plus{font-size:20px;color:#6b7280;font-weight:700;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.history-list{flex:1;overflow-y:auto;padding:0 16px 16px}.date-group{margin-bottom:20px}.section-title{font-size:13px;font-weight:600;color:#666;margin-bottom:8px;text-transform:uppercase;position:sticky;top:0;background:white;padding:16px 0 8px;z-index:5;border-bottom:1px solid #f0f0f0;margin-top:-1px}.sidebar-header:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:20px;background:linear-gradient(to bottom,white,transparent);pointer-events:none;z-index:6}.sessions-container{display:flex;flex-direction:column;gap:8px}.history-item{padding:12px;border:1px solid #f0f0f0;border-radius:12px;background:#ffffff;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:space-between;position:relative}.history-item:hover{background:#f8f9fa}.history-item.active{background:#e0f2fe;border-color:#bae6fd}.history-item.context-menu-active{background:#f0f0f0}.history-content{flex:1;min-width:0}.history-theme{font-size:15px;color:#000;margin-bottom:4px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-meta{font-size:13px;color:#666}.session-menu-btn{background:none;border:none;color:#999;cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease;opacity:.5;flex-shrink:0;margin-left:8px;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.session-menu-btn:hover{opacity:1;background:#f0f0f0;color:#666}.session-menu-btn.mobile{opacity:1;background:#e0f2fe;color:#666}.dots-icon{width:16px;height:16px;color:currentColor}.empty-history{text-align:center;padding:40px 20px;color:#999}.empty-icon{font-size:32px;margin-bottom:8px;opacity:.5}.empty-history p{font-size:14px;margin:0}.empty-subtitle{font-size:12px;opacity:.7;margin-top:4px}.chat-container{flex:1;display:flex;flex-direction:column;min-width:0;background:#ffffff;position:relative}.mobile-header{display:none;padding:16px;border-bottom:1px solid #f0f0f0;align-items:center;justify-content:space-between;flex-shrink:0}@media (max-width: 1023px){.mobile-header{display:flex}}.menu-btn{width:24px;height:24px;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.menu-icon{display:flex;flex-direction:column;gap:3px;width:100%}.line{height:2px;background:#000;border-radius:1px}.line1{width:12px}.line2{width:8px;align-self:flex-start}.title{font-size:17px;font-weight:600;color:#000;text-align:center;flex:1;margin:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.new-chat-btn{width:20px;height:20px;background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.new-chat-btn .plus{font-size:18px;color:#000}.messages-area{flex:1;overflow-y:auto;min-height:0;position:relative}.messages{padding:20px;max-width:800px;margin:0 auto;width:100%;min-height:min-content}.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;background:#ffffff;min-height:60vh}.penguin{font-size:64px;margin-bottom:20px}.welcome-text h2{font-size:24px;font-weight:600;margin-bottom:8px;color:#000}.welcome-text p{font-size:16px;color:#666}.message{display:flex;align-items:flex-start;gap:12px;margin-bottom:24px;position:relative}.message.ai{align-items:flex-start}.message.user{justify-content:flex-end}.avatar{font-size:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:4px}.message-content{display:flex;flex-direction:column;position:relative}.message-content.ai{max-width:85%;width:100%}.message-content.user{align-items:flex-end;max-width:78%}.text{line-height:1.5;font-size:16px;word-wrap:break-word;position:relative}.text.ai{background:transparent;color:#000;padding:0;border-radius:0;text-align:left;width:100%}.text.user{background:#f1f3f4;color:#000;border:1px solid #e9ecef;border-radius:18px 18px 6px;padding:12px 16px 48px;position:relative}.message-actions{display:flex;gap:8px;position:absolute;bottom:12px;right:12px}.action-btn{background:transparent;border:none;padding:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;font-size:13px;color:#6b7280;height:28px;width:28px;border-radius:6px}.action-btn:hover{background:#f9fafb}.copy-icon{width:16px;height:16px;flex-shrink:0;color:currentColor}.loading-indicator{display:flex;justify-content:flex-start;margin-left:44px;padding:8px 0}.loading-content{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:18px;background:#f8f9fa;max-width:500px;width:100%}.typing-dots{display:flex;gap:4px}.dot{width:6px;height:6px;background:#999;border-radius:50%;animation:typing 1.4s infinite ease-in-out}.dot:nth-child(1){animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.loading-text{display:flex;align-items:center;gap:8px;font-size:14px;color:#666}.loading-message{font-weight:500}.loading-time{color:#999;font-size:13px}.request-details{background:#f1f5f9;border-radius:8px;padding:12px;border:1px solid #e2e8f0}.request-id{font-size:12px;color:#475569;font-family:SF Mono,monospace;margin-bottom:4px}.request-note{font-size:11px;color:#64748b;font-style:italic}.loading-progress{display:flex;flex-direction:column;gap:6px}.progress-bar{height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:#007AFF;border-radius:2px;transition:width .3s ease}.progress-text{font-size:12px;color:#666;text-align:center}.cancel-btn{background:#dc2626;color:#fff;border:none;border-radius:8px;padding:10px 16px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;align-self:flex-start;display:flex;align-items:center;gap:6px}.cancel-btn:hover{background:#b91c1c;transform:translateY(-1px)}.cancel-btn.secondary{background:#f1f3f4;color:#5f6368;border:1px solid #dadce0}.cancel-btn.secondary:hover{background:#e8eaed;transform:none}.error-message{display:flex;align-items:flex-start;gap:12px;margin-bottom:24px;margin-left:44px;padding:16px;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;max-width:500px}.error-icon{font-size:16px;margin-top:2px}.error-content{flex:1;display:flex;flex-direction:column;gap:12px}.error-text{color:#dc2626;font-size:14px;line-height:1.4}.retry-btn{background:#dc2626;color:#fff;border:none;border-radius:8px;padding:10px 16px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s ease;align-self:flex-start;display:flex;align-items:center;gap:6px}.retry-btn:hover{background:#b91c1c}.input-area-safe{padding:20px;background:#ffffff;border-top:1px solid #f0f0f0;flex-shrink:0}.input-wrapper-safe{display:flex;gap:12px;align-items:center;max-width:800px;margin:0 auto;width:100%}.text-input-safe{flex:1;padding:12px 16px;border:1px solid #94a3b8;border-radius:20px;font-size:16px;background:#ffffff;min-height:44px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .2s ease}.text-input-safe::placeholder{color:#999}.text-input-safe:focus{border-color:#007aff}.text-input-safe:disabled{background:#f8f9fa;color:#999}.request-info{display:flex;justify-content:space-between;align-items:center;max-width:800px;margin:8px auto 0;padding:0 16px;font-size:13px;color:#666}.info-text{font-weight:500}.info-time{color:#999;font-weight:500}.info-id{color:#999;font-size:12px;font-family:monospace;background:#f1f5f9;padding:2px 6px;border-radius:4px;border:1px solid #e2e8f0}.request-tips{display:flex;justify-content:center;max-width:800px;margin:8px auto 0;padding:0 16px}.tip-text{font-size:12px;color:#64748b;font-style:italic;text-align:center}.send-btn-safe{width:44px;height:44px;border:none;border-radius:50%;color:#fff;font-size:18px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0;-webkit-tap-highlight-color:transparent;position:relative}.send-btn-safe.inactive{background:#93c5fd}.send-btn-safe.active,.send-btn-safe.loading{background:#007AFF}.send-btn-safe:disabled{cursor:not-allowed;opacity:.6}.send-icon{font-size:22px;line-height:1;font-weight:600}.loading-icon{font-size:20px;font-weight:600;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (max-width: 1023px){.send-btn-safe .loading-icon{font-size:18px}.request-info{padding:0 8px;flex-direction:column;gap:4px;align-items:flex-start}.loading-content{margin:0 16px}.error-message{margin-left:16px;margin-right:16px}}.mobile-sidebar{position:fixed;top:0;left:-100%;width:85%;max-width:300px;height:100vh;height:100dvh;background:#ffffff;z-index:1000;transition:left .3s ease;box-shadow:2px 0 8px #0000001a}.mobile-sidebar.open{left:0}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#666;width:32px;height:32px;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:999}.mobile-sidebar{z-index:1000}.sidebar-content{position:relative;z-index:1001;background:white;height:100%}.context-menu{position:fixed;background:white;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 8px 24px #0000001f;z-index:1100;min-width:200px;padding:8px;animation:contextMenuFadeIn .15s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.context-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:none;background:none;text-align:left;cursor:pointer;border-radius:8px;font-size:14px;color:#333;transition:all .2s ease;font-family:-apple-system,BlinkMacSystemFont,sans-serif}.context-menu-item:hover{background:#f5f5f5}.context-menu-item.delete{color:#d32f2f}.context-menu-item.delete:hover{background:#ffebee}.context-menu-icon{width:16px;height:16px;color:currentColor;flex-shrink:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1200;animation:modalFadeIn .2s ease-out}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:white;border-radius:16px;box-shadow:0 20px 60px #0003;max-width:400px;width:90%;max-height:90vh;overflow:hidden;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{padding:20px 24px 0;display:flex;align-items:center;justify-content:space-between}.modal-header h3{font-size:18px;font-weight:600;color:#000;margin:0}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#666;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:background-color .2s ease}.modal-close:hover{background:#f5f5f5}.modal-body{padding:20px 24px}.modal-input{width:100%;padding:12px 16px;border:1px solid #e0e0e0;border-radius:12px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,sans-serif;outline:none;transition:border-color .2s ease}.modal-input:focus{border-color:#007aff}.modal-body p{margin:0 0 12px;color:#333;line-height:1.5}.modal-warning{color:#d32f2f!important;font-size:14px;font-weight:500}.modal-footer{padding:0 24px 20px;display:flex;gap:12px;justify-content:flex-end}.modal-btn{padding:10px 20px;border:none;border-radius:12px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:-apple-system,BlinkMacSystemFont,sans-serif}.modal-btn.cancel{background:#f5f5f5;color:#666}.modal-btn.cancel:hover{background:#e0e0e0}.modal-btn.confirm{background:#007AFF;color:#fff}.modal-btn.confirm:hover:not(:disabled){background:#0056cc}.modal-btn.confirm:disabled{background:#93c5fd;cursor:not-allowed}.modal-btn.delete{background:#d32f2f;color:#fff}.modal-btn.delete:hover{background:#b71c1c}.code-block{background:#f1f5f9;border-radius:12px;margin:12px 0;overflow:hidden;border:1px solid #e2e8f0}.code-header{background:#e2e8f0;color:#475569;padding:10px 16px;font-size:13px;font-family:SF Mono,monospace;font-weight:600;border-bottom:1px solid #cbd5e1}.code-block pre{margin:0;padding:16px;overflow-x:auto;background:#f1f5f9}.code-block code{color:#1e293b;font-family:SF Mono,monospace;font-size:14px;line-height:1.5}.code-actions{padding:12px 16px;background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end}.code-copy-btn{background:transparent;border:1px solid #cbd5e1;border-radius:8px;padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s ease;font-size:13px;color:#475569;font-weight:500;font-family:-apple-system,BlinkMacSystemFont,sans-serif}.code-copy-btn:hover{background:#f1f5f9;border-color:#94a3b8}.code-copy-btn .copy-icon{width:14px;height:14px}.inline-code{background:#f1f5f9;color:#1e293b;padding:2px 6px;border-radius:6px;font-family:SF Mono,monospace;font-size:14px;border:1px solid #e2e8f0}.messages-area::-webkit-scrollbar{width:8px}.messages-area::-webkit-scrollbar-track{background:transparent}.messages-area::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.messages-area::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media screen and (min-width: 1400px){.messages,.input-wrapper-safe{max-width:900px}}.history-list::-webkit-scrollbar{width:4px}.history-list::-webkit-scrollbar-track{background:transparent}.history-list::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}@media (max-width: 1023px){.context-menu{min-width:220px;font-size:16px}.context-menu-item{padding:14px 16px;font-size:16px;gap:14px}.modal-content{margin:20px;width:calc(100% - 40px)}.error-message,.loading-indicator{margin-left:16px;margin-right:16px}.request-details{font-size:11px}}
