:root{--color-white:#fff;--color-black:#000;--color-cream-50:#fcfcf9;--color-cream-100:#fffffd;--color-gray-200:#f5f5f5;--color-gray-300:#a7a9a9;--color-gray-400:#777c7c;--color-slate-500:#626c71;--color-brown-600:#5e5240;--color-charcoal-700:#1f2121;--color-charcoal-800:#262828;--color-slate-900:#13343b;--color-teal-300:#32b8c6;--color-teal-400:#2da6b2;--color-teal-500:#21808d;--color-teal-600:#1d7480;--color-teal-700:#1a6873;--color-teal-800:#2996a1;--color-red-400:#ff5459;--color-red-500:#c0152f;--color-orange-400:#e68161;--color-orange-500:#a84b2f;--color-brown-600-rgb:94,82,64;--color-teal-500-rgb:33,128,141;--color-slate-900-rgb:19,52,59;--color-slate-500-rgb:98,108,113;--color-red-500-rgb:192,21,47;--color-red-400-rgb:255,84,89;--color-orange-500-rgb:168,75,47;--color-orange-400-rgb:230,129,97;--color-bg-1:rgba(59,130,246,.08);--color-bg-2:rgba(245,158,11,.08);--color-bg-3:rgba(34,197,94,.08);--color-bg-4:rgba(239,68,68,.08);--color-bg-5:rgba(147,51,234,.08);--color-bg-6:rgba(249,115,22,.08);--color-bg-7:rgba(236,72,153,.08);--color-bg-8:rgba(6,182,212,.08);--color-background:var(--color-cream-50);--color-surface:var(--color-cream-100);--color-text:var(--color-slate-900);--color-text-secondary:var(--color-slate-500);--color-primary:var(--color-teal-500);--color-primary-hover:var(--color-teal-600);--color-primary-active:var(--color-teal-700);--color-secondary:rgba(var(--color-brown-600-rgb),0.12);--color-secondary-hover:rgba(var(--color-brown-600-rgb),0.2);--color-secondary-active:rgba(var(--color-brown-600-rgb),0.25);--color-border:rgba(var(--color-brown-600-rgb),0.2);--color-btn-primary-text:var(--color-cream-50);--color-card-border:rgba(var(--color-brown-600-rgb),0.12);--color-card-border-inner:rgba(var(--color-brown-600-rgb),0.12);--color-error:var(--color-red-500);--color-success:var(--color-teal-500);--color-warning:var(--color-orange-500);--color-info:var(--color-slate-500);--color-focus-ring:rgba(var(--color-teal-500-rgb),0.4);--color-select-caret:rgba(var(--color-slate-900-rgb),0.8);--focus-ring:0 0 0 3px var(--color-focus-ring);--focus-outline:2px solid var(--color-primary);--status-bg-opacity:0.15;--status-border-opacity:0.25;--select-caret-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb:33,128,141;--color-error-rgb:192,21,47;--color-warning-rgb:168,75,47;--color-info-rgb:98,108,113;--font-family-base:"FKGroteskNeue","Geist","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-family-mono:"Berkeley Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:14px;--font-size-md:14px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:20px;--font-size-3xl:24px;--font-size-4xl:30px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:550;--font-weight-bold:600;--line-height-tight:1.2;--line-height-normal:1.5;--letter-spacing-tight:-0.01em;--space-0:0;--space-1:1px;--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--space-32:32px;--radius-sm:6px;--radius-base:8px;--radius-md:10px;--radius-lg:12px;--radius-full:9999px;--shadow-xs:0 1px 2px rgba(0,0,0,.02);--shadow-sm:0 1px 3px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.02);--shadow-md:0 4px 6px -1px rgba(0,0,0,.04),0 2px 4px -1px rgba(0,0,0,.02);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.04),0 4px 6px -2px rgba(0,0,0,.02);--shadow-inset-sm:inset 0 1px 0 hsla(0,0%,100%,.15),inset 0 -1px 0 rgba(0,0,0,.03);--duration-fast:150ms;--duration-normal:250ms;--ease-standard:cubic-bezier(0.16,1,0.3,1);--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px}@media (prefers-color-scheme:dark){:root{--color-gray-400-rgb:119,124,124;--color-teal-300-rgb:50,184,198;--color-gray-300-rgb:167,169,169;--color-gray-200-rgb:245,245,245;--color-bg-1:rgba(29,78,216,.15);--color-bg-2:rgba(180,83,9,.15);--color-bg-3:rgba(21,128,61,.15);--color-bg-4:rgba(185,28,28,.15);--color-bg-5:rgba(107,33,168,.15);--color-bg-6:rgba(194,65,12,.15);--color-bg-7:rgba(190,24,93,.15);--color-bg-8:rgba(8,145,178,.15);--color-background:var(--color-charcoal-700);--color-surface:var(--color-charcoal-800);--color-text:var(--color-gray-200);--color-text-secondary:rgba(var(--color-gray-300-rgb),0.7);--color-primary:var(--color-teal-300);--color-primary-hover:var(--color-teal-400);--color-primary-active:var(--color-teal-800);--color-secondary:rgba(var(--color-gray-400-rgb),0.15);--color-secondary-hover:rgba(var(--color-gray-400-rgb),0.25);--color-secondary-active:rgba(var(--color-gray-400-rgb),0.3);--color-border:rgba(var(--color-gray-400-rgb),0.3);--color-error:var(--color-red-400);--color-success:var(--color-teal-300);--color-warning:var(--color-orange-400);--color-info:var(--color-gray-300);--color-focus-ring:rgba(var(--color-teal-300-rgb),0.4);--color-btn-primary-text:var(--color-slate-900);--color-card-border:rgba(var(--color-gray-400-rgb),0.2);--color-card-border-inner:rgba(var(--color-gray-400-rgb),0.15);--shadow-inset-sm:inset 0 1px 0 hsla(0,0%,100%,.1),inset 0 -1px 0 rgba(0,0,0,.15);--button-border-secondary:rgba(var(--color-gray-400-rgb),0.2);--color-border-secondary:rgba(var(--color-gray-400-rgb),0.2);--color-select-caret:rgba(var(--color-gray-200-rgb),0.8);--focus-ring:0 0 0 3px var(--color-focus-ring);--focus-outline:2px solid var(--color-primary);--status-bg-opacity:0.15;--status-border-opacity:0.25;--select-caret-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb:var(--color-teal-300-rgb);--color-error-rgb:var(--color-red-400-rgb);--color-warning-rgb:var(--color-orange-400-rgb);--color-info-rgb:var(--color-gray-300-rgb)}}[data-color-scheme=dark]{--color-gray-400-rgb:119,124,124;--color-teal-300-rgb:50,184,198;--color-gray-300-rgb:167,169,169;--color-gray-200-rgb:245,245,245;--color-bg-1:rgba(29,78,216,.15);--color-bg-2:rgba(180,83,9,.15);--color-bg-3:rgba(21,128,61,.15);--color-bg-4:rgba(185,28,28,.15);--color-bg-5:rgba(107,33,168,.15);--color-bg-6:rgba(194,65,12,.15);--color-bg-7:rgba(190,24,93,.15);--color-bg-8:rgba(8,145,178,.15);--color-background:var(--color-charcoal-700);--color-surface:var(--color-charcoal-800);--color-text:var(--color-gray-200);--color-text-secondary:rgba(var(--color-gray-300-rgb),0.7);--color-primary:var(--color-teal-300);--color-primary-hover:var(--color-teal-400);--color-primary-active:var(--color-teal-800);--color-secondary:rgba(var(--color-gray-400-rgb),0.15);--color-secondary-hover:rgba(var(--color-gray-400-rgb),0.25);--color-secondary-active:rgba(var(--color-gray-400-rgb),0.3);--color-border:rgba(var(--color-gray-400-rgb),0.3);--color-error:var(--color-red-400);--color-success:var(--color-teal-300);--color-warning:var(--color-orange-400);--color-info:var(--color-gray-300);--color-focus-ring:rgba(var(--color-teal-300-rgb),0.4);--color-btn-primary-text:var(--color-slate-900);--color-card-border:rgba(var(--color-gray-400-rgb),0.15);--color-card-border-inner:rgba(var(--color-gray-400-rgb),0.15);--shadow-inset-sm:inset 0 1px 0 hsla(0,0%,100%,.1),inset 0 -1px 0 rgba(0,0,0,.15);--color-border-secondary:rgba(var(--color-gray-400-rgb),0.2);--color-select-caret:rgba(var(--color-gray-200-rgb),0.8);--focus-ring:0 0 0 3px var(--color-focus-ring);--focus-outline:2px solid var(--color-primary);--status-bg-opacity:0.15;--status-border-opacity:0.25;--select-caret-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb:var(--color-teal-300-rgb);--color-error-rgb:var(--color-red-400-rgb);--color-warning-rgb:var(--color-orange-400-rgb);--color-info-rgb:var(--color-gray-300-rgb)}[data-color-scheme=light]{--color-brown-600-rgb:94,82,64;--color-teal-500-rgb:33,128,141;--color-slate-900-rgb:19,52,59;--color-background:var(--color-cream-50);--color-surface:var(--color-cream-100);--color-text:var(--color-slate-900);--color-text-secondary:var(--color-slate-500);--color-primary:var(--color-teal-500);--color-primary-hover:var(--color-teal-600);--color-primary-active:var(--color-teal-700);--color-secondary:rgba(var(--color-brown-600-rgb),0.12);--color-secondary-hover:rgba(var(--color-brown-600-rgb),0.2);--color-secondary-active:rgba(var(--color-brown-600-rgb),0.25);--color-border:rgba(var(--color-brown-600-rgb),0.2);--color-btn-primary-text:var(--color-cream-50);--color-card-border:rgba(var(--color-brown-600-rgb),0.12);--color-card-border-inner:rgba(var(--color-brown-600-rgb),0.12);--color-error:var(--color-red-500);--color-success:var(--color-teal-500);--color-warning:var(--color-orange-500);--color-info:var(--color-slate-500);--color-focus-ring:rgba(var(--color-teal-500-rgb),0.4);--color-success-rgb:var(--color-teal-500-rgb);--color-error-rgb:var(--color-red-500-rgb);--color-warning-rgb:var(--color-orange-500-rgb);--color-info-rgb:var(--color-slate-500-rgb)}html{font-size:var(--font-size-base);font-family:var(--font-family-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;box-sizing:border-box}body{margin:0;padding:0}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4,h5,h6{margin:0;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text);letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-md)}p{margin:0 0 var(--space-16) 0}a{color:var(--color-primary);text-decoration:none;transition:color var(--duration-fast) var(--ease-standard)}a:hover{color:var(--color-primary-hover)}code,pre{font-family:var(--font-family-mono);font-size:calc(var(--font-size-base) * .95);background-color:var(--color-secondary);border-radius:var(--radius-sm)}code{padding:var(--space-1) var(--space-4)}pre{padding:var(--space-16);margin:var(--space-16) 0;overflow:auto;border:1px solid var(--color-border)}pre code{background:none;padding:0}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-16);border-radius:var(--radius-base);font-size:var(--font-size-base);font-weight:500;line-height:1.5;cursor:pointer;transition:all var(--duration-normal) var(--ease-standard);border:none;text-decoration:none;position:relative}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn--primary{background:var(--color-primary);color:var(--color-btn-primary-text)}.btn--primary:hover{background:var(--color-primary-hover)}.btn--primary:active{background:var(--color-primary-active)}.btn--secondary{background:var(--color-secondary);color:var(--color-text)}.btn--secondary:hover{background:var(--color-secondary-hover)}.btn--secondary:active{background:var(--color-secondary-active)}.btn--outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn--outline:hover{background:var(--color-secondary)}.btn--sm{padding:var(--space-4) var(--space-12);font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.btn--lg{padding:var(--space-10) var(--space-20);font-size:var(--font-size-lg);border-radius:var(--radius-md)}.btn--full-width{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.form-control{display:block;width:100%;padding:var(--space-8) var(--space-12);font-size:var(--font-size-md);line-height:1.5;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);transition:border-color var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}textarea.form-control{font-family:var(--font-family-base);font-size:var(--font-size-base)}select.form-control{padding:var(--space-8) var(--space-12);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:var(--select-caret-light);background-repeat:no-repeat;background-position:right var(--space-12) center;background-size:16px;padding-right:var(--space-32)}@media (prefers-color-scheme:dark){select.form-control{background-image:var(--select-caret-dark)}}[data-color-scheme=dark] select.form-control{background-image:var(--select-caret-dark)}[data-color-scheme=light] select.form-control{background-image:var(--select-caret-light)}.form-control:focus{border-color:var(--color-primary);outline:var(--focus-outline)}.form-label{display:block;margin-bottom:var(--space-8);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.form-group{margin-bottom:var(--space-16)}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow var(--duration-normal) var(--ease-standard)}.card:hover{box-shadow:var(--shadow-md)}.card__body{padding:var(--space-16)}.card__footer,.card__header{padding:var(--space-16);border-bottom:1px solid var(--color-card-border-inner)}.status{display:inline-flex;align-items:center;padding:var(--space-6) var(--space-12);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.status--success{background-color:rgba(var(--color-success-rgb,33,128,141),var(--status-bg-opacity));color:var(--color-success);border:1px solid rgba(var(--color-success-rgb,33,128,141),var(--status-border-opacity))}.status--error{background-color:rgba(var(--color-error-rgb,192,21,47),var(--status-bg-opacity));color:var(--color-error);border:1px solid rgba(var(--color-error-rgb,192,21,47),var(--status-border-opacity))}.status--warning{background-color:rgba(var(--color-warning-rgb,168,75,47),var(--status-bg-opacity));color:var(--color-warning);border:1px solid rgba(var(--color-warning-rgb,168,75,47),var(--status-border-opacity))}.status--info{background-color:rgba(var(--color-info-rgb,98,108,113),var(--status-bg-opacity));color:var(--color-info);border:1px solid rgba(var(--color-info-rgb,98,108,113),var(--status-border-opacity))}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:var(--space-16);padding-left:var(--space-16)}@media (min-width:640px){.container{max-width:var(--container-sm)}}@media (min-width:768px){.container{max-width:var(--container-md)}}@media (min-width:1024px){.container{max-width:var(--container-lg)}}@media (min-width:1280px){.container{max-width:var(--container-xl)}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:var(--space-4)}.gap-8{gap:var(--space-8)}.gap-16{gap:var(--space-16)}.m-0{margin:0}.mt-8{margin-top:var(--space-8)}.mb-8{margin-bottom:var(--space-8)}.mx-8{margin-left:var(--space-8);margin-right:var(--space-8)}.my-8{margin-top:var(--space-8);margin-bottom:var(--space-8)}.p-0{padding:0}.py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.py-16{padding-top:var(--space-16);padding-bottom:var(--space-16)}.px-16{padding-left:var(--space-16);padding-right:var(--space-16)}.block{display:block}.hidden{display:none}:focus-visible{outline:var(--focus-outline);outline-offset:2px}[data-color-scheme=dark] .btn--outline{border:1px solid var(--color-border-secondary)}@font-face{font-family:FKGroteskNeue;src:url(https://r2cdn.perplexity.ai/fonts/FKGroteskNeue.woff2) format("woff2")}.dashboard-container{display:grid;grid-template-columns:320px 1fr 380px;height:100vh;background:var(--color-background);overflow:hidden}@media (max-width:1200px){.dashboard-container{grid-template-columns:280px 1fr 320px}}@media (max-width:768px){.dashboard-container{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}}.chat-panel,.stream-panel,.viz-panel{display:flex;flex-direction:column;background:var(--color-surface);border-right:1px solid var(--color-border);overflow:hidden}.chat-panel{border-right:none;border-left:1px solid var(--color-border)}.panel-header{padding:var(--space-16) var(--space-20);border-bottom:1px solid var(--color-border);background:var(--color-bg-1)}.logo{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);background:linear-gradient(135deg,var(--color-primary) 0,var(--color-teal-400) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-8)}.panel-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0;display:flex;align-items:center;gap:var(--space-8)}.stream-controls{padding:var(--space-16) var(--space-20);border-bottom:1px solid var(--color-border);background:var(--color-bg-2)}.search-container{position:relative;margin-bottom:var(--space-12)}.search-input{padding-left:var(--space-32)}.search-icon{position:absolute;left:var(--space-10);top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--color-text-secondary);pointer-events:none}.filter-controls select{width:100%}.stream-accordion{flex:1;overflow-y:auto;padding:var(--space-8)}.accordion-category{margin-bottom:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-base);overflow:hidden}.category-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-12) var(--space-16);background:var(--color-bg-3);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.category-header:hover{background:var(--color-bg-4)}.category-title{font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--space-8)}.category-count,.category-title{font-weight:var(--font-weight-medium)}.category-count{background:var(--color-secondary);color:var(--color-text);padding:var(--space-2) var(--space-6);border-radius:var(--radius-full);font-size:var(--font-size-xs)}.accordion-icon{width:16px;height:16px;transition:transform var(--duration-fast) var(--ease-standard)}.category-header.expanded .accordion-icon{transform:rotate(180deg)}.category-content{max-height:0;overflow:hidden;transition:max-height var(--duration-normal) var(--ease-standard)}.category-content.expanded{max-height:1000px}.stream-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-10) var(--space-16);border-bottom:1px solid var(--color-border);transition:background-color var(--duration-fast) var(--ease-standard)}.stream-item:hover{background:var(--color-bg-5)}.stream-item:last-child{border-bottom:none}.stream-info{flex:1;min-width:0}.stream-name{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);margin-bottom:var(--space-2);color:var(--color-text)}.stream-meta{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap}.status-pulse{width:8px;height:8px;border-radius:50%;background:var(--color-success);animation:pulse 2s infinite}.status-pulse.warning{background:var(--color-warning)}.status-pulse.error{background:var(--color-error)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.format-chip{padding:var(--space-1) var(--space-4);background:var(--color-secondary);color:var(--color-text);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}.format-chip,.latency-text{font-size:var(--font-size-xs)}.latency-text{color:var(--color-text-secondary)}.stream-toggle{position:relative;width:40px;height:20px;background:var(--color-secondary);border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-standard)}.stream-toggle.active{background:var(--color-primary)}.stream-toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--color-white);border-radius:50%;transition:transform var(--duration-fast) var(--ease-standard)}.stream-toggle.active:after{transform:translateX(20px)}.viz-toolbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-12) var(--space-20);border-bottom:1px solid var(--color-border);background:var(--color-bg-6)}.viz-tabs{display:flex;gap:var(--space-4)}.viz-tab{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-8) var(--space-12);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-base);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-standard);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.viz-tab:hover{background:var(--color-secondary);color:var(--color-text)}.viz-tab.active{background:var(--color-primary);color:var(--color-btn-primary-text);border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-teal-500-rgb),.2)}.viz-tab i{width:16px;height:16px}.viz-actions{display:flex;gap:var(--space-8)}.chart-drawer{background:var(--color-bg-7);border-bottom:1px solid var(--color-border);overflow:hidden;transition:all var(--duration-normal) var(--ease-standard);max-height:0}.chart-drawer.expanded{max-height:400px}.chart-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-12) var(--space-20);border-bottom:1px solid var(--color-border)}.chart-drawer-header h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0}.chart-tabs{display:flex;gap:var(--space-4)}.chart-tab{padding:var(--space-4) var(--space-8);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);transition:all var(--duration-fast) var(--ease-standard)}.chart-tab:hover{background:var(--color-secondary);color:var(--color-text)}.chart-tab.active{background:var(--color-primary);color:var(--color-btn-primary-text);border-color:var(--color-primary)}.chart-drawer-close{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-4);border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-standard)}.chart-drawer-close:hover{background:var(--color-secondary);color:var(--color-text)}.chart-container-wrapper{padding:var(--space-16) var(--space-20)}.viz-content{flex:1;position:relative;overflow:hidden}.viz-mode{position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;visibility:hidden;transition:all var(--duration-normal) var(--ease-standard)}.viz-mode.active{opacity:1;visibility:visible}.globe-container,.map-container{width:100%;height:100%}.globe-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-16)}.loading-spinner{width:40px;height:40px;border-top:3px solid var(--color-secondary);border:3px solid var(--color-secondary);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.charts-grid,.timeseries-container{padding:var(--space-20)}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--space-20)}.chart-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-16);box-shadow:var(--shadow-sm)}.chart-card h4{margin:0 0 var(--space-16) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.time-controls{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-20);border-top:1px solid var(--color-border);background:var(--color-bg-8)}.time-slider-container{flex:1}.time-slider{width:100%;height:4px;background:var(--color-secondary);border-radius:var(--radius-full);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.time-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:var(--color-primary);border-radius:50%;cursor:pointer}.time-slider::-moz-range-thumb{width:16px;height:16px;background:var(--color-primary);border-radius:50%;cursor:pointer;border:none}.time-display{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);font-family:var(--font-family-mono)}.chat-status{display:flex;align-items:center;gap:var(--space-6);margin-top:var(--space-8)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--color-error)}.status-dot.active{background:var(--color-success);animation:pulse 2s infinite}.status-text{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-16);scroll-behavior:smooth}.message{margin-bottom:var(--space-16);animation:fadeIn var(--duration-normal) var(--ease-standard)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.system .message-content{background:var(--color-bg-3);border-left:3px solid var(--color-info)}.message.assistant .message-content{background:var(--color-bg-4);border-left:3px solid var(--color-primary)}.message.user .message-content{background:var(--color-bg-5);border-left:3px solid var(--color-success);margin-left:var(--space-20)}.message-content{padding:var(--space-12) var(--space-16);border-radius:var(--radius-base);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.message-content p{margin:0 0 var(--space-8) 0}.message-content p:last-child{margin-bottom:0}.message-content code{background:var(--color-secondary);padding:var(--space-1) var(--space-4);border-radius:var(--radius-sm);font-family:var(--font-family-mono);font-size:calc(var(--font-size-sm) * .9)}.message-content pre{background:var(--color-secondary);padding:var(--space-12);border-radius:var(--radius-base);overflow-x:auto;margin:var(--space-8) 0}.message-content pre code{background:none;padding:0}.rag-context{padding:var(--space-8) var(--space-16);background:var(--color-bg-1);border-bottom:1px solid var(--color-border);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.context-label{font-weight:var(--font-weight-medium);margin-right:var(--space-6)}.context-items{color:var(--color-primary)}.chat-input-container{border-top:1px solid var(--color-border)}.chat-input-wrapper{display:flex;align-items:flex-end;gap:var(--space-8);padding:var(--space-16)}.chat-input{flex:1;resize:none;min-height:40px;max-height:120px}.send-button{padding:var(--space-8);border-radius:var(--radius-base);display:flex;align-items:center;justify-content:center}.send-button i{width:16px;height:16px}@media (max-width:768px){.chat-panel,.stream-panel{display:none}.viz-panel{grid-column:1}.panel-header{padding:var(--space-12) var(--space-16)}.viz-toolbar{padding:var(--space-8) var(--space-16)}.viz-tabs{flex-wrap:wrap}.viz-tab span{display:none}.charts-grid{grid-template-columns:1fr;padding:var(--space-16)}.time-controls{padding:var(--space-8) var(--space-16)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.chart-tab:focus,.stream-toggle:focus,.viz-tab:focus{outline:var(--focus-outline);outline-offset:2px}.fade-slide-in{animation:fadeSlideIn var(--duration-normal) var(--ease-standard)}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chart-container{position:relative}.chart-container canvas{max-height:100%}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:rgba(148,163,184,.1);border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb{background:rgba(148,163,184,.3);border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.5)}