:root{--bg:#0a0b0d;--sidebar:#0f1114;--panel:#14171c;--panel-2:#1b1f26;--hover:#1e232b;--border:#23282f;--border-soft:#191d23;--text:#ececf1;--muted:#9aa3b2;--muted-2:#6b7280;--accent:#3ddc97;--accent-dim:#1f7a55;--accent-glow:rgba(61,220,151,.14);--warn:#f0b429;--danger:#f0616d;--sidebar-w:264px;--radius:14px}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.app{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--sidebar);border-right:1px solid var(--border-soft);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;padding:.75rem;gap:.35rem}.brand-row{display:flex;align-items:center;gap:.55rem;padding:.5rem .5rem .75rem}.brand-mark{width:26px;height:26px;border-radius:8px;flex-shrink:0;background:radial-gradient(circle at 30% 30%,var(--accent),var(--accent-dim));box-shadow:0 0 14px var(--accent-glow)}.brand-lockup{display:flex;align-items:baseline;gap:.5rem;min-width:0;flex-wrap:wrap}.brand-name{font-weight:800;letter-spacing:-.02em;font-size:1.05rem;white-space:nowrap}.brand-name span{color:var(--accent)}.brand-tag{color:var(--muted-2);font-size:.72rem;font-weight:500;white-space:nowrap}.new-chat{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.6rem .7rem;font-size:.9rem;font-weight:600;transition:background .12s,border-color .12s}.new-chat:hover{background:var(--hover);border-color:var(--accent-dim)}.nav-group{display:flex;flex-direction:column;gap:.1rem;margin-top:.35rem}.nav-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:9px;color:var(--muted);font-size:.9rem;transition:background .12s,color .12s}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item.active{background:var(--panel-2);color:var(--text)}.nav-item .ico{flex-shrink:0;opacity:.85}.new-chat .ico{color:var(--accent)}.section-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);padding:.9rem .6rem .35rem}.chat-list{flex:1 1;overflow-y:auto;display:flex;flex-direction:column;gap:.05rem;margin:0 -.15rem;padding:0 .15rem}.chat-list::-webkit-scrollbar{width:6px}.chat-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.chat-row{display:flex;align-items:center;gap:.4rem;padding:.5rem .6rem;border-radius:9px;color:var(--muted);font-size:.87rem;cursor:pointer;transition:background .12s,color .12s}.chat-row:hover{background:var(--hover);color:var(--text)}.chat-row.active{background:var(--panel-2);color:var(--text)}.chat-row .title{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-row .del{opacity:0;color:var(--muted-2);border:none;background:none;padding:0 .15rem;display:grid;place-items:center}.chat-row:hover .del{opacity:1}.chat-row .del:hover{color:var(--danger)}.chat-empty{color:var(--muted-2);font-size:.82rem;padding:.5rem .6rem}.sidebar-footer{border-top:1px solid var(--border-soft);padding-top:.6rem;display:flex;flex-direction:column;gap:.1rem}.foot-link{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-radius:8px;color:var(--muted-2);font-size:.82rem}.foot-link:hover{background:var(--hover);color:var(--text)}.main{flex:1 1;min-width:0;display:flex;flex-direction:column;position:relative}.topbar{display:flex;gap:.6rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border-soft);font-size:.85rem;color:var(--muted)}.pill,.topbar{align-items:center}.pill{display:inline-flex;gap:.4rem;border:1px solid var(--border);border-radius:999px;padding:.25rem .7rem;font-size:.78rem}.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.pill.muted{color:var(--muted-2)}.scroll{flex:1 1;overflow-y:auto}.center-col{max-width:780px;margin:0 auto;padding:1.25rem 1.25rem 9rem;width:100%}.welcome{min-height:calc(100vh - 220px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.6rem}.welcome-mark{color:var(--accent);margin-bottom:.5rem;filter:drop-shadow(0 0 14px var(--accent-glow))}.welcome h1{font-size:1.7rem;font-weight:700;letter-spacing:-.01em}.welcome p{color:var(--muted);max-width:30rem;line-height:1.5}.welcome .promise{color:var(--accent);font-weight:600}.suggests{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1.25rem}.suggest{border:1px solid var(--border);background:var(--panel);border-radius:999px;padding:.5rem .95rem;font-size:.85rem;color:var(--muted);transition:background .12s,border-color .12s,color .12s}.suggest:hover{background:var(--hover);color:var(--text);border-color:var(--accent-dim)}.turn{display:flex;flex-direction:column;gap:.7rem;margin-bottom:1.6rem}.msg-user{align-self:flex-end;max-width:82%;background:var(--panel-2);border:1px solid var(--border);border-radius:16px 16px 4px 16px;padding:.7rem 1rem;line-height:1.5}.msg-ai{display:flex;gap:.7rem}.msg-ai .ai-mark{flex-shrink:0;color:var(--accent);margin-top:.15rem}.msg-ai .body{flex:1 1;min-width:0}.answer{white-space:pre-wrap;line-height:1.62}.thinking{color:var(--muted);display:inline-flex;gap:.35rem;align-items:center}.thinking .blip{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:blip 1s ease-in-out infinite}@keyframes blip{0%,80%,to{opacity:.25}40%{opacity:1}}.error-box{border:1px solid var(--warn);color:var(--warn);border-radius:12px;padding:.75rem 1rem;font-size:.9rem;background:rgba(240,180,41,.06)}.sources{margin-top:1rem;border:1px solid var(--border-soft);border-radius:12px;overflow:hidden}.sources summary{cursor:pointer;list-style:none;padding:.6rem .9rem;font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:.5rem}.sources summary::-webkit-details-marker{display:none}.sources summary .caret{transition:transform .15s}.sources[open] summary .caret{transform:rotate(90deg)}.source{display:flex;gap:.55rem;align-items:baseline;font-size:.88rem;padding:.5rem .9rem;border-top:1px solid var(--border-soft)}.source a{color:var(--accent)}.source a:hover{text-decoration:underline}.tag{font-size:.68rem;border-radius:5px;padding:.08rem .42rem;border:1px solid var(--border);color:var(--muted-2);white-space:nowrap}.tag.fact{color:var(--accent);border-color:var(--accent-dim)}.tag.opinion{color:var(--warn);border-color:var(--warn)}.source .dom{color:var(--muted-2);font-size:.76rem}.meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.85rem;font-size:.75rem}.chip{border:1px solid var(--border);border-radius:999px;padding:.18rem .6rem;color:var(--muted)}.chip.good{border-color:var(--accent-dim);color:var(--accent)}.composer{position:absolute;bottom:0;left:0;right:0;padding:1rem 1.25rem 1.4rem;background:linear-gradient(transparent,var(--bg) 24%)}.composer-inner{max-width:780px;margin:0 auto}.input-wrap{display:flex;align-items:flex-end;gap:.6rem;background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:.55rem .55rem .55rem 1.1rem;transition:border-color .15s,box-shadow .15s}.input-wrap:focus-within{border-color:var(--accent-dim);box-shadow:0 0 0 3px var(--accent-glow)}.input-wrap textarea{flex:1 1;resize:none;border:none;outline:none;background:transparent;color:var(--text);font-size:1rem;line-height:1.5;max-height:180px;padding:.35rem 0;font-family:inherit}.input-wrap textarea::placeholder{color:var(--muted-2)}.send-btn{width:38px;height:38px;border-radius:12px;border:none;flex-shrink:0;background:var(--accent);color:#06281a;font-size:1.1rem;font-weight:700;display:grid;place-items:center;transition:opacity .12s,transform .08s}.send-btn:hover:not(:disabled){transform:translateY(-1px)}.send-btn:disabled{opacity:.4;cursor:not-allowed}.composer-foot{justify-content:space-between;gap:.6rem;margin-top:.55rem;padding:0 .3rem}.composer-foot,.foot-controls{display:flex;align-items:center}.foot-controls{gap:.4rem;flex-wrap:wrap}.mic-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--border);flex-shrink:0;background:var(--panel-2);color:var(--muted);display:grid;place-items:center;transition:color .12s,border-color .12s,background .12s}.mic-btn:hover{color:var(--text);border-color:var(--accent-dim)}.mic-btn.on{color:var(--danger);border-color:var(--danger);animation:pulse 1.2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 0 rgba(240,97,109,.35)}50%{box-shadow:0 0 0 5px rgba(240,97,109,0)}}.toggle{display:inline-flex;align-items:center;gap:.4rem;background:transparent;border:1px solid var(--border);border-radius:999px;padding:.3rem .7rem;color:var(--muted);font-size:.78rem;transition:color .12s,border-color .12s,background .12s}.toggle:hover{background:var(--hover);color:var(--text)}.toggle.on{color:var(--accent);border-color:var(--accent-dim);background:var(--accent-glow)}.model-select{position:relative}.model-menu{position:absolute;bottom:130%;left:0;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:.35rem;min-width:220px;box-shadow:0 8px 30px rgba(0,0,0,.5);z-index:5}.model-opt{padding:.5rem .6rem;border-radius:8px;font-size:.82rem}.model-opt:hover{background:var(--hover)}.model-opt .m-name{color:var(--text);font-weight:600}.model-opt .m-sub{color:var(--muted-2);font-size:.74rem;margin-top:.1rem}.foot-note{color:var(--muted-2);font-size:.72rem}.research-badge{display:inline-flex;align-items:center;gap:.4rem;color:var(--accent);font-size:.76rem;border:1px solid var(--accent-dim);border-radius:999px;padding:.2rem .6rem;margin-bottom:.8rem}.research-plan{border-left:2px solid var(--border);padding-left:.9rem;margin:.4rem 0 1rem;display:flex;flex-direction:column;gap:.85rem}.research-step .step-q{display:flex;align-items:baseline;gap:.5rem;font-weight:600;font-size:.92rem}.step-n{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--panel-2);border:1px solid var(--border);color:var(--accent);font-size:.7rem;flex-shrink:0}.step-finding{color:var(--muted);font-size:.86rem;line-height:1.5;margin:.3rem 0 0 .2rem;padding-left:.6rem;border-left:1px solid var(--border-soft)}.step-meta{color:var(--muted-2);font-size:.72rem;margin-top:.35rem}.research-report{margin-top:.4rem;padding-top:.9rem;border-top:1px dashed var(--border)}.tool-textarea{width:100%;min-height:120px;resize:vertical;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:.9rem 1rem;color:var(--text);font-size:.95rem;font-family:inherit;line-height:1.5}.tool-textarea:focus{outline:none;border-color:var(--accent-dim);box-shadow:0 0 0 3px var(--accent-glow)}.tool-row{display:flex;gap:.6rem;align-items:center;margin-top:.8rem}.btn-primary{background:var(--accent);color:#06281a;font-weight:700;border:none;border-radius:10px;padding:.6rem 1.2rem;font-size:.9rem}.btn-primary:disabled{opacity:.5;cursor:wait}.btn-ghost{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.6rem 1rem;font-size:.9rem}.verdict-card{border:1px solid var(--border);border-radius:14px;padding:1.2rem;margin:1.3rem 0;background:var(--panel)}.verdict-head{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.verdict-badge{font-weight:700;font-size:1.05rem;padding:.25rem .7rem;border-radius:8px;border:1px solid var(--border)}.verdict-badge.good{color:var(--accent);border-color:var(--accent-dim);background:var(--accent-glow)}.verdict-badge.warn{color:var(--warn);border-color:var(--warn)}.verdict-badge.bad{color:var(--danger);border-color:var(--danger)}.meter-row{display:flex;align-items:center;gap:.7rem;margin-top:.9rem;font-size:.82rem;color:var(--muted)}.meter{flex:1 1;height:7px;border-radius:4px;background:var(--panel-2);overflow:hidden}.meter>span{display:block;height:100%;background:var(--accent)}.signal-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.9rem}.signal{font-size:.76rem;color:var(--warn);border:1px solid var(--warn);border-radius:999px;padding:.15rem .6rem}.claim{font-size:.87rem;padding:.4rem 0;border-bottom:1px solid var(--border-soft);display:flex;gap:.5rem;align-items:baseline}.fact-list{margin-top:1rem;display:flex;flex-direction:column}.fact-row{display:flex;align-items:flex-start;gap:.6rem;padding:.7rem .2rem;border-bottom:1px solid var(--border-soft)}.fact-row .txt{flex:1 1}.fact-row .when{color:var(--muted-2);font-size:.74rem}.fact-row .del{background:none;border:none;color:var(--muted-2);display:grid;place-items:center}.fact-row .del:hover{color:var(--danger)}.empty-note{color:var(--muted-2);font-size:.9rem;padding:1.5rem 0;text-align:center}.page-head{padding:1.75rem 0 .5rem}.page-head h1{font-size:1.5rem;margin-bottom:.35rem}.page-head p{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:.85rem;gap:.85rem;margin:1.3rem 0}.stat{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1.1rem}.stat .value{font-size:1.7rem;font-weight:700;color:var(--accent)}.stat .label{color:var(--muted);font-size:.8rem;margin-top:.25rem}.model-block{margin-bottom:1.5rem}.model-block h3{margin:1rem 0 .6rem;font-size:1.05rem}.model-block h3 span{color:var(--muted);font-weight:400;font-size:.9rem}table{width:100%;border-collapse:collapse;font-size:.9rem}td,th{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--border-soft)}th{color:var(--muted-2);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.serving{color:var(--accent)}.join-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1.2rem;margin:1.5rem 0 3rem}.join-card code{background:var(--panel-2);padding:.65rem .85rem;border-radius:9px;display:block;margin-top:.7rem;font-size:.85rem;color:var(--accent);overflow-x:auto}@media (max-width:720px){.sidebar{position:fixed;z-index:30;transform:translateX(-100%);transition:transform .2s}.sidebar.open{transform:none}.menu-btn{display:inline-grid}}.menu-btn{display:none;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--panel-2);border:1px solid var(--border);color:var(--text)}