.message-list{flex:1;padding:20px;display:flex;flex-direction:column;gap:15px;overflow-y:auto;scroll-behavior:smooth;position:relative}.welcome-message{text-align:center;max-width:600px;margin:auto;padding:var(--space-xl);background-color:var(--light-color);border-radius:8px}.welcome-message h2{color:var(--primary-color);margin-bottom:var(--space-sm)}.welcome-message ul{text-align:left;margin-top:var(--space-md);padding-left:1.5rem}.welcome-message li{margin-bottom:var(--space-sm);font-style:italic}.message{max-width:80%;padding:12px 16px;border-radius:12px;position:relative}.user-message{align-self:flex-end;background-color:var(--primary-color);color:#fff;border-bottom-right-radius:4px}.assistant-message{align-self:flex-start;background-color:var(--light-color);color:#333;border-bottom-left-radius:4px}.message-content{margin-bottom:4px;line-height:1.5}.message-timestamp{font-size:.75em;opacity:.7;text-align:right}.streaming-content{position:relative;white-space:pre-wrap;word-wrap:break-word}.streaming-cursor{display:inline-block;background-color:var(--primary-color);width:2px;height:1.2em;margin-left:2px;animation:cursor-blink 1s infinite;vertical-align:baseline}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:0}}.thinking-bubble{padding:.75rem 1rem;min-width:60px;background-color:var(--light-color);display:flex;align-items:center;justify-content:center}.thinking-dots{display:flex;align-items:center;gap:4px}.thinking-dots span{display:inline-block;width:8px;height:8px;border-radius:50%;background-color:var(--primary-color);opacity:.7;animation:thinking-animation 1.4s infinite}.thinking-dots span:nth-child(1){animation-delay:0s}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}@keyframes thinking-animation{0%,to{transform:translateY(0);opacity:.7}50%{transform:translateY(-5px);opacity:1}}.markdown-content{line-height:1.6}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin-top:1rem;margin-bottom:.5rem;font-weight:600}.markdown-content h1{font-size:1.5rem}.markdown-content h2{font-size:1.3rem}.markdown-content h3{font-size:1.2rem}.markdown-content p{margin-bottom:.75rem}.markdown-content ul,.markdown-content ol{padding-left:1.5rem;margin-bottom:.75rem}.markdown-content li{margin-bottom:.25rem}.markdown-content code{background-color:#0000000d;border-radius:3px;padding:.2em .4em;font-family:monospace;font-size:.85em;word-break:break-all}.markdown-content pre{background-color:#0000000d;border-radius:3px;padding:.75rem;overflow-x:auto;margin-bottom:.75rem;max-width:100%}.markdown-content pre code{font-size:.85em;padding:0;background-color:transparent}.markdown-content blockquote{border-left:4px solid var(--primary-color);padding-left:1rem;margin-left:0;margin-right:0;font-style:italic}.markdown-content a{color:var(--accent-color);text-decoration:underline;word-break:break-all}.markdown-content img{max-width:100%;height:auto;margin:.5rem 0;display:block}.markdown-content table{border-collapse:collapse;width:100%;margin-bottom:1rem;font-size:.9em;overflow-x:auto;display:block}.markdown-content th,.markdown-content td{border:1px solid #ccc;padding:.5rem;text-align:left}.markdown-content th{background-color:#0000000d}.markdown-content p:last-child{margin-bottom:0}@media (max-width: 480px){.message-list{padding:var(--space-sm);gap:var(--space-sm)}.welcome-message{padding:var(--space-lg)}.message-bubble{max-width:90%;padding:.5rem .75rem}.thinking-bubble{padding:.5rem .75rem;background-color:var(--light-color);min-width:50px}.thinking-dots span{width:6px;height:6px}.markdown-content img{max-width:100%;height:auto}.markdown-content pre{padding:.5rem}.markdown-content h1{font-size:1.3rem}.markdown-content h2{font-size:1.2rem}.markdown-content h3{font-size:1.1rem}}@media (max-height: 480px) and (orientation: landscape){.message-list{padding:var(--space-xs) var(--space-sm)}.welcome-message{padding:var(--space-md)}.welcome-message h2{margin-bottom:var(--space-sm)}}.message-input{display:flex;gap:10px;padding:20px;background-color:#fff;border-top:1px solid #e0e0e0}.message-input input{flex:1;padding:12px;border:1px solid #e0e0e0;border-radius:4px;font-size:1em}.message-input input:focus{outline:none;border-color:#722f37}.message-input button{padding:12px 24px;background-color:#722f37;color:#fff;border:none;border-radius:4px;font-size:1em;cursor:pointer;transition:background-color .2s ease}.message-input button:hover:not(:disabled){background-color:#5a252c}.message-input button:disabled{background-color:#ccc;cursor:not-allowed}.message-input .share-button{background-color:#3a7a9f}.message-input .share-button:hover:not(:disabled){background-color:#2a6080}@media (max-width: 480px){.message-input{padding:var(--space-sm)}.message-input input{padding:.5rem .75rem;font-size:var(--font-size-base);min-height:40px}.message-input button{min-width:60px;padding:0 .75rem;height:40px}.message-input .share-button{padding:0 .5rem}}@media (max-height: 480px) and (orientation: landscape){.message-input{padding:var(--space-xs) var(--space-sm)}.message-input input{min-height:36px;max-height:80px}.message-input button{height:36px}}.example-questions{margin-bottom:15px}.example-questions h3{color:#722f37;margin-bottom:10px;font-size:1em}.questions-list{display:flex;flex-wrap:wrap;gap:8px}.example-question{background-color:#f9f7f3;border:1px solid #e0e0e0;border-radius:16px;padding:6px 12px;font-size:.9em;color:#333;cursor:pointer;transition:all .2s ease;white-space:nowrap}.example-question:hover{background-color:#722f37;color:#fff;border-color:#722f37;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.example-question:active{transform:translateY(0);box-shadow:none}@media (max-width: 480px){.example-questions{margin-bottom:10px}.example-question{padding:4px 10px;font-size:.85em}}.snackbar-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.snackbar{pointer-events:auto;min-width:300px;max-width:500px;border-radius:8px;box-shadow:0 4px 20px #00000026;animation:snackbar-enter .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.snackbar-content{display:flex;align-items:center;padding:12px 16px;gap:12px}.snackbar-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.snackbar-message{flex:1;font-size:14px;font-weight:500;line-height:1.4}.snackbar-close{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s ease}.snackbar-close:hover{opacity:1}.snackbar-success{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.snackbar-success .snackbar-close:hover{background:#ffffff1a}.snackbar-error{background:linear-gradient(135deg,#f44336,#d32f2f);color:#fff}.snackbar-error .snackbar-close:hover{background:#ffffff1a}.snackbar-warning{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.snackbar-warning .snackbar-close:hover{background:#ffffff1a}.snackbar-info{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.snackbar-info .snackbar-close:hover{background:#ffffff1a}@keyframes snackbar-enter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes snackbar-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@media (max-width: 600px){.snackbar-container{top:10px;right:10px;left:10px}.snackbar{min-width:auto;max-width:none}.snackbar-content{padding:10px 12px}.snackbar-message{font-size:13px}}@media (prefers-color-scheme: dark){.snackbar{box-shadow:0 4px 20px #0000004d}}@media (prefers-contrast: high){.snackbar{border:2px solid currentColor}}@media (prefers-reduced-motion: reduce){.snackbar{animation:none}@keyframes snackbar-enter{0%,to{opacity:1;transform:translate(0)}}}.bottom-banner{position:fixed;bottom:0;left:0;right:0;z-index:1000;animation:bottom-banner-enter .3s ease-out}.bottom-banner-content{display:flex;align-items:center;padding:12px 16px;gap:12px;min-height:48px}.bottom-banner-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center}.bottom-banner-message{flex:1;font-size:14px;font-weight:500;line-height:1.4;text-align:center}.bottom-banner-close{flex-shrink:0;background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;opacity:.8;transition:opacity .2s ease}.bottom-banner-close:hover{opacity:1}.bottom-banner-error{background:linear-gradient(135deg,#f44336,#d32f2f);color:#fff}.bottom-banner-error .bottom-banner-close:hover{background:#ffffff1a}.bottom-banner-warning{background:linear-gradient(135deg,#ff9800,#f57c00);color:#fff}.bottom-banner-warning .bottom-banner-close:hover{background:#ffffff1a}.bottom-banner-info{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.bottom-banner-info .bottom-banner-close:hover{background:#ffffff1a}.bottom-banner-success{background:linear-gradient(135deg,#4caf50,#45a049);color:#fff}.bottom-banner-success .bottom-banner-close:hover{background:#ffffff1a}.bottom-banner-message.html-content{line-height:1.5}.bottom-banner-message.html-content p{margin:.25em 0}.bottom-banner-message.html-content a{color:inherit;text-decoration:underline;font-weight:600}.bottom-banner-message.html-content a:hover{opacity:.8}.bottom-banner-message.html-content strong{font-weight:700}.bottom-banner-message.html-content em{font-style:italic}.bottom-banner-message.html-content br{line-height:1.5}@keyframes bottom-banner-enter{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes bottom-banner-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(100%)}}@media (max-width: 600px){.bottom-banner-content{padding:10px 12px;gap:8px}.bottom-banner-message{font-size:13px}}@media (prefers-color-scheme: dark){.bottom-banner{box-shadow:0 -2px 10px #0000004d}}@media (prefers-contrast: high){.bottom-banner{border-top:2px solid currentColor}}@media (prefers-reduced-motion: reduce){.bottom-banner{animation:none}@keyframes bottom-banner-enter{0%,to{opacity:1;transform:translateY(0)}}}.chat-interface{display:flex;flex-direction:column;height:100%;width:100%;max-width:900px;margin:0 auto;background-color:#f9f7f3;border-radius:8px;box-shadow:0 2px 10px #0000001a;overflow:hidden;position:relative}.chat-content{flex:1;display:flex;flex-direction:column;padding:0;scroll-behavior:smooth;min-height:0}.chat-input-section{flex-shrink:0;background-color:#fff;border-top:1px solid #e0e0e0;padding:20px;z-index:10}.connection-status{position:absolute;top:0;left:0;right:0;padding:8px;background-color:#fc0;color:#333;text-align:center;font-size:14px;z-index:100}.connection-status a{color:#722f37;text-decoration:underline;font-weight:500}.connection-status a:hover{color:#5a252c}.error-message{margin:10px 0;padding:10px;background-color:#ffebee;color:#d32f2f;border-radius:4px;font-size:14px}.error-message.html-content{line-height:1.5}.error-message.html-content p{margin:.5em 0}.error-message.html-content a{color:#d32f2f;text-decoration:underline}.error-message.html-content a:hover{color:#b71c1c}.error-message.html-content strong{font-weight:700}.error-message.html-content em{font-style:italic}.error-message.html-content ul,.error-message.html-content ol{margin:.5em 0;padding-left:1.5em}.error-message.html-content li{margin:.25em 0}.error-message.html-content br{line-height:1.5}@media (max-width: 900px){.chat-interface{border-radius:0;box-shadow:none;height:100%}}@media (max-width: 480px){.chat-interface{width:100%;height:100%;margin:0}.chat-input-section{padding:10px}}@media (max-height: 480px) and (orientation: landscape){.chat-interface{height:100%}.chat-input-section{padding:8px}}.token-form{max-width:500px;margin:2rem auto;padding:2rem;background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a}.token-form h2{color:var(--primary-color);margin-bottom:1rem;text-align:center}.token-form p{margin-bottom:1.5rem;text-align:center;color:var(--text-color)}.token-form .form-group{margin-bottom:1.5rem}.token-form label{display:block;margin-bottom:.5rem;font-weight:500}.token-form input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s}.token-form input:focus{border-color:var(--accent-color);outline:none}.token-form button{width:100%;padding:.75rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.token-form button:hover{background-color:var(--secondary-color)}.token-form button:disabled{background-color:#ccc;cursor:not-allowed}.token-form .error-message{color:#d32f2f;margin-bottom:1rem;padding:.5rem;background-color:#ffebee;border-radius:4px;text-align:center}@media (max-width: 600px){.token-form{padding:1.5rem;margin:1rem;width:calc(100% - 2rem)}}.token-form .token-display{margin:1.5rem 0;padding:1rem;background-color:#f9f7f3;border-radius:8px;border:1px dashed #ccc;text-align:center}.token-form .token{font-size:28px;font-weight:700;letter-spacing:3px;color:#722f37;margin:1rem 0;padding:.5rem}.token-form .token-warning{color:#e53935;font-weight:700;margin-top:1rem;font-size:.9rem}.scroll-to-bottom-button-container{position:relative}.scroll-to-bottom-button{position:absolute;bottom:10px;right:20px;width:48px;height:48px;background-color:#722f37;color:#fff;border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0003;transition:all .2s ease;z-index:10}.scroll-to-bottom-button:hover{background-color:#5a252c;transform:translateY(-2px);box-shadow:0 4px 12px #00000040}.scroll-to-bottom-button:active{transform:translateY(0);box-shadow:0 2px 8px #0003}.scroll-to-bottom-button svg{pointer-events:none}@media (max-width: 480px){.scroll-to-bottom-button{width:44px;height:44px;bottom:40px;right:15px}.scroll-to-bottom-button svg{width:18px;height:18px}}@media (max-height: 480px) and (orientation: landscape){.scroll-to-bottom-button{bottom:80px}}.app-container{display:flex;flex-direction:column;height:100vh;width:100%;overflow:hidden}.app{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.app-header{background-color:var(--primary-color);color:#fff;padding:.5rem 1rem;box-shadow:0 2px 4px #0000001a;flex-shrink:0;z-index:10}.app-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;width:100%}.app-header h1{font-size:var(--font-size-large);margin:0;font-weight:500}.app-footer{background-color:var(--secondary-color);color:#fff;text-align:center;padding:var(--space-sm);font-size:var(--font-size-small);flex-shrink:0;z-index:10}@media (max-width: 768px){.app-header{padding:.4rem .75rem}.header-content{max-width:none;margin:0}.app-header h1{font-size:var(--font-size-base)}.app-footer{padding:var(--space-xs) var(--space-sm);font-size:.75rem}}@media (max-width: 480px){.app-header{padding:.4rem .75rem}.app-header h1{font-size:var(--font-size-base)}.app-content{padding:var(--space-sm)}.app-footer{padding:var(--space-xs) var(--space-sm);font-size:.75rem}}@media (max-height: 480px) and (orientation: landscape){.app-header{padding:.3rem .75rem}.app-header h1{font-size:var(--font-size-base)}.app-footer{padding:var(--space-xs)}}:root{--primary-color: #1976d2;--secondary-color: #0d47a1;--accent-color: #42a5f5;--background-color: #f5f5f5;--text-color: #333;--light-color: #e3f2fd;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--font-size-small: .875rem;--font-size-base: 1rem;--font-size-large: 1.25rem;--font-size-xl: 1.5rem;--font-size-xxl: 2rem}html{box-sizing:border-box;height:100%;font-size:16px}*,*:before,*:after{box-sizing:inherit;margin:0;padding:0}body{font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-color);color:var(--text-color);line-height:1.6;height:100%;width:100%;overflow-x:hidden;position:fixed}#root{display:flex;flex-direction:column;height:100%;width:100%}h1{font-size:var(--font-size-xxl)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-large)}p,li,input,textarea,button{font-size:var(--font-size-base)}@media (max-width: 480px){html{font-size:14px}:root{--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem}}@media (min-width: 481px) and (max-width: 768px){html{font-size:15px}}@media (min-width: 769px){html{font-size:16px}}
