*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body,#root,.app{width:100%;max-width:100%;overflow-x:hidden}:root{--edge-pad: 12px;--shift: clamp(10px, 6vw, 48px);--lb-gutter: clamp(12px, 8vw, 48px);--lb-gap-to-image: 14px;--outline-color: #8fb4ff;--outline-size: 2px;--gallery-arrow-inset: clamp(4px, 1.2vw, 10px);--text-outline-shadow: var(--outline-size) var(--outline-size) 0 var(--outline-color), -var(--outline-size) var(--outline-size) 0 var(--outline-color), var(--outline-size) -var(--outline-size) 0 var(--outline-color), -var(--outline-size) -var(--outline-size) 0 var(--outline-color), var(--outline-size) 0 0 var(--outline-color), -var(--outline-size) 0 0 var(--outline-color), 0 var(--outline-size) 0 var(--outline-color), 0 -var(--outline-size) 0 var(--outline-color)}.text-outline{text-shadow:var(--text-outline-shadow)}.app{height:100vh;display:flex;flex-direction:column;font-family:sans-serif;background-color:#e3ebee}.header{background:#94a3b8;padding:4px 12px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10;box-shadow:0 8px 20px #00000059;border-bottom-left-radius:12px;border-bottom-right-radius:12px}.dark .header{background:#374151;border-bottom:none}.logo-title{display:flex;align-items:center;gap:10px}.logo{height:32px;width:auto}.bot{height:64px;width:auto}.dark-toggle{background-color:#3571dd;color:#fff;border:none;font-weight:700;padding:6px 14px;border-radius:6px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.dark-toggle:hover{transform:scale(1.1);box-shadow:0 0 0 4px #8fb4ff99}.dark-toggle:focus{transform:none;box-shadow:none;outline:none}.chat-area{flex:1;overflow-y:auto;padding:28px var(--edge-pad) 12px var(--edge-pad);display:flex;flex-direction:column;background-color:#e3ebee}.dark .chat-area{background-color:#1f2937}.msg{width:calc(100% - (var(--edge-pad) * 2) - var(--side-offset, var(--shift)));max-width:900px;margin-top:12px;margin-bottom:12px;word-wrap:break-word;overflow-wrap:anywhere;border-radius:12px;padding:4px 10px;box-shadow:0 6px 20px #00000040;font-size:.875rem}.user-msg{--side-offset: var(--shift);background:linear-gradient(to right,#2563eb,#93c5fd);color:#fff;margin-left:var(--edge-pad);margin-right:calc(var(--edge-pad) + var(--side-offset));padding:14px 10px}.bot-msg{--side-offset: var(--shift);background:#fff;color:#000;margin-left:calc(var(--edge-pad) + var(--side-offset));margin-right:var(--edge-pad);padding:14px 10px}.dark .bot-msg{background:#374151;color:#f9fafb}.html-output{background:transparent;color:inherit;padding:0;line-height:1.5}.dark a{color:#93c5fd}.dark a:hover{color:#bfdbfe;text-decoration:underline}.feedback-thanks{font-weight:500}.input-bar{display:flex;padding:8px 12px;background:#e3ebee;position:sticky;bottom:0}.input-bar input{flex:1;padding:10px;margin-right:8px;border-radius:12px;border:2px solid #3571dd;background:#fff;color:#000;font-size:16px}.input-bar input:hover,.input-bar input:focus{outline:none;box-shadow:0 0 0 3px #8fb4ff99}.dark .input-bar{background:#1f2937}.dark .input-bar input{background-color:#4b5563;color:#fff}.dark .input-bar input:hover,.dark .input-bar input:focus{box-shadow:0 0 0 3px #93c5fd99}.inline-image-gallery-wrapper{position:relative;display:flex;align-items:center;padding-left:calc(2.8rem + var(--gallery-arrow-inset));padding-right:calc(2.8rem + var(--gallery-arrow-inset))}.inline-image-gallery{display:flex;overflow-x:auto;gap:.5rem;height:170px;position:relative}.inline-image-gallery::-webkit-scrollbar{display:none}.gallery-thumb{width:160px;height:160px;object-fit:cover;cursor:pointer;border-radius:6px;transition:transform .2s;box-shadow:0 0 4px #0003}.gallery-thumb:hover{transform:scale(1.05);z-index:2}.scroll-arrow.small{font-size:calc(2.4rem + 2px);font-weight:700;position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:#3571dd;cursor:pointer;z-index:10;padding:0;line-height:1;padding-inline:6px;overflow:visible;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:transform .2s ease,text-shadow .2s ease}.scroll-arrow.small:hover{--outline-size: 2px;--outline-color: #8fb4ff;text-shadow:var(--text-outline-shadow);transform:translateY(-50%) scale(1.4)}@supports (-webkit-text-stroke: 1px #000){.scroll-arrow.small:hover{text-shadow:none;-webkit-text-stroke:var(--outline-size) var(--outline-color);paint-order:stroke fill}}.scroll-arrow.small.left{left:calc(.4rem + var(--gallery-arrow-inset))}.scroll-arrow.small.right{right:calc(.4rem + var(--gallery-arrow-inset))}.dark .scroll-arrow.small{color:#3571dd;text-shadow:0 0 4px rgba(53,113,221,.85),0 0 8px rgba(53,113,221,.6)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#ffffffd9;z-index:999;display:flex;align-items:center;justify-content:center;padding-top:4rem}.dark .lightbox{background-color:#000000e6}.lightbox-main{display:flex;flex-direction:column;align-items:center}.lightbox-img-wrapper{display:grid;grid-template-columns:minmax(var(--lb-gutter),1fr) minmax(0,max-content) minmax(var(--lb-gutter),1fr);align-items:center;width:100vw;max-width:100vw}.lightbox-img{grid-column:2;max-width:min(90vw,calc(100vw - 2 * var(--lb-gutter)));max-height:65vh;border-radius:12px;box-shadow:0 0 20px #000}.lightbox-caption{margin-top:1rem;padding:.75rem 1.25rem;max-width:90vw;text-align:center;font-size:.95rem;line-height:1.6;border-radius:10px;background-color:#e5e7eb;color:#1f2937;font-weight:500;box-shadow:0 2px 6px #0000001a}.dark .lightbox-caption{background-color:#374151;color:#f9fafb}.scroll-arrow.large{position:static;grid-row:1;font-size:calc(3rem + 2px);font-weight:700;color:#3571dd;background:none;border:none;line-height:1;cursor:pointer;z-index:1;transition:text-shadow .2s ease,transform .2s ease}.scroll-arrow.large.left{grid-column:1;justify-self:end;margin-right:var(--lb-gap-to-image)}.scroll-arrow.large.right{grid-column:3;justify-self:start;margin-left:var(--lb-gap-to-image)}@media (hover: hover) and (pointer: fine){.scroll-arrow.large:hover{text-shadow:var(--text-outline-shadow);transform:scale(1.15)}@supports (-webkit-text-stroke: 1px #000){.scroll-arrow.large:hover{text-shadow:none;-webkit-text-stroke:var(--outline-size) var(--outline-color);paint-order:stroke fill}}}@media (max-width: 600px){.gallery-thumb{width:140px;height:140px}.inline-image-gallery-wrapper{padding-left:2.2rem;padding-right:2.2rem}.scroll-arrow.small{font-size:calc(2rem + 2px)}.scroll-arrow.small.left{left:.3rem}.scroll-arrow.small.right{right:.3rem}.lightbox-caption{font-size:.9rem;padding:.5rem}.scroll-arrow.large{font-size:calc(2.5rem + 2px)}}@media (max-width: 420px){:root{--lb-gutter: clamp(8px, 5vw, 24px)}}@media (hover: none) and (pointer: coarse){html,body{overflow:hidden}.app{height:100svh;min-height:100svh}@supports (height: 100dvh){.app{height:100dvh;min-height:100dvh}}.chat-area{overflow-y:auto;overscroll-behavior:contain}.app .scroll-arrow.small{font-size:0;color:transparent;text-shadow:none!important;background:none;border:0;padding:0!important;overflow:visible;transform:translateY(calc(-50% - 8px))!important}.app .scroll-arrow.small:hover,.app .scroll-arrow.small:focus,.app .scroll-arrow.small:active{text-shadow:none!important;outline:none!important;background:none!important;transform:translateY(calc(-50% - 8px))!important}.app .scroll-arrow.small:before{content:"❯";display:inline-block;font-size:calc(1.3rem + 1px);line-height:1;color:#3571dd;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app .scroll-arrow.small.left:before{content:"❮"}.app .scroll-arrow.small.left{left:.1rem!important}.app .scroll-arrow.small.right{right:.1rem!important}.app .inline-image-gallery-wrapper{padding-left:1.3rem!important;padding-right:1.3rem!important}.app .scroll-arrow.small:hover:before,.app .scroll-arrow.small:focus:before,.app .scroll-arrow.small:active:before{transform:none!important;text-shadow:none!important;-webkit-text-stroke:0!important}.dark-toggle{outline:none!important;box-shadow:none!important}.dark-toggle:hover,.dark-toggle:focus,.dark-toggle:active{outline:none!important;box-shadow:none!important;transform:none!important}}@media (max-width: 480px) and (orientation: portrait){:root{--controls-pad: clamp(12px, 6vw, 22px);--controls-gap: clamp(12px, 7vw, 28px);--controls-row-h: 76px}.app .lightbox-main{display:grid;grid-template-columns:var(--controls-pad) 1fr var(--controls-pad);grid-template-rows:auto auto var(--controls-row-h);column-gap:var(--controls-gap);row-gap:8px;width:100%;max-width:90vw;margin:0 auto}.app .lightbox-img-wrapper{display:contents}.app .lightbox-img{grid-column:1 / -1;grid-row:1;max-width:100%;max-height:55vh}.app .lightbox-caption{grid-column:1 / -1;grid-row:2;margin-top:.5rem}.app .scroll-arrow.large{grid-row:3;width:100%;height:100%;display:flex;align-items:center;justify-content:center;line-height:1;padding-inline:12px;overflow:visible;font-size:0;color:transparent;background:transparent;border:0;transform:none;text-shadow:none}.app .scroll-arrow.large:before{content:"❯";display:inline-block;font-size:clamp(3.2rem,12vw,4.6rem);line-height:1;color:#3571dd;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app .scroll-arrow.large.left:before{content:"❮"}.app .scroll-arrow.large.left{grid-column:1;justify-content:flex-start;padding-right:18px}.app .scroll-arrow.large.right{grid-column:3;justify-content:flex-end;padding-left:18px}@media (hover: none) and (pointer: coarse){.app .scroll-arrow.large:hover,.app .scroll-arrow.large:focus,.app .scroll-arrow.large:active,.app .scroll-arrow.large:hover:before,.app .scroll-arrow.large:focus:before,.app .scroll-arrow.large:active:before{transform:none;text-shadow:none;-webkit-text-stroke:0;outline:none}}}@media (hover: none) and (pointer: coarse) and (orientation: landscape){.header{display:none!important}.chat-area{padding-top:8px!important}.app .lightbox{height:100svh;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;padding-top:max(6px,env(safe-area-inset-top))}.app .lightbox-main{display:grid;grid-template-columns:minmax(var(--lb-gutter),1fr) minmax(0,max-content) minmax(var(--lb-gutter),1fr);grid-template-rows:auto auto;align-items:start;justify-items:center;gap:8px;height:100%;padding:max(6px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.app .lightbox-img-wrapper{display:contents}.app .lightbox-img{grid-column:2;grid-row:1;max-width:100vw;max-height:70svh;object-fit:contain;margin:0}.app .lightbox-caption{grid-column:2;grid-row:2;width:100%;max-width:90vw;margin-top:.25rem;justify-self:center}.app .scroll-arrow.large{grid-row:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding-inline:10px;overflow:visible;font-size:0;color:transparent;background:transparent;border:0;transform:translateY(-6px);text-shadow:none}.app .scroll-arrow.large.left{grid-column:1;justify-self:end;margin-right:var(--lb-gap-to-image)}.app .scroll-arrow.large.right{grid-column:3;justify-self:start;margin-left:var(--lb-gap-to-image)}.app .scroll-arrow.large:before{content:"";display:inline-block;width:24px;height:24px;border-top:6px solid #3571dd;border-right:6px solid #3571dd;transform:rotate(45deg);margin-top:-2px}.app .scroll-arrow.large.left:before{transform:rotate(-135deg)}.app .scroll-arrow.large:hover,.app .scroll-arrow.large:focus,.app .scroll-arrow.large:active,.app .scroll-arrow.large:hover:before,.app .scroll-arrow.large:focus:before,.app .scroll-arrow.large:active:before{text-shadow:none;-webkit-text-stroke:0;outline:none}}.html-output a{position:relative;z-index:2;pointer-events:auto}.html-output,.html-output *{pointer-events:auto}.msg,.html-output{position:relative;z-index:0}.inline-image-gallery-wrapper{position:relative;isolation:isolate;z-index:0}.inline-image-gallery{position:relative;z-index:0}.inline-image-gallery-wrapper .scroll-arrow.small,.inline-image-gallery-wrapper .scroll-arrow.large{z-index:2}.html-output a{position:relative;z-index:3;pointer-events:auto}.typing-indicator{display:inline-flex;align-items:center;gap:6px;font-size:.95rem;opacity:.95;color:inherit}.typing-indicator .dots{display:inline-flex;gap:4px;margin-left:2px}.typing-indicator .dots span{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.35;animation:typing-bounce 1.2s infinite ease-in-out}.typing-indicator .dots span:nth-child(2){animation-delay:.15s}.typing-indicator .dots span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,80%,to{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}}body{margin:0;font-family:sans-serif}.dark{background-color:#1f2937;color:#fff}
