@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&display=swap";.app-shell{color:var(--fg);flex-direction:column;height:100%;max-height:100%;transition:color .2s,background-color .2s;display:flex;overflow:hidden}.app-shell.chat-mode{padding:0}.sidebar{align-self:start;position:sticky;top:32px}.main{flex-direction:column;flex:1;min-width:0;height:100%;max-height:100%;display:flex;overflow:hidden}.main.wide{height:100%;max-height:100%}.top{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.tabs{background:var(--card);border:1px solid var(--border);border-radius:999px;gap:10px;padding:4px;display:inline-flex}.tab{color:var(--muted);border:1px solid #0000;border-radius:999px;padding:8px 14px;font-weight:600}.tab.active{background:var(--accent);color:#0b0e12;box-shadow:0 10px 26px #00000040}.content{flex:1;height:100%;min-height:0;max-height:100%;overflow:hidden}.chat-mode .content{padding-bottom:0}.content .tools-shell,.content .chat-shell{height:100%;max-height:100%}.settings-card{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;gap:10px;padding:16px;display:grid}.settings-card.compact{border:1px solid var(--border);box-shadow:none;background:0 0;border-radius:12px;padding:0;overflow:hidden}.settings-card.compact:hover{box-shadow:none;border-color:var(--border);background:0 0;transform:none}.settings-toggle{width:100%;color:var(--muted);cursor:pointer;box-shadow:none;background:0 0;border:none;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;transition:all .15s;display:flex}.settings-toggle:hover{color:var(--fg);box-shadow:none;background:#ffffff0a;transform:none}.settings-toggle-icon{font-size:1rem}.settings-toggle-text{text-align:left;flex:1}.settings-chevron{opacity:.5;font-size:1.25rem;transition:transform .2s}.settings-chevron.open{transform:rotate(90deg)}.settings-content{border-top:1px solid var(--border);flex-direction:column;gap:.75rem;padding:0 1rem 1rem;animation:.2s slideDown;display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.settings-content .settings-head{justify-content:space-between;align-items:center;gap:.5rem;padding-top:.75rem;display:flex}.settings-admin-block{border-top:1px solid var(--border);margin-top:.25rem;padding-top:.75rem}.settings-admin-title{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem;font-size:.8rem}.admin-emails{flex-direction:column;gap:.6rem;display:flex}.admin-emails-head{justify-content:space-between;align-items:center;display:flex}.admin-emails-head h4{margin:0;font-size:.95rem}.admin-emails-note{color:var(--muted);margin:0;font-size:.76rem}.admin-emails-add-row{gap:.5rem;display:flex}.admin-emails-add-row input{flex:1}.admin-emails-status{color:var(--muted);margin:0;font-size:.78rem}.admin-emails-error{color:#f87171;margin:0;font-size:.78rem}.admin-emails-list{flex-direction:column;gap:.35rem;max-height:11rem;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.admin-emails-list li{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .5rem;display:flex}.admin-emails-item-email{word-break:break-all;font-size:.78rem}.settings-session{align-items:center;gap:.5rem;display:flex}.session-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.6875rem}.session-id{color:var(--fg);background:#ffffff0d;border-radius:4px;padding:.125rem .375rem;font-family:monospace;font-size:.75rem}.settings-actions{align-items:center;gap:.375rem;display:flex}.theme-select{border:1px solid var(--border);width:auto;min-width:auto;color:var(--fg);cursor:pointer;background:#ffffff0f;border-radius:6px;padding:.375rem .5rem;font-size:.75rem}.theme-select option{background:var(--bg-soft);color:var(--fg)}:root[data-theme=light] .theme-select{background:#0000000a}:root[data-theme=light] .theme-select option{background:var(--bg-soft)}:root[data-theme=light] .json-copy-btn{color:#0009;background:#ffffffe6;border:1px solid #0000001f}:root[data-theme=light] .json-copy-btn:hover{color:#000c;background:#f0f0f5;border-color:#0003}:root[data-theme=light] .json-copy-btn.copied{color:#16a34a;background:#22c55e26;border-color:#22c55e4d}.reset-btn{border:1px solid var(--border);width:28px;height:28px;color:var(--muted);cursor:pointer;box-shadow:none;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:1rem;transition:all .15s;display:flex}.reset-btn:hover{color:var(--fg);box-shadow:none;background:#ffffff0f;transform:none}.settings-fields{flex-direction:column;gap:.5rem;display:flex}.auth-loading-shell,.login-shell{justify-content:center;align-items:center;width:100%;min-height:100vh;padding:1.5rem;display:flex}.auth-loading-card,.login-card{padding:1.25rem}.auth-loading-card{text-align:center;width:min(100%,460px)}.login-card{width:min(100%,360px)}.login-title{margin:0;font-size:1.65rem}.login-subtitle{color:var(--muted);margin:.5rem 0 1rem}.google-signin-button{background:0 0;justify-content:center;align-items:center;min-height:40px;line-height:0;display:flex}.google-signin-button>div{border-radius:999px;justify-content:center;align-items:center;background:0 0!important;display:inline-flex!important;overflow:hidden!important}.google-signin-button iframe{background:0 0!important;border-radius:999px!important;overflow:hidden!important}.login-info{color:var(--muted);margin-top:.75rem;font-size:.9rem}.login-error{color:#fda4af;margin-top:.75rem;font-size:.9rem}.settings-fields label{align-items:center;gap:.5rem;display:flex}.settings-fields .field-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);min-width:40px;font-size:.6875rem}.settings-fields input{border-radius:6px;flex:1;padding:.5rem .625rem;font-size:.8125rem}.settings-head{justify-content:space-between;align-items:flex-start;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 4px;font-size:11px}.meta{color:var(--muted);margin:2px 0;font-size:12px}.wrap{max-width:1080px;margin:0 auto;padding:0 4px 32px}.pills{flex-wrap:wrap;gap:8px;display:flex}.pill{background:var(--card);border:1px solid var(--border);border-radius:999px;padding:6px 10px;font-size:12px;box-shadow:0 6px 18px #0000002e}.card{border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:linear-gradient(#ffffff0d,#ffffff05);border-radius:18px;margin:16px 0 24px;padding:18px;transition:transform .16s,box-shadow .2s,border-color .2s,background .2s}.card h2{margin:0 0 12px;font-size:18px}.card:hover{background:linear-gradient(#ffffff14,#ffffff08);border-color:#ffffff24;transform:translateY(-2px);box-shadow:0 14px 48px #00000052}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}button{background:var(--accent);color:#0b0e12;cursor:pointer;letter-spacing:.01em;border:1px solid #0000;border-radius:12px;padding:9px 14px;font-weight:700;transition:transform .12s,box-shadow .15s,filter .1s,border-color .1s;box-shadow:0 10px 26px #00000040}button:hover{filter:brightness(1.03);transform:translateY(-1px);box-shadow:0 14px 30px #00000052}button.ghost{color:var(--fg);border-color:var(--border);box-shadow:none;background:0 0}button:disabled,button[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}button.loading{color:#0000;pointer-events:none;position:relative}button.loading:after{content:"";border:2px solid #0003;border-top-color:#0b0e12;border-radius:50%;width:1rem;height:1rem;margin:-.5rem 0 0 -.5rem;animation:.6s linear infinite button-spin;position:absolute;top:50%;left:50%}button.ghost.loading:after{border-color:#fff3;border-top-color:var(--fg)}@keyframes button-spin{to{transform:rotate(360deg)}}input,select{border:1px solid var(--border);background:var(--card);width:100%;color:var(--fg);border-radius:10px;padding:10px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent-start);outline:none;box-shadow:0 0 0 3px #06b6d42e}.form{grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px;transition:opacity .2s;display:grid}.form label{color:var(--muted);flex-direction:column;gap:6px;font-size:12px;display:flex}.form .row{grid-column:1/-1;margin-top:4px}.hint{color:var(--muted);margin:6px 0 12px}.json-block{max-width:100%;position:relative}.json{background:var(--bg-soft,#0a0f15);border:1px solid var(--border);box-sizing:border-box;border-radius:12px;max-width:100%;max-height:360px;padding:40px 12px 12px;overflow:auto;box-shadow:inset 0 1px #ffffff05}.json code{white-space:pre;display:block}.json-copy-btn{background:var(--json-copy-bg,#1e1e28d9);border:1px solid var(--json-copy-border,#ffffff26);color:var(--json-copy-color,var(--muted));cursor:pointer;z-index:2;border-radius:6px;padding:4px 10px;font-size:.75rem;transition:all .2s;position:absolute;top:8px;right:20px}.json-copy-btn:hover{background:var(--json-copy-hover-bg,#3c3c50f2);color:var(--json-copy-hover-color,var(--fg))}.json-copy-btn.copied{color:#22c55e;background:#22c55e33;border-color:#22c55e66}.typing-dots{align-items:center;gap:8px;margin:0;padding:.25rem 0;display:inline-flex}.typing-dots .dot{background:linear-gradient(135deg,var(--accent-start),var(--accent-end));border-radius:50%;width:10px;height:10px;animation:1.4s ease-in-out infinite typingBounce;box-shadow:0 2px 8px #06b6d44d}.typing-dots .dot:nth-child(2){animation-delay:.2s}.typing-dots .dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)scale(1)}30%{opacity:1;transform:translateY(-8px)scale(1.1)}}.preview{align-items:center;gap:12px;margin:8px 0;display:flex}.preview img{border:1px solid var(--border);border-radius:10px;max-width:360px}.processing-result{flex-wrap:nowrap;align-items:stretch;gap:20px;margin-top:16px;display:flex}.processing-result .preview-container{flex-direction:column;flex:none;display:flex}.processing-result .preview-container .preview{display:flex}.processing-result .preview-container .preview img{cursor:pointer;border:1px solid var(--border);border-radius:10px;max-width:512px;transition:transform .2s,box-shadow .2s;display:block}.processing-result .preview-container .preview img:hover{transform:scale(1.02);box-shadow:0 4px 20px #0000004d}.processing-result .json-container{border:1px solid var(--border);background:#0003;border-radius:10px;flex:300px;min-width:280px;max-width:100%;max-height:512px;overflow:hidden}.processing-result .json-container .json-block{max-width:100%}.processing-result .json-container .json-block .json{background:0 0;border:none;border-radius:0;max-height:512px}@media (max-width:900px){.processing-result{flex-flow:column wrap;align-items:stretch;gap:16px;width:100%;max-width:100%}.processing-result .preview-container{width:100%;max-width:100%}.processing-result .preview-container .preview{width:100%}.processing-result .preview-container .preview img{width:100%;max-width:100%;height:auto}.processing-result .json-container{width:100%;min-width:0;max-width:100%;max-height:400px;overflow:auto}.processing-result .json-container .json-block{width:max-content;min-width:100%;max-width:none}.processing-result .json-container .json-block .json{width:max-content;min-width:100%;max-height:none}.json-block{max-width:100%}.json{box-sizing:border-box;max-width:100%}}.alert{border:1px solid var(--border);color:var(--fg);background:#ffffff0a;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.alert-error{color:#fecdd3;background:#f871711a;border-color:#f87171}.alert-info{color:#cffafe;background:#7dd3fc1f;border-color:#7dd3fc}.alert-success{color:#dcfce7;background:#86efac1f;border-color:#86efac}.chat-main.drawer-closed .alert{margin:.75rem 1.5rem 0 4.5rem}.chat-shell{align-items:stretch;gap:0;height:100%;max-height:100%;display:flex;position:relative;overflow:hidden}.drawer-toggle{z-index:200;color:var(--fg);-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);background:#ffffff1a;border:1px solid #fff3;border-radius:.625rem;padding:.5rem .625rem;font-size:1.25rem;line-height:1;transition:transform .2s,box-shadow .2s,background .2s;position:fixed;top:1rem;left:1rem;box-shadow:0 .25rem 1rem #0000004d}.drawer-toggle:hover{background:#ffffff26;transform:scale(1.05);box-shadow:0 .375rem 1.25rem #0006}.drawer-close{color:var(--fg);opacity:.6;background:0 0;border:1px solid #0000;border-radius:.5rem;flex-shrink:0;padding:.375rem .5rem;font-size:1.25rem;line-height:1;transition:opacity .2s,background .2s}.drawer-close:hover{opacity:1;background:#ffffff1a}.drawer{border-right:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(#ffffff0a,#ffffff03);border-top:none;border-bottom:none;border-left:none;border-radius:0;flex-direction:column;flex-shrink:0;gap:1rem;width:20rem;min-width:17.5rem;max-width:22.5rem;height:100%;max-height:100%;margin:0;padding:1.5rem;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s;display:flex;overflow:hidden}.drawer.collapsed{width:0;min-width:0;box-shadow:none;opacity:0;pointer-events:none;border:none;margin:0;padding:0;overflow:hidden;transform:translate(-100%)}.drawer-head{border-bottom:1px solid var(--border);flex-direction:row;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:.5rem;padding-bottom:1rem;display:flex}.drawer-head-content{flex-direction:column;gap:.5rem;display:flex}.drawer-head .eyebrow{letter-spacing:.12em;align-items:center;gap:.5rem;font-size:10px;display:flex}.drawer-head .eyebrow:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.9)}}.drawer-title{background:var(--accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:1.25rem;font-weight:700}.drawer-nav{flex-shrink:0;gap:.5rem;display:flex}.drawer-nav.vertical{flex-direction:column}.nav-pill{border:1px solid var(--border);color:var(--muted);background:#ffffff08;border-radius:10px;flex:1;justify-content:center;align-items:center;padding:.625rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.nav-pill:hover{color:var(--fg);background:#ffffff0f;border-color:#ffffff26}.nav-pill.active{background:var(--accent);color:#0b0e12;border-color:#0000;font-weight:700;box-shadow:0 4px 16px #06b6d44d}.drawer.collapsed .drawer-body{display:none}.drawer-content{flex-direction:column;flex:1 1 0;min-height:0;display:flex;overflow:hidden}.drawer-body{scrollbar-width:thin;scrollbar-color:var(--border)transparent;flex-direction:column;flex:auto;gap:1rem;min-height:0;display:flex;overflow:hidden auto}.drawer-body::-webkit-scrollbar{width:6px}.drawer-body::-webkit-scrollbar-track{background:0 0}.drawer-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.drawer.collapsed .drawer-content{display:none}.drawer-footer{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.75rem;margin-top:auto;padding-top:1rem;display:flex}.drawer-auth-row{justify-content:space-between;align-items:center;gap:.625rem;display:flex}.drawer-auth-text{flex-direction:column;gap:.125rem;min-width:0;display:flex}.drawer-auth-row .section-title{padding:0;font-size:.625rem}.drawer-auth-value{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-size:.8rem;overflow:hidden}.drawer-logout-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;box-shadow:none;background:0 0;border-radius:6px;padding:.3rem .55rem;font-size:.72rem}.drawer-logout-btn:hover{color:var(--fg);box-shadow:none;border-color:#ffffff3d;transform:none}.chat-sidebar{border:1px solid var(--border);box-shadow:none;background:#ffffff08;border-radius:10px;flex-direction:column;flex:none;min-height:auto;margin:0;padding:.75rem;display:flex}.chat-sidebar:hover{box-shadow:none;border-color:var(--border);background:#ffffff08;transform:none}:root[data-theme=light] .chat-sidebar{background:#f6f9fd}:root[data-theme=light] .chat-sidebar:hover{background:#f9fbff;border-color:#c9d6e2}.sidebar-section{flex-direction:column;gap:.75rem;display:flex}.section-title{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:0 .25rem;font-size:.75rem;font-weight:600}.chat-list{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border)transparent;flex-direction:column;gap:.375rem;height:auto;max-height:min(40vh,24rem);display:flex;overflow:hidden auto}.chat-list::-webkit-scrollbar{width:4px}.chat-list::-webkit-scrollbar-track{background:0 0}.chat-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.chat-row{text-align:left;color:#e9edf5db;white-space:nowrap;text-overflow:ellipsis;width:100%;box-shadow:none;background:#ffffff05;border:1px solid #ffffff14;border-radius:10px;align-items:center;gap:.5rem;padding:.75rem .875rem;font-size:.875rem;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:flex;overflow:hidden;transform:none}.chat-row:before{content:"";background:var(--border);border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .15s}.chat-row:hover{color:var(--fg);filter:none;box-shadow:none;background:#0ea5e91a;border-color:#0ea5e947;transform:none}.chat-row:hover:before{background:var(--muted)}.chat-row.active{color:var(--fg);box-shadow:none;background:#06b6d42e;border-color:#06b6d466;font-weight:600}.chat-row.active:before{background:var(--accent-start);box-shadow:none}.chat-row:focus-visible{border-color:#0ea5e985;outline:none}:root[data-theme=light] .chat-row{color:#445465;background:#f7fbff;border-color:#d6e0ea}:root[data-theme=light] .chat-row:before{background:#b7c6d6}:root[data-theme=light] .chat-row:hover{color:#1b3045;background:#edf6ff;border-color:#9ec4e5}:root[data-theme=light] .chat-row:hover:before{background:#5f7992}:root[data-theme=light] .chat-row.active{color:#0f385a;background:#dff1ff;border-color:#69b4e8}:root[data-theme=light] .chat-row.active:before{background:#0ea5e9}:root[data-theme=light] .chat-row:focus-visible{border-color:#3f93cf;box-shadow:0 0 0 2px #3f93cf29}.chat-main{width:100%;min-width:0;height:100%;min-height:0;max-height:100%;box-shadow:none;background:linear-gradient(#0000001a,#0000 30%);border:none;border-radius:0;flex-direction:column;flex:1 1 0;margin:0;padding:0;display:flex;position:relative;overflow:hidden}.chat-main:hover{box-shadow:none;transform:none}.chat-column{flex-direction:column;gap:0;height:100%;min-height:0;max-height:100%;display:flex}.chat-header{background:linear-gradient(180deg,var(--bg),transparent);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.drawer-closed .chat-header{padding-left:4.5rem}.chat-header h2{align-items:center;gap:.75rem;margin:0;font-size:1.125rem;font-weight:600;display:flex}.chat-header h2:before{content:"💬";font-size:1.25rem}.chat-header .row{gap:.5rem}.chat-header .ghost{border:1.5px solid var(--muted);opacity:.85;border-radius:8px;padding:.5rem .875rem;font-size:.8125rem;transition:opacity .15s,border-color .15s}.chat-header .ghost:hover{opacity:1;border-color:var(--fg)}.chat-scroll{scrollbar-width:thin;scrollbar-color:var(--border)transparent;flex-direction:column;flex:1 1 0;min-height:0;max-height:100%;padding:1.5rem 2rem 1rem 3rem;display:flex;position:relative;overflow:hidden auto}.drawer-closed .chat-scroll{padding-left:4.5rem}.chat-scroll::-webkit-scrollbar{width:6px}.chat-scroll::-webkit-scrollbar-track{background:0 0}.chat-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.scroll-to-bottom{color:#102b57;cursor:pointer;z-index:5;background:#7f9cc4;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;line-height:0;transition:transform .15s,box-shadow .15s,background-color .15s,border-color .15s;animation:.2s fadeInScale;display:flex;position:absolute;bottom:calc(100% + 1rem);right:1.5rem;box-shadow:0 8px 18px #7dadf857,0 2px 6px #bfdbfe3d}.scroll-to-bottom:hover{color:#0f254a;background:#7090bb;transform:scale(1.06);box-shadow:0 10px 24px #7dadf86b,0 3px 8px #bfdbfe4d}.scroll-to-bottom-arrow{width:1.16rem;height:1.2rem;transition:transform .15s;display:block;position:relative}.scroll-to-bottom-arrow:before{content:"";background:currentColor;border-radius:999px;width:.16rem;height:.62rem;position:absolute;top:0;left:50%;transform:translate(-50%)}.scroll-to-bottom-arrow:after{content:"";border-bottom:.16rem solid;border-right:.16rem solid;border-radius:.06rem;width:.56rem;height:.56rem;position:absolute;bottom:.02rem;left:50%;transform:translate(-50%)rotate(45deg)}.scroll-to-bottom:hover .scroll-to-bottom-arrow{transform:translateY(.06rem)}:root[data-theme=light] .scroll-to-bottom{color:#1e3a8a;background:#dbeafe;box-shadow:0 0 22px #2563eb73}:root[data-theme=light] .scroll-to-bottom:hover{color:#1d4ed8;background:#bfdbfe;box-shadow:0 0 26px #2563eb4d}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.chat-messages{flex-direction:column;gap:1.25rem;width:100%;display:flex}.chat-bubble{border:none;border-radius:18px;max-width:85%;padding:1rem 1.25rem;line-height:1.6;animation:.25s cubic-bezier(.4,0,.2,1) messageSlide;position:relative}@keyframes messageSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-bubble.user{color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb);border-bottom-right-radius:6px;margin-left:auto;margin-right:.5rem;box-shadow:0 4px 20px #3b82f659}.chat-bubble.assistant{border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(135deg,#ffffff14,#ffffff0a);border-bottom-left-radius:6px;box-shadow:0 4px 20px #0003}.chat-bubble.assistant:before{content:"🛰️";opacity:.6;font-size:1.25rem;position:absolute;top:.75rem;left:-40px}.chat-bubble p{margin:0}.chat-bubble p+p{margin-top:.75rem}.accept-plan-button{color:#fff;background:#0284c7;border:1px solid #0369a1;border-radius:10px;margin-top:.875rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:600;box-shadow:0 4px 12px #0284c752}.accept-plan-button:hover{background:#0369a1;border-color:#075985;transform:none;box-shadow:0 6px 16px #0284c73d}.accept-plan-button:disabled{opacity:.6}.prompt-sticky{background:linear-gradient(180deg,transparent 0%,var(--bg)20%);flex-grow:0;flex-shrink:0;min-height:fit-content;margin-top:auto;padding:1rem 2.5rem 1.5rem 3rem;position:relative}.drawer-closed .prompt-sticky{padding-left:4.5rem}.prompt-box{border:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(135deg,#ffffff0f,#ffffff05);border-radius:20px;flex-direction:column;gap:.75rem;padding:1rem;transition:border-color .2s,box-shadow .2s;display:flex;box-shadow:0 8px 32px #00000040}.prompt-box:focus-within{border-color:#06b6d466;box-shadow:0 8px 32px #00000040,0 0 0 3px #06b6d41a}.prompt-box textarea{width:100%;color:inherit;resize:none;background:0 0;border:none;border-radius:0;min-height:60px;max-height:200px;padding:.5rem;font-family:inherit;font-size:.9375rem;line-height:1.5}.prompt-box textarea::placeholder{color:var(--muted);opacity:.7}.prompt-box textarea:focus{box-shadow:none;border:none;outline:none}.prompt-box .row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding-top:.5rem;display:flex}.prompt-box .hint{color:var(--muted);opacity:.6;margin:0;font-size:.75rem}.prompt-box button[type=submit]{color:#fff;filter:none;background:#0ea5e9;border:1px solid #0284c7;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;min-width:100px;padding:.625rem 1.5rem;font-size:.875rem;font-weight:600;display:flex;box-shadow:0 4px 14px #0ea5e94d}.prompt-box button[type=submit]:hover:not(:disabled){color:#fff;filter:none;background:#0284c7;border-color:#0369a1;transform:none;box-shadow:0 6px 18px #0284c752}:root[data-theme=light] .prompt-box button[type=submit]{color:#fff;background:#0284c7;border-color:#0369a1}:root[data-theme=light] .prompt-box button[type=submit]:hover:not(:disabled){background:#0369a1;border-color:#075985}.prompt-box button[type=submit]:before{content:none}.prompt-box button[type=submit]:disabled:not([data-empty]):before{content:"";border:2px solid;border-top-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}.prompt-box button[type=submit]:disabled[data-empty]:before{content:none}@keyframes spin{to{transform:rotate(360deg)}}.file-picker{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.file-picker input[type=file]{display:none}.file-picker label{border:1px solid var(--border);cursor:pointer;color:var(--muted);border-radius:10px;align-items:center;gap:.5rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:500;transition:all .15s;display:inline-flex}.file-picker label:before{content:"📎";font-size:1rem}.file-picker label:hover{border-color:var(--accent-start);color:var(--fg);background:#ffffff08}.chips{flex-wrap:wrap;gap:.375rem;display:flex}.chip{color:var(--fg);background:#06b6d426;border:1px solid #06b6d44d;border-radius:999px;align-items:center;gap:.375rem;padding:.25rem .75rem;font-size:.75rem;display:flex}.chip:before{content:"📄";font-size:.875rem}.blob-renderer{flex-direction:column;gap:.75rem;display:flex}.blob-renderer p{white-space:pre-wrap;word-break:break-word;margin:0}.blob-renderer .md-content{flex-direction:column;gap:.5rem;min-width:0;display:flex}.blob-renderer .md-content>*{word-break:break-word;margin:0}.blob-renderer .md-content p+p{margin-top:.5rem}.blob-renderer .md-content ul,.blob-renderer .md-content ol{margin:.25rem 0 .25rem 1.25rem;padding:0}.blob-renderer .md-content li+li{margin-top:.2rem}.blob-renderer .md-content pre{border:1px solid var(--border);background:#0f172a73;border-radius:8px;margin:.4rem 0;padding:.65rem .8rem;overflow-x:auto}.blob-renderer .md-content code{border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.86em}.blob-renderer .md-content :not(pre)>code{border:1px solid var(--border);background:#94a3b833;padding:.1rem .35rem}.blob-renderer .md-content a{color:var(--accent-start);text-underline-offset:2px;text-decoration:underline}.blob-renderer .md-content blockquote{border-left:3px solid var(--accent-start);opacity:.92;margin:.4rem 0;padding:.3rem .75rem}.blob-renderer .md-content table{border-collapse:collapse;width:100%;margin:.4rem 0}.blob-renderer .md-content th,.blob-renderer .md-content td{border:1px solid var(--border);text-align:left;padding:.35rem .5rem}.blob-renderer img{border:1px solid var(--border);object-fit:contain;cursor:zoom-in;border-radius:12px;max-width:100%;max-height:50vh;transition:transform .2s;box-shadow:0 4px 20px #0000004d}.blob-renderer img:hover{transform:scale(1.02)}.blob-display img{object-fit:contain;cursor:zoom-in;border-radius:8px;max-width:100%;max-height:50vh}.blob-display{flex-direction:column;gap:.5rem;display:flex}.image-modal-overlay{z-index:9999;cursor:zoom-out;background:#000000f2;justify-content:center;align-items:center;width:100vw;height:100vh;padding:2rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0;overflow:hidden}.image-modal-overlay img{object-fit:contain;cursor:default;border-radius:8px;max-width:90vw;max-height:90vh;box-shadow:0 8px 40px #00000080}body.modal-open{overflow:hidden}.image-modal-close{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.25rem;transition:background .2s;display:flex;position:absolute;top:1rem;right:1rem}.image-modal-close:hover{background:#fff3}.blob-error{color:var(--muted);background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.75rem;display:flex}.blob-error .error-icon{font-size:1rem}.blob-display .hint{opacity:.6;font-size:.6875rem}.blob-renderer .blob-download{border:1px solid var(--border);background:#ffffff0d;border-radius:10px;align-items:center;gap:.75rem;padding:.75rem 1rem;transition:all .15s;display:inline-flex}.blob-renderer .blob-download:hover{border-color:var(--accent-start);background:#ffffff14}.blob-renderer .blob-download a{color:var(--accent-start);font-weight:600;text-decoration:none}.blob-renderer .blob-download a:hover{text-decoration:underline}.chat-scroll>.hint{text-align:center;opacity:.5;padding:4rem 2rem;font-size:1rem}.chat-scroll>.hint:before{content:"🛰️";opacity:.4;margin-bottom:1rem;font-size:3rem;display:block}@media (max-width:56rem){.chat-shell{flex-direction:column;height:100vh;min-height:100vh;max-height:100vh}@supports (height:100dvh){.chat-shell{height:100dvh;min-height:100dvh;max-height:100dvh}}.drawer{z-index:50;-webkit-backdrop-filter:blur(40px)saturate(150%);backdrop-filter:blur(40px)saturate(150%);background:#0b0e12eb;border-radius:0;height:100vh;position:fixed;top:0;left:0;box-shadow:0 0 40px #00000080}:root[data-theme=light] .drawer{-webkit-backdrop-filter:blur(40px)saturate(120%);backdrop-filter:blur(40px)saturate(120%);background:#f4f7fbf2;border-right:1px solid #0000001f}.drawer.collapsed{display:none}.drawer-toggle{position:fixed;top:.75rem;left:.75rem}.chat-header{padding-left:4rem}.chat-main.drawer-closed .alert{margin-left:4.5rem}.alert{margin:.5rem 1rem}.chat-scroll,.prompt-sticky{padding-left:1.5rem}.chat-bubble.assistant:before{display:none}}.sidebar-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.sidebar-actions{gap:.25rem;display:flex}.icon-btn{border:1px solid var(--border);width:32px;height:32px;color:var(--muted);cursor:pointer;box-shadow:none;background:#ffffff05;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:.875rem;transition:background-color .15s,border-color .15s,color .15s;display:flex}.icon-btn:hover{color:var(--fg);filter:none;box-shadow:none;background:#0ea5e91a;border-color:#0ea5e947;transform:none}.icon-btn.primary{color:var(--fg);box-shadow:none;background:#06b6d429;border-color:#06b6d470}.icon-btn.primary:hover{color:var(--fg);background:#06b6d43d;border-color:#06b6d49e}.icon-btn.warm{color:var(--muted);background:#ffffff05;border-color:#9fb3c880}.icon-btn.warm:hover{background:#9fb3c81f;border-color:#9fb3c8ad}:root[data-theme=light] .icon-btn{color:#4f6173;background:#f7fbff;border-color:#c8d4e1}:root[data-theme=light] .icon-btn:hover{color:#24384d;background:#edf5fc;border-color:#9fb7cb}:root[data-theme=light] .icon-btn.primary{color:#0f3d5f;background:#dff1ff;border-color:#6fb4e7}:root[data-theme=light] .icon-btn.primary:hover{color:#0b3352;background:#d3eaff;border-color:#529fd8}:root[data-theme=light] .icon-btn.warm{color:#4f6173;background:#f7fbff;border-color:#c8d4e1}:root[data-theme=light] .icon-btn.warm:hover{color:#24384d;background:#edf5fc;border-color:#9fb7cb}.icon-btn:focus-visible{border-color:#0ea5e985;outline:none}:root[data-theme=light] .icon-btn:focus-visible{border-color:#3f93cf;box-shadow:0 0 0 2px #3f93cf29}.empty-list{text-align:center;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:2rem 1rem;display:flex}.empty-list .empty-icon{opacity:.4;margin-bottom:.5rem;font-size:2rem}.empty-list p{margin:0;font-size:.875rem}.chat-row-text{text-overflow:ellipsis;flex:1;overflow:hidden}.status-badge{text-transform:uppercase;letter-spacing:.05em;border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:.125rem .375rem;font-size:.625rem;font-weight:600}.status-badge.saving{color:#fcd34d;background:#f59e0b33}.status-badge.local{color:#c4b5fd;background:#8b5cf633}:root[data-theme=light] .status-badge.saving{color:#7c4700;background:#fff3d4;border-color:#f3cd7b}:root[data-theme=light] .status-badge.local{color:#2f3f9e;background:#e6e9ff;border-color:#b9c0ff}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:.75rem;margin-top:.75rem;padding-top:.75rem;display:flex}.sidebar-danger-actions{gap:.75rem;display:flex}.danger-link{border:1.5px solid var(--border);color:var(--muted);cursor:pointer;opacity:.85;box-shadow:none;background:0 0;border-radius:6px;padding:.375rem .625rem;font-size:.75rem;transition:all .15s}.danger-link:hover{color:#f87171;opacity:1;box-shadow:none;border-color:#f87171;transform:none}:root[data-theme=light] .danger-link{border-color:var(--border)}:root[data-theme=light] .danger-link:hover{border-color:#ef4444}.danger-link:disabled{opacity:.3;cursor:not-allowed}.chat-empty-state{text-align:center;flex-direction:column;flex:1 0 auto;justify-content:center;align-items:center;max-width:500px;min-height:200px;margin:0 auto;padding:2rem 1.5rem;animation:.4s fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chat-empty-state .empty-icon{margin-bottom:1.5rem;font-size:4rem;animation:3s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.chat-empty-state h3{background:var(--accent);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 .75rem;font-size:1.5rem;font-weight:700}.chat-empty-state>p{color:var(--muted);margin:0 0 2rem;line-height:1.6}.empty-suggestions{flex-direction:column;gap:.75rem;width:100%;display:flex}.suggestion-label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}.suggestions{flex-direction:column;gap:.5rem;display:flex}.suggestion-chip{border:1px solid var(--border);color:var(--fg);text-align:left;cursor:pointer;box-shadow:none;background:#ffffff0a;border-radius:12px;padding:.75rem 1rem;font-size:.875rem;transition:all .15s}.suggestion-chip:hover{box-shadow:none;background:#ffffff14;border-color:#06b6d44d;transform:translate(4px)}.message-meta{color:var(--muted);opacity:.6;margin-top:.5rem;font-size:.6875rem;display:block}.chat-bubble.user .message-meta{text-align:right;color:#ffffffb3}.chip-remove{cursor:pointer;opacity:.6;font-size:1rem;line-height:1;transition:opacity .15s}.chip-remove:hover{opacity:1}.chip{cursor:pointer;transition:all .15s}.chip:hover{background:#ef444433;border-color:#ef444466}@keyframes fadeInUp{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (max-width:980px){.app-shell{grid-template-columns:1fr;padding:20px}.sidebar{position:static}.form,.chat-layout,.chat-layout.sidebar-collapsed{grid-template-columns:1fr}}@media (max-width:480px){.drawer{width:100vw;min-width:100vw;max-width:100vw;padding:1rem}.drawer-head{padding-bottom:.75rem}.drawer-title{font-size:1.1rem}.drawer-toggle{padding:.4rem .5rem;font-size:1.1rem;top:.5rem;left:.5rem}.chat-header{display:none}.alert{border-radius:8px;flex-wrap:nowrap;align-items:flex-start;gap:.5rem;margin:.5rem;padding:.625rem .75rem;font-size:.8rem}.alert span{word-break:break-word;flex:1}.alert button{flex-shrink:0;margin:-.25rem -.25rem -.25rem 0;padding:.25rem}.chat-header h2{font-size:1rem}.chat-header .ghost{padding:.375rem .625rem;font-size:.75rem}.chat-scroll{padding:1rem 1rem .75rem}.drawer-closed .chat-scroll{padding-left:1rem}.chat-bubble{max-width:95%;padding:.875rem 1rem;font-size:.9rem}.chat-bubble.assistant:before{display:none}.prompt-sticky{padding:.75rem 1rem 1rem}.drawer-closed .prompt-sticky{padding-left:1rem}.prompt-box{border-radius:16px;padding:.75rem}.prompt-box textarea{font-size:.9rem}.prompt-box .row{flex-wrap:wrap;gap:.5rem}.prompt-box .hint{display:none}.prompt-box button[type=submit]{padding:.5rem 1rem;font-size:.8rem}.file-picker label{padding:.4rem .75rem;font-size:.8rem}.chat-sidebar{padding:.5rem}.chat-list{height:auto;max-height:min(50vh,20rem)}.chat-row{padding:.625rem .75rem;font-size:.8rem}.section-title{font-size:.7rem}.sidebar-footer{gap:.5rem;padding-top:.5rem}.drawer-auth-value{max-width:140px;font-size:.75rem}.drawer-logout-btn{padding:.25rem .45rem;font-size:.68rem}.sidebar-danger-actions{gap:.5rem}.danger-link{padding:.25rem .5rem;font-size:.7rem}.settings-toggle{padding:.625rem .75rem;font-size:.8rem}.settings-content{padding:0 .75rem .75rem}.settings-fields label{flex-direction:column;gap:.25rem}.settings-fields input{padding:.5rem;font-size:.85rem}.field-label{min-width:auto;font-size:.7rem}.chat-empty-state{padding:1.5rem 1rem}.chat-empty-state h3{font-size:1.1rem}.chat-empty-state p{font-size:.85rem}.suggestions{flex-direction:column;gap:.5rem}.suggestion-chip{padding:.625rem .875rem;font-size:.8rem}.scroll-to-bottom{width:2.25rem;height:2.25rem;right:1rem}.scroll-to-bottom-arrow{width:1rem;height:1.02rem}.scroll-to-bottom-arrow:before{width:.14rem;height:.54rem}.scroll-to-bottom-arrow:after{border-bottom-width:.14rem;border-right-width:.14rem;width:.48rem;height:.48rem}.image-modal-overlay{padding:.5rem}.image-modal-close{width:2rem;height:2rem;font-size:1rem;top:.5rem;right:.5rem}.blob-renderer img,.blob-display img{max-height:40vh}.nav-pill{padding:.5rem .75rem;font-size:.8rem}.icon-btn{width:28px;height:28px;font-size:.8rem}.tools-shell{flex-direction:column}.tools-shell .drawer{z-index:300;border-radius:0;width:85vw;max-width:20rem;position:fixed;top:0;bottom:0;left:0}.tools-shell .drawer.collapsed{transform:translate(-100%)}.tools-main{width:100%;padding-left:0}.tools-main.drawer-closed{padding-left:0}.tools-header{padding:.75rem 1rem .75rem 3.5rem}.tools-header h2{font-size:1.125rem}.tools-scroll{padding:.75rem}.tools-content{gap:1rem}.tools-content .card{padding:1rem}.tools-content .card h2{margin-bottom:.75rem;font-size:1rem}}.tools-shell{align-items:stretch;gap:0;height:100%;max-height:100%;display:flex;position:relative;overflow:hidden}.tools-main{flex-direction:column;flex:1;min-width:0;height:100%;max-height:100%;transition:padding-left .3s;display:flex;overflow:hidden}.tools-main.drawer-closed{padding-left:0}.tools-main.drawer-closed .tools-header{padding-left:4rem}.tools-header{border-bottom:1px solid var(--border);background:linear-gradient(#ffffff08,#0000);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;transition:padding-left .3s;display:flex}.tools-header h2{color:var(--fg);margin:0;font-size:1.25rem;font-weight:700}.tools-scroll{scroll-behavior:smooth;flex:1;padding:1.5rem;overflow:hidden auto}.tools-content{flex-direction:column;gap:1.5rem;max-width:900px;margin:0 auto;display:flex}.tools-content .card{scroll-margin-top:1.5rem}.tools-nav-section,.tools-status-section{margin-bottom:1.5rem}.tools-nav-section .section-label,.tools-status-section .section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.75rem;font-size:.625rem;font-weight:600}.tools-nav-links{flex-direction:column;gap:.375rem;display:flex}.tools-nav-link{color:var(--muted);border:1px solid #0000;border-radius:.5rem;padding:.625rem .875rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:block}.tools-nav-link:hover{color:var(--fg);border-color:var(--border);background:#ffffff0f}.tools-status-pills{flex-wrap:wrap;gap:.5rem;display:flex}.status-pill{border:1px solid var(--border);color:var(--muted);cursor:help;background:#ffffff0d;border-radius:999px;align-items:center;padding:.375rem .625rem;font-size:.6875rem;font-weight:600;display:inline-flex}@media (max-width:56rem){.tools-shell .drawer{z-index:300;border-radius:0;position:fixed;top:0;bottom:0;left:0}.tools-shell .drawer.collapsed{transform:translate(-100%)}}:root{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#070a0f;--bg-soft:#0d131e;--bg-gradient:radial-gradient(circle at 20% 20%,#3b82f61f,transparent 30%),radial-gradient(circle at 80% 0%,#0ea5e91f,transparent 25%),var(--bg);--fg:#e9edf5;--muted:#9fb3c8;--card:#ffffff08;--border:#ffffff14;--accent-start:#06b6d4;--accent-end:#f59e0b;--accent:linear-gradient(135deg,var(--accent-start),var(--accent-end));--shadow:0 18px 50px #00000073;font-family:Space Grotesk,Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f7fb;--bg-soft:#fff;--bg-gradient:radial-gradient(circle at 18% 12%,#0ea5e91f,transparent 26%),radial-gradient(circle at 80% 0%,#f59e0b24,transparent 28%),#f8fbff;--fg:#16202a;--muted:#52606d;--card:#fff;--border:#c5d0dc;--accent-start:#0ea5e9;--accent-end:#f59e0b;--accent:linear-gradient(135deg,var(--accent-start),var(--accent-end));--shadow:0 14px 34px #0c172c24}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow:hidden}body{background:var(--bg-gradient);color:var(--fg);transition:background .2s,color .2s}#root{height:100%;overflow:hidden}a{color:inherit;text-decoration:none}
