*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{--bg:#07070d;--bg-elevated:#0a0a0f;--surface:#1e1e2e;--surface-2:#12121c;--border:#2d2d3f;--text:#e2e8f0;--text-muted:#94a3b8;--text-faint:#475569;--accent:#6c63ff;--accent-2:#a855f7;--bubble-epic-bg:#1e1e2e;--bubble-epic-text:#e2e8f0;--code-bg:#ffffff1a;--overlay:#0009;--scrollbar:#2d2d3f;--online:#4ade80;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#fff;--bg-elevated:#f8fafc;--surface:#f1f5f9;--surface-2:#eef2ff;--border:#e2e8f0;--text:#0f172a;--text-muted:#475569;--text-faint:#94a3b8;--accent:#5b52e0;--accent-2:#7c3aed;--bubble-epic-bg:#f1f5f9;--bubble-epic-text:#0f172a;--code-bg:#0f172a14;--overlay:#0f172a73;--scrollbar:#cbd5e1;--online:#16a34a;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:inherit}.app-loading{background:var(--bg);justify-content:center;align-items:center;height:100vh;display:flex}.app-loading:after{content:"";border:3px solid var(--accent);border-top-color:#0000;border-radius:50%;width:26px;height:26px;animation:.7s linear infinite app-spin}@keyframes app-spin{to{transform:rotate(360deg)}}.avatar-wrapper{flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.avatar-float{animation:3.6s ease-in-out infinite avatarFloat}.avatar-float--speaking{animation:.4s ease-in-out infinite avatarTalkBob!important}@keyframes avatarFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes avatarTalkBob{0%,to{transform:translateY(0)rotate(-.8deg)}50%{transform:translateY(-5px)rotate(.8deg)}}@keyframes mouthTalk{0%{transform:scaleY(.2)}to{transform:scaleY(1)}}@keyframes ledRowA{0%,to{opacity:1}50%{opacity:.15}}@keyframes ledRowB{0%,to{opacity:.15}50%{opacity:1}}.avatar-img{object-fit:cover;display:block}.avatar-ring{opacity:0;border:3px solid #0000;transition:opacity .2s;position:absolute}.avatar-ring--speaking{opacity:.85;animation:1s ease-in-out infinite ringPulseSlow}.avatar-ring--listening{opacity:.85;animation:.6s ease-in-out infinite ringPulseFast}@keyframes ringPulseSlow{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes ringPulseFast{0%,to{transform:scale(1)}50%{transform:scale(1.14)}}.bubble-row{align-items:flex-end;gap:.5rem;margin-bottom:.75rem;padding:0 1rem;display:flex}.bubble-row--user{flex-direction:row-reverse}.bubble-avatar{color:#fff;background:linear-gradient(135deg,#6c63ff,#a855f7);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.6rem;font-weight:700;display:flex}.bubble{word-break:break-word;white-space:normal;border-radius:16px;max-width:75%;padding:.65rem .9rem;font-size:.9rem;line-height:1.5}.bubble--epic{background:var(--bubble-epic-bg);color:var(--bubble-epic-text);border-bottom-left-radius:4px}.bubble--user{color:#fff;background:linear-gradient(135deg,#6c63ff,#a855f7);border-bottom-right-radius:4px}.bubble--failed{opacity:.6}.bubble-text{display:block}.bubble-status{opacity:.7;margin-top:.25rem;font-size:.7rem;display:block}.bubble-status--failed{color:#f87171;opacity:1}.bubble-speak{cursor:pointer;opacity:.5;background:0 0;border:none;flex-shrink:0;padding:.25rem;font-size:.85rem;line-height:1;transition:opacity .15s}.bubble-speak:hover,.bubble-speak--active{opacity:1}.md-spacer{height:.4rem}.md-list-item{gap:.4rem;margin:.1rem 0;display:flex}.md-list-num{flex-shrink:0;min-width:1.4rem;font-weight:600}.md-list-bullet{flex-shrink:0;min-width:1rem}.md-code{background:var(--code-bg);border-radius:3px;padding:.1em .35em;font-family:monospace;font-size:.85em}.bubble-frames-loading{opacity:.7;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.82rem;display:flex}.bubble-images{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin-top:.6rem;display:grid}.bubble-images--review .bubble-screenshot{border:2px solid #6c63ff66}.bubble-screenshot-wrap{position:relative}.bubble-screenshot{aspect-ratio:16/9;object-fit:cover;cursor:zoom-in;border:1px solid #ffffff1a;border-radius:6px;width:100%;transition:opacity .15s,transform .15s;display:block}.bubble-screenshot:hover{opacity:.88;transform:scale(1.02)}.bubble-screenshot-actions{opacity:0;gap:3px;transition:opacity .15s;display:flex;position:absolute;top:4px;right:4px}.bubble-screenshot-wrap:hover .bubble-screenshot-actions{opacity:1}.bubble-screenshot-replace,.bubble-screenshot-delete,.bubble-screenshot-move{color:#fff;cursor:pointer;background:#000000a6;border:none;border-radius:4px;padding:2px 6px;font-size:.78rem;line-height:1.4;transition:background .15s}.bubble-screenshot-replace:hover{background:#3b82f6cc}.bubble-screenshot-delete:hover{background:#dc2626cc}.bubble-screenshot-move:hover{background:#10b981cc}.bubble-file-input{display:none}.bubble-approval-bar{border-top:1px solid #ffffff1a;margin-top:.75rem;padding-top:.65rem}.bubble-approval-hint{opacity:.65;margin-bottom:.6rem;font-size:.78rem;line-height:1.4;display:block}.bubble-approval-actions{gap:.5rem;display:flex}.bubble-approve-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:8px;padding:.45rem 1rem;font-size:.85rem;font-weight:600;transition:opacity .15s}.bubble-approve-btn:hover{opacity:.88}.bubble-dismiss-btn{color:#e2e8f0;cursor:pointer;background:#ffffff1a;border:none;border-radius:8px;padding:.45rem .8rem;font-size:.85rem;transition:background .15s}.bubble-dismiss-btn:hover{background:#ffffff2e}.bubble-lightbox{z-index:2000;cursor:zoom-out;background:#000000e0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.bubble-lightbox-img{object-fit:contain;border-radius:8px;max-width:92vw;max-height:82vh;box-shadow:0 8px 40px #0009}.bubble-lightbox-nav{color:#e2e8f0;align-items:center;gap:1rem;margin-top:1rem;font-size:.9rem;display:flex}.bubble-lightbox-nav button{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:6px;padding:.2rem .6rem;font-size:1.4rem;transition:background .15s}.bubble-lightbox-nav button:hover{background:#ffffff47}.doc-chip-line{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.3rem 0;display:flex}.doc-chip{color:#e2e8f0;font:inherit;cursor:pointer;background:#6c63ff1f;border:1px solid #6c63ff73;border-radius:8px;align-items:center;gap:.45rem;max-width:100%;padding:.4rem .65rem;font-size:.85rem;transition:background .15s,border-color .15s;display:inline-flex}.doc-chip:hover{background:#6c63ff38;border-color:#6c63ff}.doc-chip:disabled{opacity:.6;cursor:wait}.doc-chip-icon{font-size:1rem;line-height:1}.doc-chip-name{text-overflow:ellipsis;white-space:nowrap;max-width:34ch;overflow:hidden}.doc-chip-dl{color:#6c63ff;font-weight:700}.doc-chip-meta{opacity:.75;font-size:.78rem}.chat-input-bar{background:var(--bg-elevated);border-top:1px solid var(--surface);align-items:center;gap:.4rem;padding:.4rem .75rem;display:flex}.chat-textarea{background:var(--surface);border:1px solid var(--border);color:var(--text);resize:none;border-radius:20px;outline:none;flex:1;max-height:100px;padding:.45rem .85rem;font-family:inherit;font-size:.875rem;line-height:1.4;transition:border-color .15s}.chat-textarea:focus{border-color:var(--accent)}.chat-textarea::placeholder{color:var(--text-faint)}.send-btn,.mic-btn{cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;transition:opacity .15s,background .15s;display:flex}.send-btn{background:linear-gradient(135deg, var(--accent), #a855f7);color:#fff}.send-btn:disabled{opacity:.35;cursor:default}.mic-btn{background:var(--surface);color:var(--text-muted)}.mic-btn:hover{background:var(--border)}.mic-btn--active{color:#fff;background:#f87171!important}.chat-page{background:var(--bg);flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.chat-header{background:var(--bg-elevated);border-bottom:1px solid var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 1rem;display:flex}.chat-header-left{align-items:center;display:flex}.chat-name{color:var(--text);font-size:.95rem;font-weight:600;line-height:1.2}.chat-status{font-size:.7rem;line-height:1.2}.chat-status--online{color:var(--online)}.chat-status--offline{color:var(--text-muted)}.chat-header-right{align-items:center;gap:6px;display:flex}.hdr-btn{background:var(--surface);border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:inherit;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;text-decoration:none;transition:border-color .15s,opacity .15s;display:flex}.hdr-btn:hover{border-color:var(--accent)}.hdr-btn:disabled{opacity:.4;cursor:default}.hdr-btn--off{opacity:.45}.hdr-btn--admin{background:#2d1b69}.hdr-spinner{border:2px solid var(--accent);border-top-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite hdr-spin;display:inline-block}@keyframes hdr-spin{to{transform:rotate(360deg)}}.hdr-modal-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.hdr-modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:14px;width:100%;max-width:380px;padding:1.5rem}.hdr-modal-title{color:var(--text);margin-bottom:.5rem;font-size:1rem;font-weight:700}.hdr-modal-label{color:var(--text-muted);margin-bottom:.5rem;font-size:.85rem}.hdr-modal-input{box-sizing:border-box;background:var(--bg);width:100%;color:var(--text);border:1px solid var(--border);border-radius:8px;outline:none;margin-bottom:1rem;padding:.5rem .75rem;font-size:.9rem}.hdr-modal-input:focus{border-color:var(--accent)}.hdr-modal-btns{justify-content:flex-end;gap:.5rem;display:flex}.hdr-modal-cancel{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:.4rem .9rem;font-size:.85rem}.hdr-modal-ok{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.4rem .9rem;font-size:.85rem;font-weight:600}@keyframes pulse-red{0%,to{box-shadow:0 0 #dc262666}50%{box-shadow:0 0 0 6px #dc262600}}.hdr-modal-record{background:#dc2626!important}.hdr-modal-record:hover{background:#b91c1c!important}.rec-controls{border:1px solid #dc2626;border-radius:16px;align-items:center;animation:1.5s ease-in-out infinite pulse-red;display:flex;overflow:hidden}.rec-controls-countdown{color:#fca5a5;white-space:nowrap;background:#1a0a0a;padding:0 10px;font-size:.75rem;font-weight:700}.rec-controls-snap{color:#fff;cursor:pointer;white-space:nowrap;background:#0f766e;border:none;border-right:1px solid #dc2626;height:100%;min-height:30px;padding:0 10px;font-size:.75rem;font-weight:700;transition:background .15s,transform .1s}.rec-controls-snap:hover{background:#0d9488}.rec-controls-snap--flash{transform:scale(1.08);background:#22d3ee!important}.rec-controls-pause{color:#fff;cursor:pointer;white-space:nowrap;background:#b45309;border:none;border-right:1px solid #dc2626;height:100%;min-height:30px;padding:0 10px;font-size:.75rem;font-weight:700;transition:background .15s}.rec-controls-pause:hover{background:#d97706}.rec-controls-pause:disabled{opacity:.5;cursor:default}.rec-controls-pause--paused{background:#92400e;animation:1.2s ease-in-out infinite pulse-paused}@keyframes pulse-paused{0%,to{background:#92400e}50%{background:#d97706}}.rec-controls-pip{color:#fff;cursor:pointer;white-space:nowrap;background:#374151;border:none;border-right:1px solid #dc2626;height:100%;min-height:30px;padding:0 8px;font-size:.75rem;transition:background .15s}.rec-controls-pip:hover{background:#4b5563}.rec-controls-pip--active{background:#1d4ed8}.rec-controls-pip--active:hover{background:#2563eb}.rec-controls-stop{color:#fff;cursor:pointer;white-space:nowrap;background:#dc2626;border:none;min-height:30px;padding:0 10px;font-size:.75rem;font-weight:700;transition:background .15s}.rec-controls-stop:hover{background:#b91c1c}.rec-controls-stop:disabled{opacity:.5;cursor:default}.rec-snap-flash{opacity:.55;pointer-events:none;z-index:1100;background:#fff;animation:.6s ease-out forwards snap-flash;position:fixed;inset:0}@keyframes snap-flash{0%{opacity:.55}to{opacity:0}}.hdr-modal-choices{flex-direction:column;gap:.5rem;margin-bottom:.25rem;display:flex}.hdr-modal-choice{border:1px solid var(--border);cursor:pointer;color:var(--text-muted);border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.88rem;transition:border-color .15s,color .15s;display:flex}.hdr-modal-choice input{display:none}.hdr-modal-choice--active{border-color:var(--accent);color:var(--text);background:#6c63ff14}.hdr-modal-hint{color:var(--text-muted);margin-top:.5rem;font-size:.78rem;line-height:1.4}.hdr-modal-hint--warn{color:#713f12;background:#fef9c3;border:1px solid #fde047;border-radius:6px;margin-top:.75rem;padding:.5rem .65rem}.rec-countdown-overlay{z-index:1000;background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rec-countdown-box{text-align:center;color:#fff}.rec-countdown-number{color:#ef4444;text-shadow:0 0 40px #ef444499;font-size:7rem;font-weight:800;line-height:1;animation:1s ease-in-out infinite countdown-pulse}.rec-countdown-msg{margin-top:.75rem;font-size:1.4rem;font-weight:600}.rec-countdown-sub{color:var(--text-muted);margin-top:.4rem;font-size:.95rem}@keyframes countdown-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.chat-avatar-area{z-index:5;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:56px;left:0;right:0}.chat-avatar-area--left{justify-content:flex-start;padding-left:1.25rem}.chat-avatar-area--right{justify-content:flex-end;padding-right:1.25rem}.chat-avatar-area .avatar-wrapper{filter:drop-shadow(0 6px 16px #0006)}.chat-messages{scroll-behavior:smooth;flex:1;padding:1rem 0;overflow-y:auto}.chat-messages--avatar-clear{padding-top:196px}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:0 0}.chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.team-online{align-items:center;margin-right:.5rem;display:flex}.team-dot{border:2px solid var(--bg);color:#fff;cursor:default;background:linear-gradient(135deg,#059669,#10b981);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin-left:-6px;font-size:.65rem;font-weight:700;transition:transform .15s;display:flex}.team-dot:first-child{margin-left:0}.team-dot:hover{transform:scale(1.15);z-index:10!important}.team-dot--overflow{background:var(--surface);color:var(--text-muted);font-size:.6rem}.chat-footer{text-align:center;color:var(--text-faint);background:var(--bg);flex-shrink:0;padding:.4rem;font-size:.65rem}.chat-footer a{color:var(--text-faint);text-decoration:none}.chat-footer a:hover{color:var(--text-muted)}.chat-profile-btn{text-decoration:none}.chat-profile-avatar{background:var(--surface);border:1px solid var(--border);width:30px;height:30px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;transition:border-color .15s;display:flex}.chat-profile-btn:hover .chat-profile-avatar{border-color:var(--accent)}.bubble--typing{align-items:center;gap:4px;padding:.75rem 1rem;display:flex}.bubble--typing span{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.2s infinite bounce}.bubble--typing span:nth-child(2){animation-delay:.2s}.bubble--typing span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.progress-card{background:var(--surface-2);border:1px solid var(--surface);border-radius:10px;max-width:420px;margin:.35rem 0;padding:.6rem .85rem}.progress-label{color:#a5b4c8;justify-content:space-between;gap:.75rem;margin-bottom:.45rem;font-size:.8rem;display:flex}.progress-pct{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}.progress-track{background:var(--surface);border-radius:3px;height:6px;position:relative;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent), #8f88ff);border-radius:3px;height:100%;transition:width .4s}.progress-fill--indeterminate{width:35%;animation:1.4s ease-in-out infinite progress-slide;position:absolute}@keyframes progress-slide{0%{left:-35%}to{left:100%}}@media (prefers-reduced-motion:reduce){.progress-fill--indeterminate{animation-duration:3s}}
