:root{--bg: #f6f8fb;--surface: #ffffff;--surface-2: #eef2f7;--text: #1a2332;--text-dim: #5b6b7e;--border: #dbe3ec;--accent: #3a7bd5;--accent-soft: #e6efff;--danger: #d6453d;--pos: #1f8a4c;--neg: #d6453d;--shadow: 0 1px 3px rgba(20, 30, 50, .06), 0 8px 24px rgba(20, 30, 50, .06);--radius: 12px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.qookie-app{display:flex;flex-direction:column;min-height:100vh}.qookie-header{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 20px;position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px}.qookie-brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:18px;color:var(--accent)}.qookie-header-right{display:flex;align-items:center;gap:8px}.lock-btn{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:6px 12px;border-radius:8px;font-size:13px;font-weight:500;transition:border-color .15s ease,color .15s ease}.lock-btn:hover{border-color:var(--accent);color:var(--accent)}.auth-loading{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.auth-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.auth-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px 28px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:stretch;gap:12px;text-align:center}.auth-logo{width:180px;height:180px;object-fit:contain;margin:0 auto 8px}.auth-sub{margin:0 0 8px;color:var(--text-dim);font-size:13px}.auth-card input{padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font:inherit;outline:none}.auth-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth-card button{background:var(--accent);color:#fff;border:none;padding:10px 16px;border-radius:8px;font-weight:600}.auth-card button:disabled{background:#a8b5c5;cursor:not-allowed}.auth-hint{color:var(--text-dim);font-size:12px;margin:6px 0 0}.qookie-logo{width:36px;height:36px;border-radius:8px;object-fit:contain}.qookie-main{flex:1;padding:24px;max-width:1400px;width:100%;margin:0 auto}.landing-title{margin:0 0 4px;font-size:28px}.landing-sub{margin:0 0 24px;color:var(--text-dim)}.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.app-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;box-shadow:var(--shadow)}.app-card:hover{transform:translateY(-2px);border-color:var(--accent)}.app-card-icon{width:56px;height:56px;border-radius:12px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;overflow:hidden}.app-card-icon img{width:100%;height:100%;object-fit:contain}.app-card-name{font-weight:600;font-size:16px}.app-card-desc{color:var(--text-dim);font-size:13px;line-height:1.4}.market-layout{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start}@media (max-width: 900px){.market-layout{grid-template-columns:1fr}}.market-main{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);min-height:60vh}.market-header h1{margin:0 0 4px;font-size:22px}.market-sub{color:var(--text-dim);font-size:13px;margin-bottom:16px}.market-sub .dot{margin:0 6px}.prompt-form{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.prompt-form textarea{width:100%;resize:vertical;padding:12px;border-radius:8px;border:1px solid var(--border);background:var(--surface);font:inherit}.prompt-form textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}.prompt-actions{display:flex;align-items:center;gap:12px}.prompt-actions button{background:var(--accent);color:#fff;border:none;padding:8px 18px;border-radius:8px;font-weight:500}.prompt-actions button:disabled{background:#a8b5c5;cursor:not-allowed}.prompt-actions .hint{color:var(--text-dim);font-size:12px}.response{margin-top:8px}.response-title{font-size:22px;font-weight:700;color:var(--text);margin:8px 0 16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.section-btn-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.section-btn{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 14px;font-weight:500;font-size:13px;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease}.section-btn:hover{border-color:var(--accent);color:var(--accent)}.section-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.section-content{padding-top:4px}.markdown{line-height:1.6}.markdown h1,.markdown h2,.markdown h3{margin-top:1.2em}.markdown table{border-collapse:collapse;width:100%;margin:1em 0;font-size:14px}.markdown th,.markdown td{border:1px solid var(--border);padding:8px 10px;text-align:left}.markdown th{background:var(--surface-2);font-weight:600}.markdown tr:nth-child(2n) td{background:#fafbfd}.markdown code{background:var(--surface-2);padding:1px 6px;border-radius:4px;font-size:.9em}.markdown pre{background:var(--surface-2);padding:12px;border-radius:8px;overflow-x:auto}.prior-replies{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;margin-bottom:12px;font-size:13px}.prior-replies summary{cursor:pointer;color:var(--text-dim)}.prior-reply{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}.charts-tab{display:flex;flex-direction:column;gap:14px}.charts-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.charts-controls input{margin-left:8px;padding:6px 10px;border:1px solid var(--border);border-radius:6px}.charts-detected{color:var(--text-dim);font-size:13px}.profile{display:flex;align-items:center;gap:12px;background:var(--surface-2);padding:10px 14px;border-radius:8px}.profile img{width:40px;height:40px;object-fit:contain}.profile-name{font-weight:600}.profile-meta{color:var(--text-dim);font-size:13px}.quote-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;background:var(--surface-2);padding:12px;border-radius:8px}.quote-row>div{display:flex;flex-direction:column}.quote-row .k{color:var(--text-dim);font-size:12px}.quote-row .v{font-weight:600}.quote-row .v.pos{color:var(--pos)}.quote-row .v.neg{color:var(--neg)}.chart-wrap{height:360px}.history-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow);position:sticky;top:76px;max-height:calc(100vh - 100px);overflow-y:auto}.history-top{margin-bottom:8px}.new-btn{width:100%;background:var(--accent);color:#fff;border:none;padding:8px 12px;border-radius:8px;font-weight:500}.history-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:12px 4px 6px}.history-list{list-style:none;padding:0;margin:0}.history-item{position:relative;padding:10px 28px 10px 10px;border-radius:8px;cursor:pointer;transition:background .1s ease}.history-item:hover{background:var(--surface-2)}.history-item.active{background:var(--accent-soft)}.history-title{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-meta{display:flex;justify-content:space-between;color:var(--text-dim);font-size:11px;margin-top:2px}.history-delete{position:absolute;right:6px;top:6px;background:transparent;border:none;color:var(--text-dim);font-size:18px;line-height:1;padding:2px 6px;border-radius:4px;opacity:0;transition:opacity .1s ease}.history-item:hover .history-delete{opacity:1}.history-delete:hover{background:var(--surface-2);color:var(--danger)}.error{background:#fdeceb;color:var(--danger);border:1px solid #f5c2bf;padding:10px 12px;border-radius:8px;margin:8px 0}.empty{color:var(--text-dim);padding:20px;text-align:center}.empty.small{padding:12px;font-size:13px}.status-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;font-size:11px;font-weight:700;flex-shrink:0}.status-done{background:#d8f3e1;color:var(--pos)}.status-error{background:#fdeceb;color:var(--danger)}.status-pending{background:transparent}.spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:qookie-spin .8s linear infinite}.spinner.large{width:22px;height:22px;border-width:3px}@keyframes qookie-spin{to{transform:rotate(360deg)}}.history-row{display:flex;align-items:center;gap:8px}.history-row .history-title{flex:1;min-width:0}.status-pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.status-pill.pending{background:var(--accent-soft);color:var(--accent)}.status-pill.error{background:#fdeceb;color:var(--danger)}.pending{border:1px dashed var(--border);border-radius:var(--radius);padding:18px;background:#fbfcfe;margin-top:8px}.pending-header{display:flex;align-items:center;gap:14px}.pending-title{font-weight:600;font-size:15px}.pending-activity{color:var(--text-dim);font-size:13px;margin-top:2px}.pending-partial{margin-top:14px;border-top:1px solid var(--border);padding-top:10px}.pending-partial summary{cursor:pointer;color:var(--text-dim);font-size:13px;margin-bottom:6px}.pending-partial pre{white-space:pre-wrap;font-family:inherit;font-size:13px;color:var(--text);background:transparent;margin:0;max-height:320px;overflow-y:auto}.report-section{margin-bottom:8px}.report-headline{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border)}.report-ticker{font-size:22px;font-weight:700;color:var(--text);letter-spacing:.02em}.report-market{font-size:13px;color:var(--text-dim);background:var(--surface-2);padding:2px 8px;border-radius:6px}.report-asset-type{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.pill-pos{background:#d8f3e1;color:var(--pos)}.pill-neg{background:#fdeceb;color:var(--neg)}.pill-neutral{background:var(--surface-2);color:var(--text-dim)}.kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:10px 0 18px}.kv{background:var(--surface-2);padding:10px 12px;border-radius:8px;display:flex;flex-direction:column;gap:2px}.kv .k{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.kv .v{font-weight:600;font-size:15px;color:var(--text)}.kv .v.pos{color:var(--pos)}.kv .v.neg{color:var(--neg)}.catalysts{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width: 700px){.catalysts{grid-template-columns:1fr}}.catalyst-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border)}.catalyst-title.pos{color:var(--pos);border-bottom-color:#c5e9d2}.catalyst-title.neg{color:var(--neg);border-bottom-color:#f5c2bf}.bullets{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.55}.bullets li{color:var(--text)}.news-list{display:flex;flex-direction:column;gap:10px}.news-card{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.news-headline{font-weight:600;font-size:14px;color:var(--text);margin-bottom:6px;line-height:1.5}.news-headline a{color:var(--accent);text-decoration:none}.news-headline a:hover{text-decoration:underline}.news-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--text-dim)}.news-source{font-weight:500}.report-section h3{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:18px 0 8px}.report-section h3:first-child{margin-top:0}.disclaimer{margin-top:18px;padding:10px 12px;background:var(--surface-2);border-radius:8px;font-size:12px;color:var(--text-dim);line-height:1.5;font-style:italic}.raw-json{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:12px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;color:var(--text);overflow-x:auto;max-height:600px;margin:0}.prior-reply-raw{background:var(--surface-2);padding:10px;border-radius:6px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;white-space:pre-wrap;margin:8px 0;max-height:240px;overflow-y:auto}.turns{display:flex;flex-direction:column;gap:18px;margin-bottom:20px}.turn{border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;background:var(--surface)}.turn.latest{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.turn-user{background:var(--accent-soft);border-radius:10px;padding:10px 14px;margin-bottom:14px}.turn-user-label{display:inline-block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:600}.turn-header-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.turn-ts{font-size:11px;color:var(--text-dim);font-family:SF Mono,Menlo,Consolas,monospace;letter-spacing:.02em}.turn-user-text{color:var(--text);white-space:pre-wrap;font-size:14px;line-height:1.5}.turn-assistant-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.turn-assistant-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}.turn-toggle{background:transparent;border:1px solid var(--border);color:var(--text-dim);padding:4px 10px;border-radius:6px;font-size:12px}.turn-toggle:hover{border-color:var(--accent);color:var(--accent)}.report-compact{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.report-compact-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.report-ticker.compact{font-size:16px}.report-compact-prices{margin-top:8px;display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--text)}.report-compact-prices .k{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-right:4px}.report-compact-prices .pos{color:var(--pos);font-weight:600}.report-compact-prices .neg{color:var(--neg);font-weight:600}.prompt-form.bottom{margin-top:8px;margin-bottom:0;border-top:1px solid var(--border);padding-top:16px}.asset-summary-list{display:flex;flex-direction:column;gap:8px;margin:10px 0 18px}.asset-summary-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}.asset-summary-meta{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.asset-summary-prices{margin-left:auto;display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--text)}.asset-summary-prices .k{color:var(--text-dim);margin-right:3px}.asset-summary-prices .pos{color:var(--pos);font-weight:600}.asset-summary-prices .neg{color:var(--neg);font-weight:600}.report-compact-meta{font-size:12px;color:var(--text-dim);margin-bottom:8px;font-style:italic}.report-compact-assets{display:flex;flex-direction:column;gap:6px}.report-compact-asset{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px}.links-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.link-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;text-decoration:none;color:var(--text);box-shadow:var(--shadow);transition:transform .15s ease,border-color .15s ease}.link-card:hover{transform:translateY(-2px);border-color:var(--accent)}.link-card-label{font-weight:600;font-size:16px;margin-bottom:4px;color:var(--accent)}.link-card-desc{color:var(--text-dim);font-size:13px;margin-bottom:10px;line-height:1.4}.link-card-host{font-size:11px;color:var(--text-dim);font-family:SF Mono,Menlo,Consolas,monospace;letter-spacing:.04em}.report-section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:20px 0 8px}.usage-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;font-size:14px;margin-bottom:8px}.usage-table th,.usage-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border)}.usage-table tr:last-child th,.usage-table tr:last-child td{border-bottom:none}.usage-table th{background:var(--surface-2);font-weight:500;color:var(--text-dim);width:220px}.usage-table td{font-weight:600}.usage-note{background:#fff8e1;border:1px solid #f0d97c;color:#6e5b00;padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.5;margin:8px 0 16px}.usage-note a{color:var(--accent);text-decoration:underline}.usage-footer{display:flex;align-items:center;gap:12px;margin-top:16px}.raw-usage{margin-top:16px}.raw-usage summary{cursor:pointer;color:var(--text-dim);font-size:13px;margin-bottom:6px}.portfolio{padding-bottom:32px}.portfolio-buttons{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:24px}.position-btn{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 12px;text-align:left;display:flex;flex-direction:column;gap:2px;cursor:pointer;transition:border-color .15s ease,transform .1s ease}.position-btn:hover{transform:translateY(-1px);border-color:var(--accent)}.position-btn.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.position-btn .position-ticker{font-weight:700;font-size:14px;letter-spacing:.02em}.position-btn .position-value{font-size:13px;color:var(--text);font-weight:500}.position-btn .position-change{font-size:11px;text-transform:uppercase;letter-spacing:.05em}.position-btn.trend-pos .position-change{color:var(--pos)}.position-btn.trend-neg .position-change{color:var(--neg)}.position-btn.trend-flat .position-change{color:var(--text-dim)}.position-btn.trend-pos{border-left:3px solid var(--pos)}.position-btn.trend-neg{border-left:3px solid var(--neg)}.position-btn.trend-flat{border-left:3px solid var(--text-dim)}.portfolio-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:24px;box-shadow:var(--shadow)}.chart-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:10px}.chart-title{font-weight:600;font-size:15px}.chart-title .muted{color:var(--text-dim);font-weight:400;font-size:12px}.chart-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;overflow:hidden}.seg-btn{background:transparent;border:none;padding:5px 10px;font-size:12px;color:var(--text-dim);cursor:pointer}.seg-btn:hover{color:var(--text)}.seg-btn.active{background:var(--accent);color:#fff}.seg-btn.primary{background:var(--accent);color:#fff;border-radius:8px;border:none;padding:5px 12px}.seg-btn.primary:disabled{background:#b8c6da;cursor:not-allowed}.chart-stage{position:relative;width:100%;height:380px}.chart-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.chart-overlay.drawing{pointer-events:auto;cursor:crosshair}.pies-wrap{display:grid;grid-template-columns:320px 1fr;gap:20px;margin-bottom:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}@media (max-width: 800px){.pies-wrap{grid-template-columns:1fr}}.pies-chart{height:240px}.pies-list{display:flex;flex-direction:column;gap:6px;font-size:13px}.pie-row{display:grid;grid-template-columns:14px 1fr auto auto;gap:10px;align-items:center;padding:6px 8px;border-radius:6px}.pie-row:nth-child(odd){background:var(--surface-2)}.pie-swatch{width:12px;height:12px;border-radius:3px}.pie-name{font-weight:500}.pie-value{font-weight:600;color:var(--text)}.pie-progress{color:var(--text-dim);font-size:12px}.positions-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;font-size:14px;box-shadow:var(--shadow)}.positions-table th,.positions-table td{padding:10px 14px;border-bottom:1px solid var(--border);text-align:left}.positions-table thead th{background:var(--surface-2);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.positions-table tbody tr:last-child td{border-bottom:none}.positions-table tfoot th{background:var(--surface-2);font-weight:600;border-top:2px solid var(--border);border-bottom:none}.positions-table .right{text-align:right}.positions-table .pos{color:var(--pos);font-weight:600}.positions-table .neg{color:var(--neg);font-weight:600}.positions-table .muted{color:var(--text-dim);font-size:11px}.response-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin:8px 0 20px}.response-chart-meta{font-size:14px;margin-bottom:8px}.response-chart-meta .muted{color:var(--text-dim);font-weight:400}.response-chart-stage{position:relative;width:100%;height:480px}.response-chart-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;color:var(--text-dim)}.response-chart-legend .swatch{display:inline-block;width:12px;height:6px;border-radius:2px;vertical-align:middle;margin-right:5px}
