:root{--bg: #ffffff;--text: #000000;--hint: #999999;--link: #2481cc;--button: #2481cc;--button-text: #ffffff;--secondary-bg: #f1f1f1;--up: #2fa360;--down: #e5484d;--radius: 12px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}.app{padding:0 16px calc(104px + env(safe-area-inset-bottom));max-width:620px;margin:0 auto}h1{font-size:20px;margin:20px 0 4px}.sub{color:var(--hint);font-size:13px;margin:0 0 16px}.card{background:var(--secondary-bg);border-radius:var(--radius);padding:14px;margin-bottom:10px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.ticker{font-weight:600;font-size:16px}.muted{color:var(--hint);font-size:13px}.price{font-variant-numeric:tabular-nums;font-weight:600}.up{color:var(--up)}.down{color:var(--down)}.thesis{margin-top:8px;font-size:13px;color:var(--hint);font-style:italic}.chart-head{margin-top:18px}.chart-name{font-weight:700;font-size:19px}.chart-ticker{color:var(--hint);font-size:17px;font-weight:600}.chart-price{font-size:34px;font-weight:700;margin:4px 0 6px;font-variant-numeric:tabular-nums}.chart-change{display:flex;align-items:center;gap:8px;font-size:15px;margin-bottom:14px}.change-chip{padding:2px 10px;border-radius:999px;font-weight:600;font-size:14px}.chip-up{background:color-mix(in srgb,var(--up) 14%,transparent);color:var(--up)}.chip-down{background:color-mix(in srgb,var(--down) 14%,transparent);color:var(--down)}.chart-wrap{user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.chart-readout{min-height:20px;font-size:13.5px;margin-top:4px;font-variant-numeric:tabular-nums;opacity:.65;transition:opacity .15s ease}.chart-readout.on{opacity:1}.chart-dates{display:flex;justify-content:space-between;color:var(--hint);font-size:13px;margin:8px 0 14px}.segmented{display:flex;background:var(--secondary-bg);border-radius:999px;padding:4px;gap:2px;margin-bottom:18px}.segmented button{flex:1;background:none;color:var(--text);border-radius:999px;padding:9px 0;font-size:14.5px}.segmented button.active{background:color-mix(in srgb,var(--hint) 28%,var(--bg));font-weight:700}.review-card{display:block;width:100%;text-align:left;background:var(--secondary-bg);color:var(--text);border-radius:var(--radius);padding:14px;margin-bottom:10px;font:inherit}button.review-card:active{opacity:.75}.review-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}.review-date{display:inline-flex;align-items:center;gap:5px;color:var(--hint);font-size:12.5px;margin-right:auto}.mood-chip{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px}.mood-bullish{background:color-mix(in srgb,var(--up) 14%,transparent);color:var(--up)}.mood-bearish{background:color-mix(in srgb,var(--down) 14%,transparent);color:var(--down)}.mood-mixed{background:color-mix(in srgb,var(--hint) 18%,transparent);color:var(--hint)}.score-badge{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--button) 15%,transparent);color:var(--link)}.review-headline{display:block;font-weight:650;font-size:15.5px;line-height:1.35}.review-points{margin-top:8px;font-size:13.5px;color:var(--hint);display:flex;flex-direction:column;gap:3px}.review-point{display:block;padding-left:15px;position:relative;line-height:1.4}.review-point:before{content:"•";position:absolute;left:3px}.sig-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.sig-chip{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--bg)}.sig-up{color:var(--up)}.sig-down{color:var(--down)}.sig-flat{color:var(--hint)}.review-open-hint{display:block;margin-top:10px;font-size:12px;color:var(--link)}.md-rule{border:0;border-top:1px solid color-mix(in srgb,var(--hint) 28%,transparent);margin:12px 0}.level-card{border-radius:18px;padding:15px 16px;margin-bottom:14px;color:#fff;background:linear-gradient(135deg,var(--t1),var(--t2));box-shadow:0 8px 22px color-mix(in srgb,var(--t1) 28%,transparent);--t1: #6b7280;--t2: #4b5563}.tier-rookie{--t1: #59a96a;--t2: #2f7d4f}.tier-trader{--t1: #4b8fe0;--t2: #2b5fa8}.tier-strategist{--t1: #e0762f;--t2: #b0431f}.tier-oracle{--t1: #a855f7;--t2: #6d28d9}.level-head{display:flex;align-items:center;gap:11px;margin-bottom:12px}.level-badge{width:40px;height:40px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;flex-shrink:0}.level-title{flex:1;min-width:0;display:flex;flex-direction:column}.level-name{font-size:19px;font-weight:700;line-height:1.2}.level-sub{font-size:12.5px;color:#ffffffc7}.level-points{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:3px}.level-points-unit{font-size:12px;font-weight:600;color:#ffffffbf}.level-bar{height:7px;border-radius:4px;background:#ffffff40;overflow:hidden}.level-bar-fill{height:100%;border-radius:4px;background:#fff;transition:width .6s cubic-bezier(.3,.9,.35,1)}.level-foot{display:flex;justify-content:space-between;margin-top:7px;font-size:12.5px;color:#ffffffd1}.level-foot .muted{color:#fff9}.alloc{display:flex;flex-direction:column;gap:13px}.alloc-row{display:flex;align-items:center;gap:11px}.alloc-body{flex:1;min-width:0}.alloc-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:5px}.alloc-name{font-size:14.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alloc-weight{font-weight:700;font-variant-numeric:tabular-nums;flex-shrink:0}.alloc-bar{height:8px;border-radius:4px;background:color-mix(in srgb,var(--hint) 18%,transparent);overflow:hidden}.alloc-bar-fill{height:100%;border-radius:4px;transition:width .5s cubic-bezier(.3,.9,.35,1)}.alloc-sub{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-top:4px}.toggle-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--secondary-bg);color:var(--text);border-radius:var(--radius);padding:13px 14px;margin-top:6px;font:inherit}.toggle-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.toggle-title{font-weight:600;font-size:15px}.toggle-sub{font-size:12.5px;color:var(--hint);line-height:1.35}.switch{width:46px;height:28px;border-radius:999px;background:color-mix(in srgb,var(--hint) 34%,transparent);flex-shrink:0;padding:3px;transition:background .2s ease}.switch.on{background:var(--button)}.switch-knob{display:block;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s cubic-bezier(.3,.9,.35,1)}.switch.on .switch-knob{transform:translate(18px)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.stat-tile{background:var(--secondary-bg);border-radius:var(--radius);padding:11px 6px;text-align:center}.stat-num{display:block;font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}.stat-cap{display:block;font-size:11px;color:var(--hint);text-transform:uppercase;letter-spacing:.3px;margin-top:2px}.admin-row{display:flex;align-items:center;gap:10px;padding:11px 0}.admin-row+.admin-row{border-top:1px solid var(--bg)}.hidden-chip{margin-left:6px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--hint) 22%,transparent);color:var(--hint);vertical-align:middle}button.board-row{width:100%;background:none;color:inherit;text-align:left;font:inherit;border-radius:0}button.board-open:active{opacity:.65}.board-row{display:flex;align-items:center;gap:12px;padding:11px 0}.board-row+.board-row{border-top:1px solid var(--bg)}.board-you{background:color-mix(in srgb,var(--button) 9%,transparent);border-radius:10px;padding-left:8px;padding-right:8px;margin:0 -8px}.board-rank{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;background:var(--bg);color:var(--hint)}.rank-1{background:#f5c518;color:#4a3a00}.rank-2{background:#c8ccd2;color:#3d4147}.rank-3{background:#cd8b53;color:#3f2611}.you-chip{margin-left:6px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:1px 6px;border-radius:999px;background:var(--button);color:var(--button-text);vertical-align:middle}.score-muted{background:color-mix(in srgb,var(--hint) 16%,transparent);color:var(--hint)}.score-note{font-size:10.5px;font-weight:600;opacity:.9}.points-banner{display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,color-mix(in srgb,var(--button) 16%,transparent),color-mix(in srgb,var(--button) 7%,transparent));color:var(--link);font-size:14px;font-weight:600;border-radius:var(--radius);padding:13px 14px;margin-bottom:14px}.points-value{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}.md-p{margin:0 0 10px;line-height:1.5}.md-p:last-child,.md-list:last-child{margin-bottom:0}.md-list{margin:0 0 10px;padding-left:20px;display:flex;flex-direction:column;gap:4px;line-height:1.45}.md-list li::marker{color:var(--hint)}.md-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--bg);padding:1px 5px;border-radius:5px}.md-h{font-weight:700;line-height:1.3;margin:16px 0 8px}.md-h:first-child{margin-top:0}.md-h1{font-size:19px}.md-h2{font-size:16.5px}.md-h3{font-size:14.5px;color:var(--hint);text-transform:uppercase;letter-spacing:.4px}.md-quote{margin:0 0 10px;padding:2px 0 2px 12px;border-left:3px solid color-mix(in srgb,var(--button) 55%,transparent);color:var(--hint);font-style:italic;line-height:1.45}.c-good{color:var(--up)}.c-bad{color:var(--down)}.c-warn{color:#d18f1e}.c-muted{color:var(--hint)}.c-accent{color:var(--link)}.md-table-wrap{overflow-x:auto;margin:0 0 12px;-webkit-overflow-scrolling:touch}.md-table{width:100%;border-collapse:collapse;font-size:13.5px}.md-table th:not(:last-child),.md-table td:not(:last-child){white-space:nowrap}.md-table td:last-child{line-height:1.35;color:var(--hint)}.md-table th{text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.3px;color:var(--hint);padding:0 12px 7px 0;border-bottom:1px solid color-mix(in srgb,var(--hint) 25%,transparent)}.md-table td{padding:8px 12px 8px 0;border-bottom:1px solid color-mix(in srgb,var(--hint) 12%,transparent);font-variant-numeric:tabular-nums}.md-table tr:last-child td{border-bottom:0}.md-table th:last-child,.md-table td:last-child{padding-right:0;text-align:right}.md-callout{border-radius:var(--radius);padding:12px 14px;margin:0 0 12px;border-left:3px solid var(--cl);background:color-mix(in srgb,var(--cl) 10%,transparent);--cl: var(--link)}.md-callout-good{--cl: var(--up)}.md-callout-bad{--cl: var(--down)}.md-callout-warn{--cl: #d18f1e}.md-callout-tip{--cl: #8b5cf6}.md-callout-title{font-weight:700;font-size:14px;margin-bottom:5px;color:var(--cl)}.md-callout .md-p:last-child{margin-bottom:0}.md-meter{margin:0 0 12px}.md-meter-top{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px;margin-bottom:5px}.md-meter-num{font-weight:700;font-variant-numeric:tabular-nums}.md-bar{height:8px;border-radius:4px;background:color-mix(in srgb,var(--hint) 20%,transparent);overflow:hidden}.md-bar-fill{height:100%;border-radius:4px;transition:width .5s cubic-bezier(.3,.9,.35,1)}.md-ring-row{display:flex;align-items:center;gap:12px;margin:0 0 12px}.md-ring{width:64px;height:64px;flex-shrink:0;transform:rotate(-90deg)}.md-ring-track{fill:none;stroke:color-mix(in srgb,var(--hint) 20%,transparent);stroke-width:6}.md-ring-value{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dasharray .6s cubic-bezier(.3,.9,.35,1)}.md-ring-text{fill:var(--text);font-size:19px;font-weight:700;transform:rotate(90deg);transform-origin:32px 32px}.md-ring-label{font-size:14px;line-height:1.4}.md-stat{display:flex;align-items:baseline;gap:8px;padding:9px 0;border-bottom:1px solid color-mix(in srgb,var(--hint) 12%,transparent)}.md-stat-label{color:var(--hint);font-size:13.5px;flex:1;min-width:0}.md-stat-value{font-weight:600;font-variant-numeric:tabular-nums}.md-stat-delta{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.md-bar-fill,.md-ring-value{transition:none}}.heatmap{position:relative;height:190px;border-radius:16px;overflow:hidden;background:var(--bg);margin-bottom:10px}.heat-tile{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0;color:#fff;border:1.5px solid var(--bg);border-radius:8px;overflow:hidden}.heat-tile:active{opacity:.75}.heat-ticker{font-weight:700;letter-spacing:.2px}.heat-pct{font-size:11.5px;font-weight:600;opacity:.9}.bank-card{border-radius:20px;padding:18px;color:#fff;background:linear-gradient(135deg,var(--button),color-mix(in srgb,var(--button) 55%,#101a2e));box-shadow:0 10px 26px color-mix(in srgb,var(--button) 30%,transparent);margin-bottom:10px}.bank-card-head{display:flex;align-items:center;gap:11px}.on-card-muted{color:#ffffffb8;font-size:13px}.bank-balance{font-size:32px;font-weight:700;margin:2px 0 16px;font-variant-numeric:tabular-nums}.card-actions{display:flex;gap:10px}.card-actions button{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;background:#ffffff2e;color:#fff;border-radius:12px;padding:11px 0;font-size:14.5px;font-weight:600}.card-actions button:active{background:#ffffff47}.tx-row{display:flex;align-items:center;gap:12px;padding:10px 0}.tx-icon{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tx-icon.up{background:color-mix(in srgb,var(--up) 14%,transparent)}.tx-icon.down{background:color-mix(in srgb,var(--down) 14%,transparent)}.list-card{padding:10px 16px 6px}.list-header{padding:6px 0 8px}.section-title{font-weight:700;font-size:17px}.total-chip{background:color-mix(in srgb,var(--link) 12%,transparent);color:var(--link);font-size:12px;font-weight:700;letter-spacing:.2px;padding:3px 10px;border-radius:8px;font-variant-numeric:tabular-nums}.asset-row{display:flex;align-items:center;gap:13px;width:100%;padding:12px 0;background:none;color:inherit;text-align:left;border-radius:0;font:inherit}.asset-row:active{opacity:.65}.asset-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.asset-name{font-weight:600;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-sub{color:var(--hint);font-size:13.5px}.asset-amounts{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.asset-value{font-weight:600;font-variant-numeric:tabular-nums}.asset-pnl{font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}.ellipsis{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logo-fallback{display:flex;align-items:center;justify-content:center;background:var(--button);color:var(--button-text);font-weight:700;letter-spacing:.3px;flex-shrink:0}.field-hint{margin:6px 0 0;font-size:12.5px;line-height:1.4;color:var(--hint)}.field-warn{margin-top:8px;padding:10px 12px;border-radius:var(--radius);border-left:3px solid #d18f1e;background:color-mix(in srgb,#d18f1e 12%,transparent);font-size:12.5px;line-height:1.45}.search-field{display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:var(--radius);background:var(--secondary-bg);color:var(--hint)}.search-field input{background:none;padding:12px 0;border:0}.search-field input:focus{outline:none}.picker{margin-top:6px;max-height:46vh;overflow-y:auto}.picker-row{display:flex;align-items:center;gap:11px;width:100%;padding:9px 2px;background:none;color:var(--text);border-radius:0;text-align:left}.picker-row+.picker-row{border-top:1px solid var(--bg)}.picker-row:active{opacity:.6}.picker-text{flex:1;min-width:0}.picker-text .ticker{display:block;font-size:15px}.plan-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--bg);color:var(--hint)}.plan-badge.pro{background:var(--button);color:var(--button-text)}.usage-row{display:flex;justify-content:space-between;font-size:14px;margin-bottom:4px}.bar{height:6px;border-radius:3px;background:var(--bg);overflow:hidden}.bar-fill{height:100%;background:var(--button);border-radius:3px;transition:width .3s ease}.price-big{font-size:32px;font-weight:700;white-space:nowrap}.pay-amount{font-variant-numeric:tabular-nums;font-size:17px}.mono-box{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;background:var(--bg);padding:12px;border-radius:var(--radius);word-break:break-all;-webkit-user-select:all;user-select:all}.waiting-row{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px}.upgrade-banner{display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--up) 14%,transparent);color:var(--up);font-weight:600}button{font:inherit;border:0;border-radius:var(--radius);padding:12px 16px;background:var(--button);color:var(--button-text);cursor:pointer}button:disabled{opacity:.5;cursor:default}button.secondary{background:var(--secondary-bg);color:var(--text)}button.danger{background:transparent;color:var(--down);padding:6px 0}input,textarea,select{font:inherit;width:100%;padding:12px;border-radius:var(--radius);border:1px solid transparent;background:var(--secondary-bg);color:var(--text)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--button)}label{display:block;font-size:13px;color:var(--hint);margin:14px 0 6px}.stack{display:flex;flex-direction:column;gap:10px}.tabs{position:fixed;left:50%;transform:translate(-50%);bottom:calc(14px + env(safe-area-inset-bottom));width:min(400px,calc(100% - 32px));display:flex;gap:4px;padding:7px;border-radius:28px;background:color-mix(in srgb,var(--bg) 48%,transparent);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid color-mix(in srgb,var(--text) 10%,transparent);box-shadow:0 10px 30px #00000029,inset 0 1px color-mix(in srgb,#fff 30%,transparent)}.tabs button{flex:1;background:none;color:var(--hint);border-radius:21px;padding:12px 0;line-height:0;position:relative;z-index:1;transition:color .2s ease}.tabs button.active{color:var(--link)}.tab-indicator{position:absolute;top:7px;bottom:7px;left:7px;border-radius:21px;background:color-mix(in srgb,var(--button) 16%,transparent);transition:transform .3s cubic-bezier(.3,.9,.35,1);pointer-events:none}.tabs .icon{display:block;margin:0 auto;transition:transform .2s ease}.tabs button.active .icon{transform:scale(1.1)}.screen{animation:screen-in .22s ease}@keyframes screen-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.tab-indicator,.tabs .icon{transition:none}.screen{animation:none}}.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px}.error{background:color-mix(in srgb,var(--down) 12%,transparent);color:var(--down);padding:12px;border-radius:var(--radius);margin:12px 0;font-size:14px}.empty{text-align:center;color:var(--hint);padding:48px 16px}.bubble{padding:10px 14px;border-radius:var(--radius);max-width:85%;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user{background:var(--button);color:var(--button-text);align-self:flex-end}.bubble.assistant{background:var(--secondary-bg);align-self:stretch;max-width:100%;white-space:normal;padding:12px 14px}.composer-wrap{position:fixed;left:0;right:0;bottom:calc(86px + env(safe-area-inset-bottom));background:var(--bg);max-width:620px;margin:0 auto;padding-top:6px}.tag-row{display:flex;gap:7px;overflow-x:auto;padding:0 16px 7px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tag-row::-webkit-scrollbar{display:none}.tag-chip{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;padding:6px 12px;border-radius:999px;background:var(--secondary-bg);color:var(--link);font-size:13px;font-weight:600}.tag-chip:active{opacity:.65}.composer{display:flex;align-items:flex-start;gap:8px;padding:0 16px 8px}.composer input{margin-bottom:5px}.reminder-row{display:flex;align-items:center;gap:11px;padding:10px 0}.reminder-row+.reminder-row{border-top:1px solid var(--bg)}.spinner{width:18px;height:18px;border:2px solid var(--hint);border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.skeleton{background:color-mix(in srgb,var(--hint) 16%,transparent);border-radius:7px;position:relative;overflow:hidden}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--hint) 14%,transparent),transparent);animation:shimmer 1.3s infinite}@keyframes shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.skeleton:after{animation:none}}.skeleton-line{height:14px}.skeleton-line.thin{height:11px}.skeleton-logo{width:36px;height:36px;border-radius:50%;flex-shrink:0}.skeleton-stack{display:flex;flex-direction:column;gap:7px}.bubble-skeleton{height:38px;border-radius:var(--radius)}
