:root{color:#ecf0e8;background:radial-gradient(circle at top left,rgba(181,120,40,.18),transparent 30%),linear-gradient(180deg,#11171b,#1a2023);font-family:IBM Plex Sans,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}html,body,#root{height:100%}button,input,textarea{font:inherit}.app-shell{height:100vh;min-height:100vh;height:100dvh;padding:1rem;display:flex;flex-direction:column;overflow:hidden}.status-bar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;padding:.9rem 1rem;border:1px solid rgba(232,239,216,.12);border-radius:18px;background:#0a0e12c2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.status-group{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.status-group label{display:grid;gap:.25rem;font-size:.8rem;color:#bcc7b1}.status-group input{min-width:180px;padding:.45rem .6rem;color:#f2f6ee;background:#ffffff0a;border:1px solid rgba(255,255,255,.12);border-radius:10px}.status-pill{padding:.4rem .65rem;border-radius:999px;border:1px solid rgba(205,166,97,.24);background:#cda6611a;color:#f2dfba}.status-pill.active{background:#cda6613d}.content-grid{display:grid;grid-template-columns:.85fr .95fr 1.2fr;align-items:stretch;gap:1rem;margin-top:1rem;flex:1;min-height:0;overflow:hidden}.panel{display:flex;flex-direction:column;height:100%;min-height:0;border:1px solid rgba(232,239,216,.12);border-radius:20px;background:#0c1014d1;overflow:hidden}.panel-header{padding:1rem 1rem .75rem;border-bottom:1px solid rgba(255,255,255,.08)}.panel-header h2,.runtime-section h3{margin:0;font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:#f6d293}.chat-list{flex:1;min-height:0;padding:1rem;display:grid;gap:.8rem;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}.chat-list::-webkit-scrollbar{width:10px}.chat-list::-webkit-scrollbar-track{background:#ffffff0a}.chat-list::-webkit-scrollbar-thumb{border-radius:999px;border:2px solid rgba(12,16,20,.82);background:#f0bf6873}.chat-list::-webkit-scrollbar-thumb:hover{background:#f0bf68a6}.chat-trim-hint{margin:.7rem .85rem 0;padding:.55rem .7rem;border:1px solid rgba(160,177,210,.18);border-radius:10px;background:#8fb3ff14;color:#c3d2f1;font-size:.8rem}.chat-row{display:flex}.chat-row.user{justify-content:flex-end}.chat-row.assistant,.chat-row.system{justify-content:flex-start}.chat-message{position:relative;width:min(100%,38rem);padding:.9rem 1rem;border:1px solid rgba(255,255,255,.08);border-radius:22px;background:linear-gradient(180deg,#ffffff0f,#ffffff08),#ffffff08;box-shadow:inset 0 1px #ffffff0a,0 14px 32px #0000002e}.chat-message:after{content:"";position:absolute;top:1rem;width:14px;height:14px;transform:rotate(45deg);border-radius:3px}.chat-message.user{border-color:#8fb3ff38;background:linear-gradient(180deg,#8fb3ff2e,#8fb3ff14),#8fb3ff14}.chat-message.user:after{right:-7px;background:#8fb3ff29;border-top:1px solid rgba(143,179,255,.22);border-right:1px solid rgba(143,179,255,.22)}.chat-message.assistant{border-color:#f0bf6838;background:radial-gradient(circle at top left,rgba(240,191,104,.14),transparent 45%),linear-gradient(180deg,#ffffff0f,#ffffff08),#ffffff08}.chat-message.assistant:after{left:-7px;background:#f0bf681f;border-bottom:1px solid rgba(240,191,104,.22);border-left:1px solid rgba(240,191,104,.22)}.chat-message.system{border-style:dashed;border-color:#b0bcac33;background:#ffffff05}.chat-message.system:after{left:-7px;background:#b0bcac14;border-bottom:1px solid rgba(176,188,172,.22);border-left:1px solid rgba(176,188,172,.22)}.chat-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.45rem}.chat-meta-main{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;min-width:0}.chat-role{font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#f7efe0}.chat-source-badge,.chat-streaming-indicator{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .5rem;border-radius:999px;font-size:.69rem;text-transform:uppercase;letter-spacing:.05em}.chat-source-badge.fast{border:1px solid rgba(143,179,255,.25);background:#8fb3ff1a;color:#d7e4ff}.chat-source-badge.slow{border:1px solid rgba(240,191,104,.25);background:#f0bf681a;color:#ffe9c0}.chat-source-badge.system{border:1px solid rgba(176,188,172,.2);background:#b0bcac14;color:#d6ddd0}.chat-streaming-indicator{border:1px solid rgba(118,224,187,.2);background:#76e0bb1a;color:#c9fae9}.chat-streaming-dot{width:.45rem;height:.45rem;border-radius:999px;background:currentColor;animation:chat-pulse 1s ease-in-out infinite}.chat-time{flex-shrink:0;font-size:.74rem;color:#9da79a;font-variant-numeric:tabular-nums}.chat-text{white-space:normal;line-height:1.6;color:#edf1e7}.chat-text strong{color:#fff0cf}.chat-input{display:grid;gap:.75rem;padding:1rem;border-top:1px solid rgba(255,255,255,.08)}.chat-hint,.runtime-summary{padding:.75rem .85rem;border:1px solid rgba(240,191,104,.2);border-radius:12px;background:#f0bf6814;color:#f4dfb4}.chat-input textarea{min-height:82px;resize:vertical;padding:.75rem;color:#f2f6ee;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:12px}.chat-input button,.media-controls button,.file-button{padding:.7rem .9rem;color:#0f1417;background:#f0bf68;border:0;border-radius:12px;cursor:pointer}.file-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.media-panel{padding-bottom:1rem}.media-controls{display:flex;gap:.75rem;padding:1rem}.media-hint{margin:0 1rem .75rem;color:#bcc7b1;font-size:.85rem}.camera-preview{width:calc(100% - 2rem);margin:0 1rem;aspect-ratio:16 / 9;border-radius:16px;background:#050708;object-fit:cover}.metric-list{display:grid;gap:.75rem;margin:1rem}.metric-list div{padding:.8rem;border-radius:14px;background:#ffffff0a}.metric-list dt{margin-bottom:.35rem;color:#9ca792}.metric-list dd{margin:0}.runtime-panel{min-height:0}.runtime-panel-scroll{flex:1;min-height:0;overflow:hidden;padding:1rem;display:flex;flex-direction:column;gap:.9rem}.runtime-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.runtime-overview-card{padding:.95rem 1rem;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:linear-gradient(180deg,#ffffff0a,#ffffff05),#ffffff05}.runtime-overview-highlight{border-color:#f0bf682e;background:radial-gradient(circle at top right,rgba(240,191,104,.12),transparent 38%),#f0bf680f}.runtime-overview-label{font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#aeb8a5}.runtime-overview-value{margin-top:.45rem;font-size:1.15rem;font-weight:600;color:#fff0cf;overflow-wrap:anywhere}.runtime-overview-copy{margin-top:.35rem;font-size:.84rem;line-height:1.45;color:#c1cab8;overflow-wrap:anywhere}.runtime-section-card{display:flex;flex-direction:column;flex:0 0 auto;min-height:0;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:#ffffff06;overflow:hidden}.runtime-section-card.open{flex:1 1 auto}.runtime-section-summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;padding:.95rem 1rem;cursor:pointer;border:0;text-align:left;color:inherit;background:transparent;transition:background-color .14s ease,border-color .14s ease}.runtime-section-summary:hover{background:#ffffff09}.runtime-section-summary:focus-visible{outline:2px solid rgba(143,179,255,.5);outline-offset:-2px}.runtime-section-card.open .runtime-section-summary{background:linear-gradient(180deg,#f0bf680f,#ffffff05);border-bottom:1px solid rgba(255,255,255,.08)}.runtime-section-summary-copy{flex:1 1 auto;min-width:0}.runtime-section-summary h3{margin:0}.runtime-section-summary p{margin:.35rem 0 0;color:#aeb8a5;line-height:1.45;font-size:.86rem;overflow-wrap:anywhere}.runtime-section-badge{flex-shrink:0;padding:.35rem .65rem;border-radius:999px;border:1px solid rgba(240,191,104,.18);background:#f0bf6817;color:#f5dfb8;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em}.runtime-section-summary-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.7rem;flex-shrink:0;max-width:100%}.runtime-section-chevron{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:#f6d293;transition:transform .18s ease,background-color .14s ease,border-color .14s ease,color .14s ease}.runtime-section-summary:hover .runtime-section-chevron{background:#f0bf681f;border-color:#f0bf682e;color:#fff0cf}.runtime-section-card.open .runtime-section-chevron{transform:rotate(180deg);background:#f0bf6824;border-color:#f0bf683d}.runtime-section-chevron svg{width:1rem;height:1rem}.runtime-section-body{padding:0 1rem 1rem}.runtime-section-body.scrollable{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(143,179,255,.45) rgba(255,255,255,.05)}.runtime-section-body:not(.scrollable){overflow:auto;min-height:0}.runtime-section-body.scrollable::-webkit-scrollbar{width:10px}.runtime-section-body.scrollable::-webkit-scrollbar-track{background:#ffffff09;border-radius:999px}.runtime-section-body.scrollable::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#8fb3ffb3,#8fb3ff61);border-radius:999px;border:2px solid rgba(12,16,20,.82)}.runtime-card-list{display:grid;gap:.75rem}.runtime-card-list.nested{margin-top:.85rem}.runtime-card{padding:.9rem 1rem;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:linear-gradient(180deg,#ffffff0a,#ffffff05),#ffffff05;box-shadow:inset 0 1px #ffffff08}.runtime-card-accent{background:radial-gradient(circle at top right,rgba(240,191,104,.12),transparent 38%),#f0bf680f;border-color:#f0bf682e}.runtime-card-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.85rem}.runtime-card-header>:first-child{flex:1 1 220px;min-width:0}.runtime-card-title{font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:.84rem;color:#fff1ce;word-break:break-word;overflow-wrap:anywhere}.runtime-card-subtitle{margin-top:.25rem;color:#bcc7b1;line-height:1.45;overflow-wrap:anywhere}.runtime-pill-group{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:flex-end;align-items:flex-start;flex:0 1 auto;max-width:100%}@keyframes chat-pulse{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1)}}@media(max-width:1100px){.content-grid{grid-template-columns:1fr;overflow:auto}.runtime-overview-grid{grid-template-columns:1fr}}.runtime-pill{display:inline-flex;align-items:center;padding:.28rem .55rem;border-radius:999px;background:#8fb3ff1f;border:1px solid rgba(143,179,255,.16);color:#d4e1fb;font-size:.73rem;text-transform:uppercase;letter-spacing:.04em}.runtime-pill.muted{background:#ffffff0d;border-color:#ffffff14;color:#c7d0c0}.runtime-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:.9rem 0 0}.runtime-meta-grid div,.runtime-detail-row{padding:.65rem .75rem;border-radius:12px;background:#00000029}.runtime-meta-grid dt,.runtime-detail-row dt,.runtime-json-label{margin:0 0 .3rem;color:#9ca792;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em}.runtime-meta-grid dd,.runtime-detail-row dd{margin:0;color:#e8eee0;white-space:pre-wrap;word-break:break-word}.runtime-detail-list{display:grid;gap:.7rem;margin:0}.runtime-json-block{margin-top:.9rem;padding:.75rem;border-radius:12px;background:#060a0e73}.runtime-json-block pre{margin:0;white-space:pre-wrap;word-break:break-word;color:#d8dfcf}.runtime-empty{padding:.85rem .95rem;border-radius:14px;border:1px dashed rgba(255,255,255,.1);color:#aeb8a5}.runtime-empty.inline{margin-top:.7rem}.runtime-flow{margin-top:.95rem}.runtime-flow-label{margin-bottom:.45rem;color:#9ca792;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em}.runtime-flow-list{display:grid;gap:.45rem}.runtime-flow-item{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;padding:.65rem .75rem;border-radius:12px;background:#00000029;color:#d8dfcf;overflow-wrap:anywhere}.runtime-flow-kind{color:#fff1ce;font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:.8rem}.runtime-flow-summary{color:#c7d0c0}.runtime-flow-time{color:#96a28c;font-size:.76rem}.runtime-flow-separator{color:#fff3}.runtime-inline-details{margin-top:.95rem;border-top:1px solid rgba(255,255,255,.08);padding-top:.95rem}.runtime-inline-details summary{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;color:#f2dfba;font-family:IBM Plex Mono,SFMono-Regular,monospace;font-size:.82rem}.runtime-inline-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;padding:.15rem .4rem;border-radius:999px;background:#8fb3ff1f;color:#d4e1fb;font-size:.72rem}.runtime-card.nested{padding:.8rem .9rem}.runtime-log-card.info{border-left:3px solid #8fb3ff}.runtime-log-card.error{border-left:3px solid #f58f7c}.runtime-log-time{color:#96a28c;font-size:.76rem;white-space:nowrap}.runtime-log-message{margin-top:.65rem;color:#d8dfcf;line-height:1.5;word-break:break-word;overflow-wrap:anywhere}@media(max-width:1100px){.content-grid{grid-template-columns:1fr}.panel{min-height:0}.runtime-card-header{flex-direction:column}.runtime-pill-group{justify-content:flex-start}.runtime-section-summary{flex-direction:column;align-items:flex-start}.runtime-section-summary-actions{width:100%;justify-content:space-between}}.voice-panel{margin-top:1rem;padding:1.25rem 1.25rem 1.4rem;display:grid;gap:1.2rem;border:1px solid rgba(205,166,97,.25);background:radial-gradient(circle at 50% 0%,rgba(205,166,97,.14),transparent 60%),#0c1014eb;height:auto;overflow:visible}.voice-stage{display:flex;flex-direction:column;align-items:center;gap:.9rem}.voice-mic-button{position:relative;width:128px;height:128px;min-width:128px;min-height:128px;border-radius:999px;border:2px solid rgba(205,166,97,.55);background:radial-gradient(circle at 50% 35%,#2a3137,#13181c 70%);color:#f6d293;font-size:2.4rem;cursor:pointer;transition:transform .12s ease,border-color .2s ease,box-shadow .2s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;display:flex;align-items:center;justify-content:center;overflow:visible}.voice-mic-button:hover:not(:disabled){transform:translateY(-1px)}.voice-mic-button:active:not(:disabled){transform:translateY(0) scale(.97)}.voice-mic-button:disabled,.voice-mic-disabled{opacity:.45;cursor:not-allowed}.voice-mic-icon{position:relative;z-index:1;font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif;line-height:1}.voice-mic-halo{position:absolute;inset:-8px;border-radius:999px;border:2px solid transparent;pointer-events:none}.voice-mic-on{border-color:#f2c46d;box-shadow:0 0 0 6px #f2c46d1f}.voice-mic-on .voice-mic-halo{border-color:#f2c46d66;animation:voice-halo-pulse 1.4s ease-in-out infinite}.voice-mic-listening{border-color:#8fb3ff;box-shadow:0 0 0 8px #8fb3ff2e}.voice-mic-listening .voice-mic-halo{border-color:#8fb3ffa6;animation:voice-halo-pulse .9s ease-in-out infinite}.voice-mic-speaking{border-color:#7ec49a;box-shadow:0 0 0 8px #7ec49a38}.voice-mic-speaking .voice-mic-halo{border-color:#7ec49a8c;animation:voice-halo-pulse 1.1s ease-in-out infinite}@keyframes voice-halo-pulse{0%{transform:scale(1);opacity:.9}70%{transform:scale(1.18);opacity:0}to{transform:scale(1.18);opacity:0}}.voice-status{font-size:.95rem;color:#d8dfcf;letter-spacing:.02em;text-align:center}.voice-status-listening{color:#bcd1ff}.voice-status-speaking{color:#bfe3cf}.voice-status-disconnected{color:#f58f7c}.voice-subtitle{min-height:3.2em;padding:.9rem 1.1rem;border-radius:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:#ecf0e8;font-size:1.02rem;line-height:1.55;text-align:center;word-break:break-word}.app-shell{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));padding-bottom:max(1rem,env(safe-area-inset-bottom));padding-top:max(1rem,env(safe-area-inset-top))}@media(max-width:768px){.app-shell{height:100dvh;overflow-y:auto;overflow-x:hidden;padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.status-bar{padding:.7rem .85rem;gap:.5rem}.status-group input{min-width:0;width:100%}.content-grid{grid-template-columns:1fr;gap:.75rem;overflow:visible}.panel{max-height:none}.voice-panel{padding:1.1rem 1rem 1.25rem;margin-top:.75rem}.voice-mic-button{width:144px;height:144px;font-size:2.8rem}.voice-subtitle{font-size:1.08rem}.status-pill,button,.file-button{min-height:44px}}@media(hover:none)and (pointer:coarse){.voice-mic-button:hover:not(:disabled){transform:none}}
