*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--red:#e63946;--red-dark:#c1121f;--red-light:#fde8ea;--navy:#0f172a;--navy-mid:#1e293b;--navy-soft:#334155;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-400:#94a3b8;--gray-600:#475569;--white:#fff;--shadow-sm:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.05);--shadow-md:0 4px 16px rgba(15,23,42,.1);--shadow-lg:0 10px 40px rgba(15,23,42,.14);--radius:12px;--radius-sm:8px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--gray-100);font-family:DM Sans,sans-serif;font-size:16px;color:var(--navy)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:3px}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.break-all{word-break:break-all}.border{border-width:1px}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.underline{text-decoration-line:underline}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--ds-font-sans:"DM Sans",system-ui,-apple-system,sans-serif;--ds-font-serif:"Lora",Georgia,serif;--ds-font-mono:"DM Mono","Fira Code","JetBrains Mono",monospace;--ds-brand:#1e3a5f;--ds-brand-600:#24466f;--ds-brand-700:#162d4a;--ds-brand-tint:#eef2f8;--ds-accent:#e63946;--ds-accent-700:#c1121f;--ds-accent-tint:#fdecee;--ds-bg:#f5f7fa;--ds-surface:#fff;--ds-surface-2:#f8fafc;--ds-border:#e5e9f0;--ds-border-strong:#d3dbe6;--ds-text:#0f172a;--ds-text-2:#475569;--ds-text-3:#94a3b8;--ds-on-brand:#fff;--ds-text-xs:0.75rem;--ds-text-sm:0.875rem;--ds-text-base:1rem;--ds-text-lg:1.125rem;--ds-text-xl:1.375rem;--ds-text-2xl:1.75rem;--ds-text-3xl:clamp(2rem,6vw,2.5rem);--ds-1:4px;--ds-2:8px;--ds-3:12px;--ds-4:16px;--ds-5:20px;--ds-6:24px;--ds-8:32px;--ds-10:40px;--ds-12:48px;--ds-16:64px;--ds-20:80px;--ds-r-sm:8px;--ds-r:12px;--ds-r-lg:16px;--ds-r-xl:20px;--ds-r-full:999px;--ds-shadow-xs:0 1px 2px rgba(15,23,42,.06);--ds-shadow-sm:0 1px 3px rgba(15,23,42,.08),0 1px 2px rgba(15,23,42,.04);--ds-shadow-md:0 4px 16px rgba(15,23,42,.1);--ds-shadow-lg:0 12px 40px rgba(15,23,42,.14);--ds-shadow-brand:0 4px 20px rgba(30,58,95,.25)}html.dark{--ds-brand:#3b6098;--ds-brand-600:#4a72ad;--ds-brand-700:#2d4d7a;--ds-brand-tint:#172032;--ds-accent:#f05563;--ds-accent-700:#e63946;--ds-accent-tint:#2a1417;--ds-bg:#0b1120;--ds-surface:#131c2e;--ds-surface-2:#0f1627;--ds-border:#263349;--ds-border-strong:#33425c;--ds-text:#f1f5f9;--ds-text-2:#a9b6c8;--ds-text-3:#6b7a90;--ds-shadow-xs:0 1px 2px rgba(0,0,0,.4);--ds-shadow-sm:0 1px 3px rgba(0,0,0,.45);--ds-shadow-md:0 4px 16px rgba(0,0,0,.5);--ds-shadow-lg:0 12px 40px rgba(0,0,0,.6);--ds-shadow-brand:0 4px 20px rgba(0,0,0,.5)}.ds-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ds-2);font-family:var(--ds-font-sans);font-weight:700;line-height:1;border:1.5px solid transparent;border-radius:var(--ds-r);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .18s,border-color .18s,color .18s,transform .12s,box-shadow .18s}.ds-btn:active{transform:translateY(1px)}.ds-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.ds-btn--sm{padding:8px 14px;font-size:var(--ds-text-sm)}.ds-btn--md{padding:11px 20px}.ds-btn--lg,.ds-btn--md{font-size:var(--ds-text-base)}.ds-btn--lg{padding:14px 26px}.ds-btn--block{width:100%}.ds-btn--primary{background:var(--ds-brand);color:#fff;box-shadow:var(--ds-shadow-brand)}.ds-btn--primary:hover:not(:disabled){background:var(--ds-brand-700);transform:translateY(-1px)}.ds-btn--accent{background:var(--ds-accent);color:#fff;box-shadow:0 4px 16px rgba(230,57,70,.28)}.ds-btn--accent:hover:not(:disabled){background:var(--ds-accent-700);transform:translateY(-1px)}.ds-btn--secondary{background:var(--ds-surface);color:var(--ds-text-2);border-color:var(--ds-border-strong)}.ds-btn--secondary:hover:not(:disabled){border-color:var(--ds-brand);color:var(--ds-brand);background:var(--ds-brand-tint)}.ds-btn--ghost{background:transparent;color:var(--ds-text-2)}.ds-btn--ghost:hover:not(:disabled){background:var(--ds-surface-2);color:var(--ds-text)}.ds-card{background:var(--ds-surface);border:1.5px solid var(--ds-border);border-radius:var(--ds-r-lg);box-shadow:var(--ds-shadow-xs)}.ds-card--hover{transition:transform .18s,box-shadow .18s,border-color .18s}.ds-card--hover:hover{transform:translateY(-2px);box-shadow:var(--ds-shadow-md);border-color:var(--ds-border-strong)}.ds-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--ds-font-sans);font-weight:700;line-height:1;font-size:var(--ds-text-xs);padding:5px 11px;border-radius:var(--ds-r-full);border:1px solid transparent}.ds-badge--brand{background:var(--ds-brand-tint);color:var(--ds-brand);border-color:color-mix(in srgb,var(--ds-brand) 22%,transparent)}.ds-badge--accent{background:var(--ds-accent-tint);color:var(--ds-accent-700);border-color:color-mix(in srgb,var(--ds-accent) 25%,transparent)}.ds-badge--neutral{background:var(--ds-surface-2);color:var(--ds-text-2);border-color:var(--ds-border)}.ds-badge--success{background:#dcfce7;color:#166534;border-color:#bbf7d0}html.dark .ds-badge--success{background:#0a2d1a;color:#86efac;border-color:#14532d}.ds-icon-box{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:var(--ds-r-sm)}.ds-eyebrow{font-size:var(--ds-text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ds-text-3)}.auth-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 70% 10%,#fde8ea 0,transparent 55%),radial-gradient(ellipse at 10% 90%,#e8edf5 0,transparent 50%),var(--gray-100);padding:40px 16px}.auth-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 10px #e6394680;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.auth-input{background:var(--gray-100)!important;border:1.5px solid var(--gray-200)!important;border-radius:var(--radius-sm)!important;color:var(--navy)!important;font-family:DM Sans,sans-serif!important;font-size:1rem!important;padding:10px 13px!important;width:100%!important;transition:border-color .2s,box-shadow .2s;outline:none}.auth-input:focus{border-color:var(--red)!important;box-shadow:0 0 0 3px #e6394620!important;background:var(--white)!important}.auth-btn{width:100%;background:var(--red);border:none;border-radius:var(--radius-sm);color:var(--white);font-weight:700;font-family:DM Sans,sans-serif;font-size:1rem;padding:13px;letter-spacing:.03em;cursor:pointer;transition:background .15s,transform .1s,box-shadow .15s;box-shadow:0 2px 8px #e6394640}.auth-btn:hover{background:var(--red-dark);transform:translateY(-1px);box-shadow:0 4px 14px #e6394650}.auth-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.chat-page{display:flex;flex-direction:column;height:100vh;overflow:hidden}.msg-user{background:var(--red);border-radius:18px 18px 4px 18px;padding:12px 18px;max-width:75%;color:var(--white);line-height:1.65;box-shadow:0 2px 8px #e6394430;font-weight:500}.msg-bot,.msg-user{font-size:1.05rem;word-break:break-word;white-space:pre-wrap}.msg-bot{background:var(--white);border:1px solid var(--gray-200);border-radius:4px 18px 18px 18px;padding:14px 18px;color:var(--navy-mid);line-height:1.8}.mini-study-card,.msg-bot{max-width:85%;box-shadow:var(--shadow-sm)}.mini-study-card{background:linear-gradient(135deg,#fff8f0,#fff);border:1px solid #fddcb5;border-left:4px solid #f59e0b;border-radius:8px;padding:14px 16px;font-size:.93rem;line-height:1.65}.mini-study-card .study-badge{display:inline-flex;align-items:center;gap:5px;background:#fef3c7;color:#92400e;border-radius:20px;padding:2px 10px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}.mini-study-card .study-title{font-weight:700;color:var(--navy);font-size:1rem;margin-bottom:6px;font-family:Lora,serif}.mini-study-card .study-row{display:flex;gap:6px;margin-bottom:3px}.mini-study-card .study-label{color:#92400e;font-weight:600;font-size:.85rem;min-width:70px}.mini-study-card .study-val{color:var(--navy-soft);font-size:.9rem}.r-code-block{background:var(--navy);border-radius:8px;padding:14px 16px;max-width:85%;box-shadow:var(--shadow-sm);overflow:hidden}.r-code-block .code-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.r-code-block .code-badge{display:inline-flex;align-items:center;gap:5px;background:#1e3a5f;color:#7dd3fc;border-radius:20px;padding:2px 10px;font-size:.78rem;font-weight:700;letter-spacing:.06em;font-family:DM Mono,monospace}.r-code-block .copy-btn{background:transparent;border:1px solid #334155;color:#94a3b8;border-radius:6px;padding:3px 10px;font-size:.78rem;cursor:pointer;transition:all .2s}.r-code-block .copy-btn:hover{border-color:#7dd3fc;color:#7dd3fc}.r-code-block pre{color:#e2e8f0;font-family:Fira Code,Cascadia Code,JetBrains Mono,monospace;font-size:.83rem;line-height:1.65;overflow-x:auto;white-space:pre}.graph-card{background:var(--white);border:1px solid var(--gray-200);border-top:3px solid var(--red);border-radius:12px;overflow:hidden;max-width:96%;box-shadow:var(--shadow-md)}.graph-card--error{border-top-color:#ef4444}.graph-footer{padding:7px 14px;background:var(--gray-100);border-top:1px solid var(--gray-200);font-size:.74rem;color:var(--gray-400);font-weight:600;letter-spacing:.04em;font-family:DM Mono,monospace}.graph-loading{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;padding:28px 20px;max-width:96%;display:flex;align-items:center;gap:12px;color:var(--gray-400);font-size:.92rem;font-weight:500}.graph-spinner{width:18px;height:18px;border:2.5px solid var(--gray-200);border-top-color:var(--red);border-radius:50%;flex-shrink:0;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.chat-composer{background:var(--ds-surface);border:1.5px solid var(--ds-border-strong);border-radius:20px;padding:6px 8px 8px 16px;display:flex;flex-direction:column;box-shadow:var(--ds-shadow-sm);transition:border-color .18s,box-shadow .18s}.chat-composer:focus-within{border-color:var(--ds-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--ds-brand) 15%,transparent)}.chat-composer-input{width:100%;border:none;outline:none;resize:none;background:transparent;color:var(--ds-text);font-family:var(--ds-font-sans);font-size:16px;line-height:1.6;padding:8px 0 6px;max-height:200px;min-height:26px}.chat-composer-input::-moz-placeholder{color:var(--ds-text-3)}.chat-composer-input::placeholder{color:var(--ds-text-3)}.chat-composer-bar{display:flex;align-items:center;gap:8px}.composer-tool{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--ds-border);border-radius:999px;padding:6px 12px;cursor:pointer;font-family:var(--ds-font-sans);font-size:.8rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.composer-tool:hover{background:var(--ds-surface-2)}.chat-send-btn{width:40px;height:40px;border-radius:12px;border:none;background:var(--ds-brand);color:#fff;cursor:pointer;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,transform .1s,opacity .15s}.chat-send-btn:hover:not(:disabled){background:var(--ds-brand-700)}.chat-send-btn:active:not(:disabled){transform:scale(.93)}.chat-send-btn:disabled{opacity:.38;cursor:not-allowed}.chat-send-btn.stop{background:var(--ds-text)}.stop-square{width:12px;height:12px;border-radius:3px;background:var(--ds-surface);display:block}.chat-options-panel{background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:14px;padding:12px 14px;margin-bottom:10px;box-shadow:var(--ds-shadow-md)}.seg-control{display:inline-flex;background:var(--ds-surface-2);border:1px solid var(--ds-border);border-radius:10px;padding:3px;gap:3px}.seg-control button{display:inline-flex;align-items:center;gap:5px;background:transparent;border:none;border-radius:8px;padding:5px 12px;cursor:pointer;font-family:var(--ds-font-sans);font-size:.8rem;font-weight:700;color:var(--ds-text-2);transition:all .15s}.seg-control button.active{background:var(--ds-brand);color:#fff;box-shadow:var(--ds-shadow-xs)}.chat-scroll-btn{position:absolute;bottom:104px;left:50%;transform:translateX(-50%);width:38px;height:38px;border-radius:50%;background:var(--ds-surface);border:1px solid var(--ds-border);color:var(--ds-text-2);cursor:pointer;z-index:5;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--ds-shadow-md);transition:transform .15s}.chat-scroll-btn:hover{transform:translateX(-50%) translateY(-2px)}.chat-suggest-card{display:flex;align-items:center;gap:10px;text-align:left;background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:14px;padding:14px 16px;cursor:pointer;font-family:var(--ds-font-sans);font-size:.9rem;font-weight:600;color:var(--ds-text);transition:border-color .15s,transform .15s,box-shadow .15s}.chat-suggest-card:hover{border-color:var(--ds-brand);transform:translateY(-2px);box-shadow:var(--ds-shadow-sm)}.chat-suggest-card:disabled{opacity:.5;cursor:not-allowed}.msg-actions{display:inline-flex;gap:4px;margin-top:6px;opacity:.45;transition:opacity .15s}.msg-wrapper:hover .msg-actions{opacity:1}.msg-action-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:transparent;border:1px solid transparent;color:var(--ds-text-3);cursor:pointer;transition:all .15s}.msg-action-btn:hover{background:var(--ds-surface-2);border-color:var(--ds-border);color:var(--ds-text)}.msg-action-btn.is-fav{color:var(--ds-accent)}@media (max-width:768px){.msg-actions{opacity:.7}.chat-scroll-btn{bottom:96px}}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;grid-auto-flow:row dense}@media (max-width:720px){.dash-grid{grid-template-columns:1fr}}.dash-panel{background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:16px;padding:20px 22px;box-shadow:var(--ds-shadow-xs);transition:box-shadow .18s,border-color .18s;min-width:0}.dash-panel:hover{box-shadow:var(--ds-shadow-sm);border-color:var(--ds-border-strong)}.dash-panel--span{grid-column:1/-1}.dash-panel-title{font-family:var(--ds-font-sans);font-weight:700;font-size:1rem;color:var(--ds-text);margin:0 0 16px;display:flex;align-items:center;gap:9px}.dash-panel-title .ico{width:28px;height:28px;border-radius:8px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--ds-brand-tint);color:var(--ds-brand)}@keyframes quizPop{0%{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:none}}@keyframes quizFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes quizRing{0%{stroke-dashoffset:var(--ring-circ)}to{stroke-dashoffset:var(--ring-offset)}}.quiz-pop{animation:quizPop .38s cubic-bezier(.2,.7,.3,1)}.quiz-fade{animation:quizFade .28s ease}.quiz-ring-track{stroke:var(--ds-border)}.quiz-ring-arc{stroke-linecap:round;transform:rotate(-90deg);transform-origin:center;stroke-dasharray:var(--ring-circ);animation:quizRing 1s cubic-bezier(.3,.8,.3,1) both}.quiz-stat-tile{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 8px;border-radius:14px;background:var(--ds-surface-2);border:1px solid var(--ds-border)}.quiz-stat-tile .n{font-family:var(--ds-font-sans);font-size:1.5rem;font-weight:800;line-height:1}@keyframes quizCorrectPulse{0%{transform:scale(1)}40%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes quizWrongShake{0%,to{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}.quiz-opt-correct{animation:quizCorrectPulse .5s ease}.quiz-opt-wrong{animation:quizWrongShake .4s ease}.webr-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:.78rem;font-weight:600;letter-spacing:.04em}.webr-badge.loading{background:#fef3c7;color:#92400e}.webr-badge.ready{background:#dcfce7;color:#166534}.webr-badge.error{background:#fee2e2;color:#991b1b}.mbe-chip{background:var(--red-light);color:var(--red-dark);border-radius:20px;padding:5px 13px;font-size:.82rem;font-weight:600;cursor:pointer;font-family:DM Sans,sans-serif;transition:all .2s;border:none;white-space:nowrap}.mbe-chip:hover{background:var(--red);color:var(--white);transform:translateY(-1px)}.chat-textarea{background:var(--gray-100);border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);color:var(--navy);font-family:DM Sans,sans-serif;font-size:1.05rem;resize:none;padding:10px 14px;min-height:64px;transition:border-color .2s,box-shadow .2s;width:100%;outline:none}.chat-textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px #e6394620;background:var(--white)}.send-btn{background:var(--red);border:none;border-radius:var(--radius-sm);color:var(--white);font-weight:700;font-family:DM Sans,sans-serif;padding:10px 22px;font-size:.97rem;box-shadow:0 2px 8px #e6394440;transition:background .15s,transform .1s;cursor:pointer;align-self:flex-end;white-space:nowrap}.send-btn:hover:not(:disabled){background:var(--red-dark);transform:translateY(-1px)}.send-btn:disabled{opacity:.6;cursor:not-allowed}.msg-label{font-size:.79rem;color:var(--gray-400);font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.thinking-dot{animation:blink 1.2s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}.alerta{border-radius:var(--radius-sm);padding:10px 14px;font-size:.93rem;margin-top:12px;border-left:3px solid;font-weight:500}.alerta-erro{background:#fef2f2;border-color:var(--red);color:#b91c1c}.alerta-aviso{background:#fffbeb;border-color:#d97706;color:#92400e}.alerta-info{background:#eff6ff;border-color:#3b82f6;color:#1d4ed8}.alerta-sucesso{background:#f0fdf4;border-color:#16a34a;color:#15803d}.hist-item{background:var(--gray-100);border-radius:var(--radius-sm);padding:8px 12px;margin-bottom:6px;font-size:.9rem;color:var(--gray-600);border-left:2px solid var(--red);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;transition:background .15s;cursor:default}.hist-item:hover{background:var(--red-light);color:var(--red-dark)}@media (max-width:768px){.chat-page{height:100dvh;min-height:100dvh}.graph-card,.graph-loading,.mini-study-card,.msg-bot,.msg-user,.r-code-block{max-width:100%}.chat-textarea{font-size:16px!important}.r-code-block pre{font-size:.75rem;-webkit-overflow-scrolling:touch}.chat-input-area{padding:12px 12px env(safe-area-inset-bottom,8px)!important}.msg-fav-btn{opacity:.5;padding:8px;font-size:1.1rem}}html.dark{color-scheme:dark;--red:#e63946;--red-dark:#c1121f;--red-light:#3d1218;--navy:#f1f5f9;--navy-mid:#e2e8f0;--navy-soft:#cbd5e1;--gray-100:#1e293b;--gray-200:#334155;--gray-400:#64748b;--gray-600:#94a3b8;--white:#0f172a;--shadow-sm:0 1px 3px rgba(0,0,0,.35);--shadow-md:0 4px 16px rgba(0,0,0,.5);--shadow-lg:0 10px 40px rgba(0,0,0,.6)}html.dark body{background:#0f172a}html.dark ::-webkit-scrollbar-thumb{background:#334155}html.dark .msg-bot{background:#1e293b;border-color:#334155;color:#e2e8f0}html.dark .r-code-block{background:#090e18}html.dark .graph-card{background:#1e293b;border-color:#334155}html.dark .graph-footer{background:#0f172a;border-color:#334155;color:#475569}html.dark .graph-loading{background:#1e293b;border-color:#334155}html.dark .graph-spinner{border-color:#334155;border-top-color:var(--red)}html.dark .mini-study-card{background:linear-gradient(135deg,#2a1d0a,#1e293b);border-color:#7c4a1a}@media (max-width:540px){.dev-card{flex-direction:column!important}.dev-card-photo,.dev-card-photo img{width:100%!important;height:auto!important;min-height:unset!important}.dev-card-photo img{-o-object-fit:initial!important;object-fit:fill!important;-o-object-position:initial!important;object-position:initial!important}.dev-card-content{border-left:none!important;border-top:1.5px solid #e5e7eb!important;padding:16px 18px!important;gap:12px!important}.dev-card-name{font-size:1rem!important}}.pipeline-graph .graph-card{border:none;border-radius:0;max-width:100%;box-shadow:none}.pipeline-graph .graph-footer{border-radius:0}.pipeline-graph .graph-loading{border:none;padding:28px 20px}.pipeline-code .r-code-block,.pipeline-graph .graph-loading{border-radius:0;max-width:100%;box-shadow:none}html.dark .pipeline-graph .graph-footer{background:#0a0f1a}html.dark .auth-bg{background:radial-gradient(ellipse at 70% 10%,#3d1218 0,transparent 55%),radial-gradient(ellipse at 10% 90%,#1e293b 0,transparent 50%),#0f172a}html.dark .alerta-erro{background:#2d0a0a;color:#fca5a5;border-color:#991b1b}html.dark .alerta-aviso{background:#2a1d0a;color:#fcd34d;border-color:#92400e}html.dark .alerta-info{background:#0a1d2d;color:#93c5fd;border-color:#1d4ed8}html.dark .alerta-sucesso{background:#0a2d1a;color:#86efac;border-color:#15803d}html.dark .hist-item{background:#1e293b;color:#94a3b8}html.dark .hist-item:hover{background:#3d1218;color:#fca5a5}html.dark .webr-badge.loading{background:#2a1d0a;color:#fcd34d}html.dark .webr-badge.ready{background:#0a2d1a;color:#86efac}html.dark .webr-badge.error{background:#2d0a0a;color:#fca5a5}html.dark .chat-textarea{background:#1e293b;border-color:#334155;color:#f1f5f9}html.dark .chat-textarea:focus{background:#0f172a;border-color:#e63946}html.dark .auth-input{background:#1e293b!important;border-color:#334155!important;color:#f1f5f9!important}html.dark .auth-input:focus{background:#0f172a!important;border-color:#e63946!important}@media print{.chat-input-area,.chat-navbar,.chat-print-hide,.chat-sidebar{display:none!important}.chat-main,.chat-page{display:block!important;height:auto!important}.chat-messages{overflow:visible!important;height:auto!important;padding:20px!important}body{background:#fff!important;color:#000!important}.graph-card img{max-width:500px!important;-moz-column-break-inside:avoid;break-inside:avoid}}.msg-fav-btn{position:absolute;top:8px;right:10px;background:transparent;border:none;cursor:pointer;font-size:.95rem;opacity:0;transition:opacity .15s,transform .15s;padding:4px;border-radius:6px;line-height:1;z-index:2}.msg-fav-btn.is-fav{opacity:1!important}.msg-wrapper:hover .msg-fav-btn{opacity:.6}.msg-wrapper:hover .msg-fav-btn:hover{opacity:1;transform:scale(1.15)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #e63946;outline-offset:2px;border-radius:4px}.admin-root{--a-bg:#f1f5f9;--a-surface:#fff;--a-surface-2:#f8fafc;--a-surface-3:#f9fafb;--a-border:#e5e7eb;--a-border-soft:#f1f5f9;--a-text:#374151;--a-heading:#1e3a5f;--a-muted:#6b7280;--a-muted-2:#9ca3af;--a-tint-green:#f0fdf4;--a-tint-cyan:#ecfeff;--a-tint-blue:#eff6ff;--a-tint-purple:#f5f3ff;--a-tint-amber:#fffbeb;--a-tint-red:#fef2f2}html.dark .admin-root{--a-bg:#0f172a;--a-surface:#1e293b;--a-surface-2:#172032;--a-surface-3:#182234;--a-border:#334155;--a-border-soft:#22304a;--a-text:#e2e8f0;--a-heading:#cbd5e1;--a-muted:#94a3b8;--a-muted-2:#64748b;--a-tint-green:#0e2a1c;--a-tint-cyan:#08222a;--a-tint-blue:#10233b;--a-tint-purple:#1e1636;--a-tint-amber:#2a2109;--a-tint-red:#241315}.admin-root .adm-tab{transition:background .15s,color .15s}.admin-root .adm-tab:hover:not(.active){background:var(--a-bg)!important;color:var(--a-heading)!important}.admin-root .adm-card{transition:transform .15s ease,box-shadow .15s ease,border-color .2s}.admin-root .adm-card:hover{transform:translateY(-2px);box-shadow:0 1px 2px rgba(0,0,0,.1),0 18px 38px -18px rgba(0,0,0,.55)!important}.admin-root .adm-row td{transition:background .12s}.admin-root .adm-row:hover td{background:var(--a-surface-2)}.admin-root .adm-refresh:hover{background:hsla(0,0%,100%,.22)!important}.skeleton{position:relative;overflow:hidden;background:#e2e8f0;border-radius:10px}.dark .skeleton{background:#1e293b}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.45),transparent);animation:skeleton-shimmer 1.4s infinite}.dark .skeleton:after{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.06),transparent)}@keyframes skeleton-shimmer{to{transform:translateX(100%)}}::-moz-selection{background:rgba(230,57,70,.2)}::selection{background:rgba(230,57,70,.2)}html.dark ::-moz-selection{background:rgba(230,57,70,.32)}html.dark ::selection{background:rgba(230,57,70,.32)}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}html{scroll-behavior:auto}}