:root{--bg:#f5f3ec;--surface:#fdfcf8;--surface-2:#f9f7ef;--border:#e7e2d4;--border-strong:#d6cfbb;--text:#1d1b16;--text-muted:#6e6857;--primary:#1e6fb8;--primary-hover:#155490;--primary-soft:#e3eef9;--danger:#b3261e;--danger-soft:#fbe7e6;--success:#1f7a44;--warning:#8a5a00;--shadow-sm:0 1px 2px #231c0c0d;--shadow-md:0 4px 18px #231c0c14;--shadow-lg:0 14px 36px #231c0c24;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--t-fast:.12s cubic-bezier(.4, 0, .2, 1);--t-med:.22s cubic-bezier(.4, 0, .2, 1);--t-slow:.38s cubic-bezier(.4, 0, .2, 1);--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Fraunces", "Iowan Old Style", "Hoefler Text", Georgia, serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.012em;font-family:var(--font-display);font-variation-settings:"opsz" 40;font-feature-settings:"ss01", "ss03", "kern";color:var(--text);margin:0}h2{font-variation-settings:"opsz" 60;font-size:26px;font-weight:600}h3{font-variation-settings:"opsz" 24;font-size:17px;font-weight:600}a{color:var(--primary);transition:color var(--t-fast);text-decoration:none}a:hover{color:var(--primary-hover);text-decoration:underline}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#00000024 padding-box padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#00000038 padding-box padding-box}::-webkit-scrollbar-track{background:0 0}button{font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast), color var(--t-fast);-webkit-user-select:none;user-select:none;padding:7px 14px;font-weight:500}button:hover:not(:disabled){background:#f2f4f8;border-color:#c5cad4}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1e88e540}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}button.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:0 2px 8px #1e88e552}button.ghost{color:var(--text-muted);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){color:var(--text);background:#0000000d;border-color:#0000}button.danger{color:var(--danger);border-color:#f2c3c1}button.danger:hover:not(:disabled){background:var(--danger-soft);border-color:#e8a6a3}input,textarea{font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);transition:border-color var(--t-fast), box-shadow var(--t-fast);width:100%;padding:8px 12px}input:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1e88e526}textarea{resize:vertical}label{color:var(--text-muted);font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:box-shadow var(--t-fast), border-color var(--t-fast), transform var(--t-fast);padding:14px}.card.interactive:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-1px)}.row{gap:10px;display:flex}.col{flex-direction:column;gap:10px;display:flex}.muted{color:var(--text-muted);font-size:13px}.pill{letter-spacing:.01em;background:var(--primary-soft);color:var(--primary-hover);transition:background var(--t-fast);border-radius:999px;padding:2px 9px;font-size:11px;font-weight:500;display:inline-block}.pill.preparing{color:#5d4cc8;background:#ece7ff;animation:1.6s ease-in-out infinite pulse-soft}.pill.pending{color:var(--warning);background:#fff2d6}.pill.processing{color:#004a99;background:#e3f0ff;animation:1.6s ease-in-out infinite pulse-soft}.pill.ready{color:var(--success);background:#e6f5ea}.pill.failed{background:var(--danger-soft);color:var(--danger)}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.55}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.anim-fade-up{animation:fade-in-up var(--t-med)}.anim-slide-right{animation:slide-in-right var(--t-slow)}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#0000000d 0,#00000014 40px,#0000000d 80px) 0 0/600px 100%;animation:1.4s linear infinite shimmer}.msg{border-radius:var(--radius-lg);white-space:pre-wrap;word-wrap:break-word;max-width:78%;animation:fade-in-up var(--t-med);padding:10px 14px;line-height:1.55}.msg.user{background:var(--primary);color:#fff;border-bottom-right-radius:4px;align-self:flex-end;box-shadow:0 2px 8px #1e88e538}.msg.assistant{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-sm);white-space:normal;border-bottom-left-radius:4px;align-self:flex-start}.msg.assistant p{margin:0 0 8px}.msg.assistant p:last-child{margin-bottom:0}.msg.assistant ul,.msg.assistant ol{margin:4px 0 8px 20px;padding:0}.msg.assistant li{margin:2px 0}.msg.assistant li>p{margin:0}.msg.assistant h1,.msg.assistant h2,.msg.assistant h3{letter-spacing:0;margin:10px 0 4px;font-size:14.5px;font-weight:650}.msg.assistant h1{font-size:16px}.msg.assistant code{background:#0000000d;border-radius:3px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.msg.assistant pre{color:#e5e9f0;background:#0f1216;border-radius:6px;margin:6px 0;padding:10px 12px;font-size:12.5px;overflow-x:auto}.msg.assistant pre code{color:inherit;background:0 0;padding:0}.msg.assistant table{border-collapse:collapse;margin:6px 0;font-size:13px}.msg.assistant th,.msg.assistant td{border:1px solid var(--border);padding:4px 8px}.msg.assistant blockquote{border-left:3px solid var(--border-strong);color:var(--text-muted);margin:4px 0;padding:2px 10px}.msg.assistant a{color:var(--primary);text-decoration:underline}.source-markdown{font-size:13.5px;line-height:1.55}.source-markdown p{margin:0 0 10px}.source-markdown ul,.source-markdown ol{margin:6px 0 10px 22px;padding:0}.source-markdown li{margin:2px 0}.source-markdown h1{margin:12px 0 6px;font-size:18px}.source-markdown h2{margin:12px 0 6px;font-size:16px}.source-markdown h3{margin:10px 0 4px;font-size:14.5px}.source-markdown code{background:#0000000d;border-radius:3px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.source-markdown pre{color:#e5e9f0;background:#0f1216;border-radius:6px;margin:6px 0;padding:10px 12px;font-size:12.5px;overflow-x:auto}.source-markdown table{border-collapse:collapse;margin:8px 0}.source-markdown th,.source-markdown td{border:1px solid var(--border);padding:4px 8px}.source-markdown blockquote{border-left:3px solid var(--border-strong);color:var(--text-muted);margin:4px 0;padding:2px 10px}.source-markdown a{color:var(--primary);text-decoration:underline}.typing-dots{align-items:center;gap:3px;height:18px;display:inline-flex}.typing-dots span{background:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite typing-bounce}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,80%,to{opacity:.5;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}.panel{background:var(--surface);border-right:1px solid var(--border);transition:width var(--t-med), opacity var(--t-med)}.panel.hidden-left{opacity:0;overflow:hidden;width:0!important}.account-chip{color:var(--text);background:var(--surface);border:1px solid var(--border);transition:background var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);border-radius:999px;align-items:center;gap:8px;padding:4px 10px 4px 4px;font-size:13px;text-decoration:none;display:inline-flex}.account-chip:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--text);text-decoration:none;box-shadow:0 1px 3px #1e88e526}.folder-header{border-radius:var(--radius-sm);cursor:pointer;color:var(--text);transition:background var(--t-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:6px 8px;font-size:13px;font-weight:600;display:flex}.folder-header:hover{background:#0000000a}.folder-header .count{color:var(--text-muted);font-size:12px;font-weight:400}.folder-header .caret{transition:transform var(--t-fast);color:var(--text-muted);font-size:11px}.folder-header.collapsed .caret{transform:rotate(-90deg)}.drop-hover{outline:2px dashed var(--primary);outline-offset:-2px;background:var(--primary-soft)!important}.drop-zone{border:2px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text);cursor:pointer;text-align:center;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast);-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;padding:22px 12px;display:flex}.drop-zone:hover{background:var(--surface-2);border-color:var(--primary)}.drop-zone:focus-visible{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1e88e526}.drop-zone.drop-hover-file{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-hover)}.drop-zone.drop-hover-file>*{pointer-events:none}.source-card{cursor:grab}.source-card:active{cursor:grabbing}.source-card.dragging{opacity:.4}.quick-chip{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;transition:all var(--t-fast);border-radius:999px;padding:5px 12px;font-size:12.5px}.quick-chip:hover:not(:disabled){background:var(--primary-soft);color:var(--primary-hover);border-color:var(--primary)}.app-header{border-bottom:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);align-items:center;gap:18px;padding:12px 20px;display:flex}.brand{font-family:var(--font-display);font-variation-settings:"opsz" 60;color:var(--primary);letter-spacing:-.02em;align-items:center;gap:10px;font-size:22px;font-weight:600;display:flex}.brand-tagline{font-family:var(--font-display);font-variation-settings:"opsz" 12;color:var(--text-muted);font-size:13px;font-style:italic}.spin{vertical-align:middle;border:2px solid;border-top-color:#0000;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.kbd{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:inline-block}.app-header{padding-top:max(12px, var(--safe-top));padding-left:max(20px, var(--safe-left));padding-right:max(20px, var(--safe-right))}.project-shell{height:100%;min-height:0;display:flex;position:relative}.project-shell-main{flex-direction:column;flex:1;min-width:0;display:flex}.project-sources-pane,.project-conversations-pane{background:var(--surface);border-right:1px solid var(--border);transition:width var(--t-med) ease, opacity var(--t-med);flex-direction:column;flex-shrink:0;gap:10px;display:flex;overflow:hidden}.project-artifact-pane{background:var(--surface-2);transition:width var(--t-med) ease;flex-shrink:0;display:flex;overflow:hidden}.project-topbar{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:12px;min-height:52px;padding:10px 16px;display:flex}.project-title{font-family:var(--font-display);font-variation-settings:"opsz" 30;letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:17px;font-weight:600;overflow:hidden}.scrim{-webkit-backdrop-filter:blur(2px);z-index:90;animation:scrim-in var(--t-med) ease;background:#14100873;position:fixed;inset:0}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}.mobile-drawer{background:var(--surface);z-index:100;width:min(86vw,360px);box-shadow:var(--shadow-lg);animation:drawer-in var(--t-med) cubic-bezier(.2, .7, .2, 1);padding:max(14px, var(--safe-top)) max(14px, var(--safe-left)) max(14px, var(--safe-bottom)) 14px;flex-direction:column;gap:10px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.mobile-artifact-full{z-index:95;background:var(--surface-2);padding-top:var(--safe-top);padding-left:var(--safe-left);padding-right:var(--safe-right);padding-bottom:var(--safe-bottom);animation:artifact-in var(--t-med) ease;flex-direction:column;display:flex;position:fixed;inset:0}.mobile-artifact-full>div:last-child>aside{flex:1;min-height:0;border-left:none!important;width:100%!important}@keyframes artifact-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-composer{border-top:1px solid var(--border);padding:12px;padding-bottom:max(12px, var(--safe-bottom));background:var(--surface)}.chat-composer-row{align-items:center;gap:8px;display:flex}.chat-composer-row input{flex:1}.chat-actions{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}@media (width<=639px){body{font-size:15px}input,textarea,select{font-size:16px}button{min-height:44px;padding:10px 14px}button.ghost{min-height:40px}.quick-chip{min-height:36px;padding:8px 14px;font-size:14px}.app-header{padding:max(10px, var(--safe-top)) 14px 10px 14px;gap:10px}.brand{gap:8px;font-size:19px}.brand-tagline,.account-chip span:last-child{display:none}.account-chip{padding:4px}h2{font-size:22px}.project-shell .project-sources-pane.is-overlay,.project-shell .project-conversations-pane.is-overlay{z-index:100;width:min(86vw,340px);box-shadow:var(--shadow-lg);padding:max(14px, var(--safe-top)) 14px max(14px, var(--safe-bottom)) 14px;position:fixed;top:0;bottom:0;left:0}.project-topbar{gap:8px;padding:8px 12px}.project-title{font-size:16px}.project-topbar .ghost{padding:6px 8px}.msg{max-width:92%;line-height:1.55}.msg.assistant,.msg.user{font-size:15px}.chat-actions{gap:6px}.page-container{max-width:100%!important;margin:0!important;padding:18px 14px!important}.card{border-radius:12px;padding:14px}}body{background-image:radial-gradient(#78643c0a 1px,#0000 1px);background-size:4px 4px;background-attachment:fixed}
