:root{color:#15131a;font-variant-numeric:tabular-nums;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--green:#0f9f73;--green-soft:#0f9f731a;--green-line:#0f9f73;--brand:#7f6aac;--brand-soft:#f0edf7;--brand-line:#c8bddf;--brand-dark:#493f65;--red:#d84d5b;--red-soft:#d84d5b1a;--blue:#4f7bd9;--blue-soft:#4f7bd91a;--orange:#d98d20;--text:#15131a;--muted:#716b7d;--border:#e4e0ea;--surface:#fff;--surface-2:#fbfafc;--shadow:0 6px 16px #2a223e12;--shadow-hover:0 10px 24px #2a223e1a;background:#f7f5fa;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scrollbar-gutter:stable;overflow-y:scroll}body{background:#f7f5fa;min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer;-webkit-font-smoothing:antialiased;text-shadow:none}.page{background:#f7f5fa;justify-content:center;min-height:100vh;display:flex}.app-shell{background:#f7f5fa;width:100%;max-width:430px;min-height:100vh;position:relative;box-shadow:0 0 0 1px #00000008}.topbar{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7f5faf2;border-bottom:1px solid #e0dbe8e6;justify-content:space-between;align-items:center;padding:18px 18px 12px;display:flex;position:sticky;top:0}.topbar>div:first-child{min-width:0}.topbar h1{letter-spacing:0;color:var(--text);flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:22px;font-weight:800;line-height:1.15;display:flex}.topbar-actions{justify-content:flex-end;align-items:center;gap:7px;min-width:0;display:flex}.user-pill{text-overflow:ellipsis;white-space:nowrap;color:#504764;background:#fff;border:1px solid #ded8e9;border-radius:999px;max-width:118px;padding:7px 9px;font-size:11px;font-weight:600;overflow:hidden}.eyebrow{color:#7a6a9f;letter-spacing:.05em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:650}.signal-badge{color:#78350f;background:#fef9c3;border:1px solid #fde047;border-radius:999px;align-items:center;padding:3px 8px;font-size:11px;font-weight:800;line-height:1;display:inline-flex}.content{padding:14px 14px 96px}.section-tabs{box-shadow:none;background:#f1eff5;border:1px solid #e7e2ee;border-radius:14px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:16px;padding:8px;display:grid;overflow:visible}.section-tabs[data-count="1"]{grid-template-columns:minmax(0,1fr)}.section-tabs[data-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.section-tabs[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.section-tabs[data-count="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}.section-tabs button{color:#746b82;letter-spacing:0;background:0 0;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:42px;padding:8px 7px;font-size:12px;font-weight:600;line-height:1.15;display:inline-flex;position:relative}.section-tabs[data-density=dense] button{flex-direction:column;gap:4px;min-height:50px;padding:7px 4px 8px}.section-tabs button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}.section-tabs button svg{color:#9a8bb8;flex:none}.section-tabs button.active{color:var(--brand-dark);background:#fff;font-weight:800;box-shadow:0 3px 9px #2a223e17}.section-tabs button:not(.active):hover{background:#faf8fd}.section-tabs button.active svg{color:var(--brand)}.section-tabs button:active{transform:translateY(1px)}.section,.section-tabs+.profile-card,.section-tabs+.empty-state{margin-top:18px}.profile-card+.support-card{margin-top:10px}.section-title{color:#302a42;align-items:center;gap:8px;margin:0 2px 10px;display:flex}.section-title h2{letter-spacing:0;margin:0;font-size:16px;line-height:1.2}.card,.hero-card,.notice,.profile-card,.support-card,.metric-panel,.holding-card,.empty-state{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.card,.profile-card,.support-card,.holding-card,.empty-state{border-left:0;transition:border-color .2s,box-shadow .2s}.card:hover,.holding-card:hover,.profile-card:hover,.support-card:hover{border-color:var(--brand-line);box-shadow:var(--shadow-hover)}.card,.hero-card{padding:16px}.hero-card{border:1px solid #e2ddeb;border-left:4px solid var(--brand-line);color:var(--text);box-shadow:var(--shadow);background:linear-gradient(135deg,#fff 0%,#fbf9ff 58%,#f0edf7 100%);border-radius:14px;margin-bottom:16px;position:relative;overflow:hidden}.hero-card:before{content:none}.hero-content{z-index:1;position:relative}.hero-label{color:var(--brand-dark);letter-spacing:.06em;text-transform:uppercase;margin:0 0 2px;font-size:11px;font-weight:600}.hero-amount{color:var(--text);letter-spacing:0;overflow-wrap:anywhere;font-size:2.25rem;font-weight:800;line-height:1.1;display:block}.hero-pnl{margin-top:4px;font-size:13px;font-weight:700}.hero-pnl.positive{color:var(--red)}.hero-pnl.negative{color:var(--blue)}.hero-stats-row{border-top:1px solid #ede8f4;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px;padding-top:14px;display:grid}.hero-stat-label,.hero-stat-value{display:block}.hero-stat-label{color:var(--muted);margin-bottom:3px;font-size:11px}.hero-stat-value{color:var(--text);font-size:15px;font-weight:800;line-height:1.2}.hero-stat-value.rate{color:var(--red)}.hero-stat-value.loss{color:var(--blue)}.investing-days-note{color:#514565;text-align:center;background:#f0edf7;border-radius:10px;margin-top:12px;padding:8px 12px;font-size:13px;font-weight:600;line-height:1.35}.investing-days-note strong{color:var(--brand-dark)}.action-brief{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:14px;margin:0 0 16px;padding:14px}.action-brief-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.action-brief-head span,.action-brief-head strong{min-width:0}.action-brief-head span{color:var(--brand-dark);align-items:center;gap:6px;font-size:12px;font-weight:800;line-height:1.3;display:inline-flex}.action-brief-head svg{color:var(--brand)}.action-brief-head strong{text-overflow:ellipsis;background:var(--brand-soft);max-width:48%;color:var(--brand-dark);white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;line-height:1;overflow:hidden}.action-brief-body{gap:10px;display:grid}.brief-focus{background:#fbfafc;border-radius:10px;min-width:0;padding:11px}.brief-focus.empty{border:1px dashed #d8d1e4}.brief-focus-title{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.brief-focus-title span{color:#9a5a00;background:#fff7d6;border-radius:999px;flex:none;padding:4px 8px;font-size:11px;font-weight:800;line-height:1}.brief-focus-title strong{min-width:0;color:var(--text);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:850;line-height:1.25;overflow:hidden}.brief-focus p{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.45}.brief-stack{gap:8px;display:grid}.brief-row{background:#fff;border:1px solid #ede8f4;border-radius:10px;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:9px 10px;display:grid}.brief-row svg{background:var(--brand-soft);width:30px;height:30px;color:var(--brand);border-radius:9px;padding:6px}.brief-row span,.brief-row strong{min-width:0;display:block}.brief-row span{color:var(--muted);font-size:11px;line-height:1.25}.brief-row strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13px;font-weight:800;line-height:1.3;overflow:hidden}.hero-row{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.hero-row strong{letter-spacing:0;margin-top:4px;font-size:clamp(24px,8vw,34px);line-height:1.05;display:block}.hero-row .align-right strong,.hero-row .align-right span{font-size:18px}.hero-stats,.split-list,.rebalance-summary,.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.split-list,.rebalance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));margin-top:0}.section>.summary-grid{margin-bottom:10px}.mini-stat,.metric-panel{background:var(--surface-2);border-radius:8px;min-width:0;padding:10px}.mini-stat span,.metric-panel span,.muted,.small,.holding-title span,.holding-card span,.account-header span,.profile-card span,.table-row span{color:var(--muted)}.mini-stat strong,.metric-panel strong{overflow-wrap:anywhere;margin-top:4px;font-size:14px;line-height:1.25;display:block}.chart-head .mini-stat{padding:8px 7px}.chart-head .mini-stat span,.chart-head .mini-stat strong,.return-cards .mini-stat span,.return-cards .mini-stat strong{white-space:nowrap}.chart-head .mini-stat strong{font-size:13px}.metric-panel{box-shadow:none;gap:4px;display:grid}.metric-panel svg{color:var(--green)}.metric-panel.deposit{border-left:3px solid #16a34a}.metric-panel.withdrawal{border-left:3px solid #9ca3af}.metric-panel.withdrawal svg{color:#9ca3af}.small{font-size:12px}.fine-print{color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.45}.positive{color:var(--red);font-weight:650}.negative{color:var(--blue);font-weight:650}.dividend-forecast-card{border:1px solid #caead9;border-left:3px solid var(--green);background:#f3fbf7;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px;padding:10px 14px;display:flex;box-shadow:0 6px 14px #0f9f7312}.dividend-forecast-card span,.dividend-forecast-card small{color:var(--green);font-size:11px;font-weight:700;line-height:1.3}.dividend-forecast-card strong{color:#111827;margin-top:3px;font-size:16px;line-height:1.25;display:block}.dividend-forecast-card small{color:var(--muted);text-align:right;font-weight:600}.align-right{text-align:right;min-width:0}.input-grid{gap:10px;display:grid}.symbol-search{gap:10px;margin-bottom:14px;display:grid}.search-input-wrap{background:#fffefe;border:1px solid #ded8e9;border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:0 10px;display:flex}.search-input-wrap:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #7f6aac1f}.search-input-wrap svg{color:var(--brand);flex:none}.search-input-wrap input{min-height:40px;box-shadow:none;background:0 0;border:0;padding:0}.search-input-wrap input:focus{box-shadow:none}.symbol-suggestions{gap:7px;display:grid}.symbol-suggestions button{text-align:left;width:100%;color:var(--text);background:#fbfaff;border:1px solid #e5dff0;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.symbol-suggestions button>div{min-width:0}.symbol-suggestions strong,.symbol-suggestions span{line-height:1.3;display:block}.symbol-suggestions strong{font-size:13px;font-weight:650}.symbol-suggestions span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.input-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.input-grid .wide{grid-column:1/-1}label{color:#40394f;gap:6px;min-width:0;font-size:12px;font-weight:600;display:grid}.label-row{justify-content:space-between;align-items:center;gap:8px;min-height:18px;display:flex}.label-actions{flex:none;align-items:center;gap:5px;display:inline-flex}.field-badge{border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700;line-height:1}.field-badge.input{background:var(--brand-soft);color:var(--brand-dark)}.field-badge.auto{color:var(--green);background:#f3fbf7}.help-button{width:22px;height:22px;color:var(--brand);background:#fff;border:1px solid #ded8e9;border-radius:999px;flex:none;place-items:center;padding:0;display:inline-grid}.help-popover{color:#504764;background:#fbf9ff;border:1px solid #ded5fb;border-radius:8px;padding:9px 10px;font-size:11px;font-weight:500;line-height:1.4}.field-hint{color:var(--muted);font-size:11px;font-weight:500;line-height:1.35;display:block}.field-hint.code-match{color:var(--red);font-weight:700}.field-hint.code-miss{color:var(--blue);font-weight:700}input,select{box-sizing:border-box;width:100%;min-width:0;max-width:100%;color:var(--text);background:#fffefe;border:1px solid #ded8e9;border-radius:8px;outline:none;min-height:42px;padding:11px 10px;font-size:16px}.input-grid>label{min-width:0}input[type=date],input[type=month]{appearance:none}input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}input[type=date]::-webkit-calendar-picker-indicator{flex:none;margin:0 0 0 4px;padding:0}input[type=month]::-webkit-calendar-picker-indicator{flex:none;margin:0 0 0 4px;padding:0}.date-field{position:relative}.date-field>input{color:#0000}.date-field>input::-webkit-datetime-edit{color:#0000}.date-overlay{pointer-events:none;color:var(--text);font-variant-numeric:tabular-nums;font-size:16px;line-height:1;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.date-overlay.empty{color:#9aa0ab}.line-chart-wrap+.input-grid{margin-top:18px}textarea{font-size:16px}.auto-input{color:#606a63;background:#f3f4f6;border-color:#e1e4e8}input:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #7f6aac1f}.toggle-row{align-items:center;gap:8px;margin-top:12px;font-size:13px;font-weight:600;display:flex}.toggle-row input{width:18px;min-height:18px;accent-color:var(--brand)}.primary-button,.segmented button,.bottom-nav button,.holding-main,.status{border:0}.primary-button{color:#fbfaff;letter-spacing:0;background:linear-gradient(135deg,#6f5e99,#8a79b4);border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:44px;margin-top:14px;font-weight:800;display:inline-flex;box-shadow:0 4px 12px #7f6aac3d}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.58;box-shadow:none}.secondary-button,.file-upload-button{width:100%;min-height:42px;color:var(--brand);background:var(--brand-soft);letter-spacing:0;border:1px solid #ddd6fe;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:10px;font-weight:600;display:inline-flex}.file-upload-button{cursor:pointer;font-size:13px}.file-upload-button input{display:none}.symbol-admin-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.import-status-card{background:#fbf9ff;border:1px solid #ded5fb;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:12px;display:flex}.import-status-card span{color:var(--muted);font-size:12px;font-weight:600}.import-status-card strong{color:var(--brand);font-size:17px}.import-status-text{background:var(--green-soft);color:var(--green);border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:12px;font-weight:600;line-height:1.45}.csv-columns{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.csv-columns span{color:#665f75;background:#f5f2fb;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:600}.no-top{margin-top:0}.primary-button:active,.secondary-button:active,.file-upload-button:active,.icon-button:active,.bottom-nav button:active{transform:translateY(1px)}.primary-button:active{box-shadow:0 2px 7px #7f6aac33}.icon-button{border:1px solid var(--border);background:var(--surface);color:#536058;border-radius:8px;place-items:center;width:38px;height:38px;display:inline-grid}.icon-button.ghost{background:var(--surface-2);width:32px;height:32px;box-shadow:none}.icon-button.danger{color:var(--red)}.record-row-side{justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}.record-row-side>strong{white-space:nowrap}.holding-card.compact.record-card{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:0;padding:10px;display:grid}.record-row-main{min-width:0}.record-row-main>strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.record-meta-grid{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.holding-card .record-meta-grid span{color:#5f685f;white-space:normal;overflow-wrap:anywhere;background:#f4f6f4;border-radius:7px;align-items:center;gap:4px;max-width:100%;margin-top:0;padding:4px 6px;font-size:11px;line-height:1.15;display:inline-flex}.holding-card .record-meta-grid b{color:var(--brand-dark);font-size:10px}.dividend-record-card .record-row-side{flex-direction:column;justify-content:center;align-self:stretch;align-items:flex-end;gap:6px;min-width:86px}.spinning{animation:.85s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.segmented{background:#f1eff5;border-radius:8px;grid-auto-flow:column;gap:4px;width:100%;margin-top:12px;padding:4px;display:inline-grid}.segmented.tight{width:auto;margin:0}.segmented button{color:#665f75;letter-spacing:0;background:0 0;border-radius:7px;padding:8px 10px;font-size:12px;font-weight:600}.segmented button.active{color:var(--brand-dark);background:#fff;box-shadow:0 2px 6px #2a223e14}.progress-line+.progress-line{margin-top:14px}.progress-head{justify-content:space-between;gap:8px;font-size:13px;display:flex}.progress-head span{color:var(--muted);text-align:right}.progress-pct{white-space:nowrap;color:var(--brand-dark);font-weight:800}.progress-amounts{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.25}.progress-track{background:#eeeaf4;border-radius:999px;height:8px;margin-top:8px;overflow:hidden}.progress-track div{border-radius:inherit;background:linear-gradient(90deg,#7f6aac,#c8bddf);height:100%;transition:width .8s}.progress-line.complete .progress-track div{background:linear-gradient(90deg,#0f9f73,#7ad7a9)}.progress-head em{color:#16a34a;background:#dcfce7;border-radius:999px;margin-right:6px;padding:3px 8px;font-size:11px;font-style:normal;font-weight:800;line-height:1;display:inline-flex}.notice{box-shadow:none;background:#fffdf6;border-color:#efe3b0;gap:12px;margin-bottom:12px;padding:13px;display:flex}.notice svg{color:var(--orange);flex:none}.notice strong{font-size:13px;display:block}.notice p{color:#6f674d;margin:4px 0 0;font-size:12px;line-height:1.45}.auth-card{box-shadow:var(--shadow);background:linear-gradient(#fff 0%,#fbf9ff 100%);border:1px solid #ded5fb;border-radius:8px;gap:15px;margin-top:18px;padding:14px;display:grid}.auth-hero{aspect-ratio:16/7;background:#11170f;border-radius:8px;overflow:hidden}.auth-hero img{object-fit:cover;width:100%;height:100%;display:block}.auth-heading-row{grid-template-columns:44px minmax(0,1fr);align-items:start;gap:12px;display:grid}.auth-icon{background:var(--brand-soft);width:44px;height:44px;color:var(--brand);border-radius:8px;place-items:center;display:grid}.auth-card h2{color:#302a42;margin:0 0 8px;font-size:21px;line-height:1.2}.auth-form{gap:12px;display:grid}.auth-otp-form{border-top:1px solid var(--border);padding-top:13px}.otp-input-wrap input{letter-spacing:.18em;text-align:center;font-weight:800}.auth-notice{background:var(--green-soft);color:var(--green);border-radius:8px;margin:0;padding:10px 12px;font-size:12px;line-height:1.45}.status-stack{gap:8px;margin-bottom:12px;display:grid}.status{text-align:left;border-radius:8px;align-items:center;gap:8px;width:100%;padding:10px 12px;font-size:12px;line-height:1.35;display:flex}.status.error{color:#9c2929;background:#fff0f0}.status.success{background:var(--green-soft);color:var(--green)}.status.warning{color:#8b6500;background:#fff8df}.empty-state{text-align:center;color:#536058;box-shadow:none;background:#fbfcfb;justify-items:center;gap:8px;padding:22px 16px;display:grid}.empty-state p{max-width:280px;color:var(--muted);margin:0;font-size:12px;line-height:1.45}.empty-state svg{color:var(--brand)}.account-block+.account-block{margin-top:16px}.account-header,.profile-card,.holding-card.compact,.table-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.account-header{border-left:5px solid var(--brand-line);background:#f3f0f7;border-radius:0 10px 10px 0;margin:8px -2px 10px;padding:10px 12px;box-shadow:inset 0 0 0 1px #7c5cff0f}.account-header.empty{opacity:.92;background:#f7f6fb;margin-bottom:8px}.account-dot{vertical-align:baseline;border-radius:3px;width:9px;height:9px;margin-right:7px;display:inline-block}.account-header>div:first-child strong{color:var(--brand-dark);align-items:center;font-weight:800;display:flex}.account-header>div:first-child span{color:#7a6a9f;font-size:11px;font-weight:700}.account-header strong,.profile-card strong,.holding-card strong,.table-row strong{min-width:0;font-size:14px;line-height:1.25;display:block}.account-header span,.profile-card span,.holding-card span,.table-row span{margin-top:3px;font-size:12px;line-height:1.3;display:block}.holding-list{gap:10px;display:grid}.holding-card{box-shadow:none;padding:10px}.holding-card.selected{border-color:var(--brand);box-shadow:0 0 0 3px #7f6aac1a}.holding-card.compact{min-height:62px}.holding-main{width:100%;color:inherit;text-align:left;background:0 0;grid-template-columns:minmax(0,1fr) 72px minmax(116px,auto);align-items:center;gap:8px;padding:0;display:grid}.holding-title-button,.sparkline-display{min-width:0;color:inherit;text-align:left;background:0 0;border:0;padding:0}.holding-title-button{display:block}.sparkline-display{border-radius:8px;display:block}.holding-title{min-width:0}.holding-title strong,.holding-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.holding-chip-row{flex-wrap:wrap;gap:5px;margin-top:5px;display:flex}.holding-meta{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.holding-chip,.holding-meta .holding-chip{width:fit-content;max-width:100%;color:var(--brand-dark);white-space:nowrap;background:#f4f1f8;border-radius:999px;align-items:center;margin-top:0;padding:5px 7px;font-size:11px;font-weight:750;line-height:1;display:inline-flex}.holding-chip.code{color:#5d536e;background:#f1eff5}.holding-chip.price{color:#49505d;background:#f7f8fb}.holding-chip.weight{color:#4f5f8d;background:#eef2ff}.holding-chip.target{background:var(--brand-soft);color:var(--brand-dark)}.holding-card .positive,.account-header .positive{color:var(--red);font-weight:750}.holding-card .negative,.account-header .negative{color:var(--blue);font-weight:750}.holding-main .align-right{min-width:116px}.holding-main .align-right strong,.holding-main .align-right span,.holding-card.compact .align-right strong,.holding-card.compact .align-right span{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;overflow:hidden}.holding-main .align-right span,.holding-card.compact .align-right span{font-size:11px;line-height:1.2}.actions{align-items:center;gap:6px;display:flex}.compact-actions{gap:4px}.compact-actions .icon-button.ghost{border-radius:7px;width:28px;height:28px}.holding-value-actions{justify-items:end;display:grid}.holding-card-actions{justify-content:flex-end;margin-top:5px}.sparkline{width:100%;min-width:0;display:block}.sparkline-line{fill:none;stroke:var(--green);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.sparkline-area{fill:#16b45f29}.sparkline.compact .sparkline-line{stroke-width:2.1px}.sparkline.placeholder{background:var(--surface-2);color:#9aa49d;text-align:center;border-radius:8px;place-items:center;font-size:11px;display:grid}.chart-card{overflow:hidden}.chart-head,.return-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.return-cards{grid-template-columns:repeat(2,minmax(0,1fr));margin:12px 0 0}.pnl-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.pnl-card{border-radius:9px;min-width:0;padding:10px 12px}.pnl-card span,.mover-card span,.today-movers>strong{display:block}.pnl-card span{color:var(--muted);font-size:11px;line-height:1.3}.pnl-card strong{margin-top:4px;font-size:16px;font-weight:800;line-height:1.25;display:block}.pnl-card.profit{border-left:3px solid var(--red);background:#fff5f6}.pnl-card.profit strong{color:var(--red)}.pnl-card.loss{border-left:3px solid var(--blue);background:#f4f7ff}.pnl-card.loss strong{color:var(--blue)}.pnl-card.neutral{border-left:3px solid var(--border);background:#f7f6fa}.pnl-card.neutral strong{color:var(--muted);font-size:13px}.pnl-card.year{border-left:3px solid var(--brand-line);background:#f5f2f8}.pnl-card.year strong{color:var(--brand)}.rebalance-empty-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:32px 16px;display:flex}.rebalance-empty-icon{background:var(--brand-soft);width:64px;height:64px;color:var(--brand);border-radius:50%;place-items:center;display:grid}.rebalance-empty-state strong{color:var(--brand-dark);font-size:16px;line-height:1.25}.rebalance-empty-state p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.rebalance-checklist{gap:6px;width:100%;max-width:280px;display:grid}.rebalance-checklist span{color:var(--brand-dark);background:#fbfafc;border:1px solid #e6dfef;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:700;line-height:1.25}.today-movers{margin-bottom:16px}.today-movers>strong{color:var(--brand-dark);margin-bottom:8px;font-size:13px;line-height:1.3}.today-movers>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.mover-card{border-radius:9px;min-width:0;padding:8px 10px}.mover-card.up{border-top:2px solid var(--red);background:#fff5f6}.mover-card.down{border-top:2px solid var(--blue);background:#f4f7ff}.mover-card span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.25;display:block;overflow:hidden}.mover-card strong{margin-top:3px;font-size:14px;font-weight:800;line-height:1.25;display:block}.mover-card.up strong{color:var(--red)}.mover-card.down strong{color:var(--blue)}.line-chart-wrap{width:100%}.chart-plot-row{grid-template-columns:44px minmax(0,1fr);align-items:start;gap:8px;display:grid}.chart-y-axis{color:#9ca3af;text-align:right;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:2px 0;font-size:11px;line-height:1.1;display:flex}.chart-y-axis span{text-overflow:ellipsis;white-space:nowrap;max-width:44px;overflow:hidden}.line-chart{background:#fdfcff;border-radius:8px;width:100%;display:block}.line-chart line{stroke:#ebe7f1;stroke-width:1px}.line-chart line.vertical-grid{stroke:#f4f1f7}.line-chart .chart-line{fill:none;stroke-width:1.85px;stroke-linecap:round;stroke-linejoin:round}.line-chart .chart-area{opacity:.09;pointer-events:none}.chart-point{cursor:pointer;stroke-width:1px;opacity:.5;paint-order:stroke;outline:none}.chart-point.active,.chart-point:focus{stroke-width:2.2px;opacity:1;stroke:#fff!important}.chart-x-axis{color:var(--muted);text-align:center;gap:4px;margin:6px 0 0 52px;font-size:10px;font-weight:600;line-height:1.15;display:grid}.chart-x-axis span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chart-axis-unit{color:var(--muted);text-align:right;margin:4px 0 0;font-size:10px;font-weight:600}.chart-point-panel{color:#fff;background:#111827eb;border:1px solid #ffffff14;border-radius:10px;margin:10px 0 0 52px;padding:10px;font-size:12px;box-shadow:0 8px 24px #0000002e}.chart-point-panel strong{color:#ffffffad;margin-bottom:7px;font-size:13px;display:block}.chart-point-panel div{flex-wrap:wrap;gap:7px 12px;display:flex}.chart-point-panel span{align-items:center;gap:5px;min-width:0;display:inline-flex}.chart-point-panel i{border-radius:999px;flex:none;width:8px;height:8px}.chart-legend{color:#5f5870;flex-wrap:wrap;gap:8px 12px;margin-top:10px;font-size:11px;font-weight:600;display:flex}.chart-legend span{align-items:center;gap:5px;display:inline-flex}.chart-legend i{border-radius:999px;width:14px;height:3px}.chart-placeholder{color:var(--muted);background:#fbfaff;border-radius:8px;place-items:center;font-size:12px;display:grid}.bar-chart-wrap{width:100%}.monthly-bars{background:linear-gradient(#0000 0 calc(50% - .5px),#ece7f6 calc(50% - .5px) calc(50% + .5px),#0000 calc(50% + .5px)),#fbfaff;border-radius:8px;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:5px;height:138px;padding:10px 6px 8px;display:grid}.monthly-bar{background:0 0;border:0;min-width:0;height:100%;padding:0;display:grid}.bar-track{background:#eeeaf7;border-radius:999px;min-height:92px;position:relative;overflow:hidden}.monthly-bar.active .bar-track,.monthly-bar:focus .bar-track{box-shadow:0 0 0 2px #7f6aac2e}.bar-track strong{border-radius:inherit;background:var(--brand);min-height:2px;position:absolute;bottom:0;left:0;right:0}.bar-target{background:var(--orange);z-index:1;height:2px;position:absolute;left:0;right:0}.chart-x-axis.monthly{grid-column-gap:3px}.detail-chart-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.detail-chart-head strong,.detail-chart-head span{display:block}.detail-chart-head span{color:var(--muted);margin-top:3px;font-size:12px}.modal-backdrop{z-index:60;padding:18px 12px calc(18px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1a16246b;place-items:end center;display:grid;position:fixed;inset:0}.chart-modal{background:#fff;border:1px solid #e6dff0;border-radius:14px 14px 10px 10px;width:min(100%,430px);max-height:min(86vh,760px);padding:15px;overflow-y:auto;box-shadow:0 22px 60px #1f173040}.chart-modal-head,.chart-modal-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.chart-modal-head{margin-bottom:10px}.chart-modal-head strong,.chart-modal-head span{display:block}.chart-modal-head strong{color:var(--text);font-size:16px;line-height:1.25}.chart-modal-head span{color:var(--muted);margin-top:3px;font-size:12px}.chart-modal-toolbar{margin-bottom:12px}.chart-modal-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.chart-modal-stats>div{border:1px solid var(--border);background:#fbfafc;border-radius:8px;min-width:0;padding:9px 8px}.chart-modal-stats span,.chart-modal-stats strong{display:block}.chart-modal-stats span{color:var(--muted);font-size:11px;line-height:1.2}.chart-modal-stats strong{color:var(--text);overflow-wrap:anywhere;margin-top:4px;font-size:13px;line-height:1.25}.onboarding-modal{border:1px solid var(--border);background:#fff;border-radius:10px;width:min(390px,100vw - 28px);max-height:calc(100vh - 48px);padding:16px;overflow:auto;box-shadow:0 24px 50px #241e3033}.onboarding-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.onboarding-head strong{color:var(--text);font-size:18px;line-height:1.25;display:block}.onboarding-steps{gap:8px;margin-bottom:14px;display:grid}.onboarding-skip{color:var(--muted);justify-content:center;margin:0 0 4px;font-size:12px}.onboarding-skip input{width:auto;min-height:0}.onboarding-step{background:#f8f9f7;border-radius:8px;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:10px;display:grid}.onboarding-step>span{color:#fff;background:#123b2a;border-radius:999px;place-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:grid}.onboarding-step strong{color:var(--text);font-size:13px;line-height:1.25;display:block}.onboarding-step p{color:var(--muted);margin:3px 0 0;font-size:12px;line-height:1.45}.dividend-calendar-card{gap:13px;display:grid}.calendar-toolbar{text-align:center;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:8px;display:grid}.calendar-toolbar strong,.calendar-toolbar span{display:block}.calendar-toolbar strong{color:var(--brand-dark);font-size:16px;line-height:1.25}.calendar-toolbar span{color:var(--muted);margin-top:3px;font-size:11px}.dividend-calendar-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.dividend-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.calendar-weekday{color:var(--muted);text-align:center;font-size:11px;font-weight:800;line-height:1}.calendar-day{background:#fdfcff;border:1px solid #ece7f2;border-radius:8px;min-height:62px;padding:6px 5px;overflow:hidden}.calendar-day:empty{background:0 0;border-color:#0000}.calendar-day.has-dividend{background:#f5fbf7;border-color:#cfe9d7}.calendar-day.has-dividend.forecast{background:#fbf8ff;border-style:dashed;border-color:#d8cdf1}.calendar-day.has-dividend.recorded.forecast{background:linear-gradient(135deg,#f5fbf7 0%,#fbf8ff 100%);border-style:solid}.calendar-day-number{color:#6d6677;font-size:11px;font-weight:800;line-height:1;display:block}.calendar-events{gap:2px;margin-top:5px;display:grid}.calendar-events strong{color:var(--green);font-size:11px;line-height:1.1}.calendar-events span,.calendar-events em{color:#4b6254;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:9px;line-height:1.1;overflow:hidden}.calendar-events small{color:#7f6aac;margin-left:3px;font-size:8px;font-weight:800;display:inline}.calendar-events em{color:var(--muted);font-style:normal;font-weight:700}.calendar-empty{text-align:center;background:#fbfafc;border:1px dashed #d8d1e4;border-radius:8px;padding:12px}.calendar-empty strong,.calendar-empty span{display:block}.calendar-empty strong{color:var(--brand-dark);font-size:13px}.calendar-empty span{color:var(--muted);margin-top:4px;font-size:12px}.dividend-insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.dividend-insight-grid>div{border:1px solid var(--border);background:#fbfafc;border-radius:8px;min-width:0;padding:11px}.dividend-insight-grid>div>strong{color:var(--brand-dark);margin-bottom:8px;font-size:13px;line-height:1.25;display:block}.dividend-insight-list{gap:7px;display:grid}.dividend-insight-list>div,.dividend-calendar-list>div{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.dividend-calendar-list>div.forecast{background:#fbf8ff;border-radius:8px;padding:8px}.dividend-insight-list span,.dividend-calendar-list span{color:var(--muted);font-size:11px;line-height:1.25}.dividend-insight-list strong,.dividend-calendar-list strong{color:var(--text);font-size:12px;line-height:1.25}.dividend-calendar-list{border-top:1px solid var(--border);gap:8px;padding-top:12px;display:grid}.dividend-calendar-list>div>div{min-width:0}.dividend-calendar-list>div>div>strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dividend-calendar-list>div>strong{white-space:nowrap;flex-shrink:0}.signal-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:12px;display:grid}.signal-grid.compact{margin-top:10px}.signal-cell{text-align:center;background:#f5f3f7;border:1px solid #0000;border-radius:7px;min-width:0;padding:7px 4px}.signal-cell span{color:var(--muted);margin:0 0 2px;font-size:10px;display:block}.signal-cell strong{overflow-wrap:anywhere;font-size:11px;display:block}.signal-cell.active{background:#fff7d8;border-color:#e8c95a}.compact-table{border-top:1px solid var(--border);margin-top:12px}.table-row{border-bottom:1px solid var(--border);padding:11px 0}.profile-card,.support-card{padding:16px}.support-card{border-left:3px solid var(--brand-line);background:linear-gradient(135deg,#fff 0%,#fbf9ff 100%);justify-content:space-between;align-items:center;gap:12px;display:flex}.support-card>div{align-items:center;gap:11px;min-width:0;display:flex}.support-card strong,.support-card span{display:block}.support-card strong{color:var(--brand-dark);font-size:14px;line-height:1.25}.support-card span:not(.support-icon){color:var(--muted);margin-top:3px;font-size:12px;line-height:1.35}.support-icon{background:var(--brand-soft);width:38px;height:38px;color:var(--brand-dark);border-radius:10px;flex:0 0 38px;place-items:center;display:grid}.support-link{background:var(--brand);color:#fff;white-space:nowrap;border-radius:8px;flex:none;justify-content:center;align-items:center;min-height:36px;padding:0 13px;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex;box-shadow:0 8px 16px #7f6aac2e}.avatar{background:var(--brand);color:#fbfaff;border-radius:999px;place-items:center;width:48px;height:48px;font-weight:650;display:grid}.bottom-nav{width:100%;max-width:430px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#fffffff5;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{color:#879089;background:0 0;border-radius:8px;justify-items:center;gap:3px;padding:8px 4px;font-size:11px;font-weight:600;display:grid;position:relative}.bottom-nav button.active{color:var(--brand);background:var(--brand-soft)}.bottom-nav button.active:before{content:"";background:var(--brand);border-radius:0 0 3px 3px;width:24px;height:3px;position:absolute;top:-8px;left:50%;transform:translate(-50%)}@media (width<=430px){.app-shell,.bottom-nav{width:100vw;max-width:100vw}.app-shell{overflow-x:hidden}.content{padding-left:12px;padding-right:12px}.support-card{flex-direction:column;align-items:stretch}.support-link{width:100%}.dividend-insight-grid{grid-template-columns:1fr}.calendar-day{min-height:58px;padding:5px 4px}.action-brief-head{align-items:flex-start}.action-brief-head strong{flex:none;max-width:none}.brief-focus-title{justify-content:stretch;gap:8px;display:grid}.brief-focus-title strong{text-align:left;white-space:normal}}@media (width<=380px){.content{padding-left:10px;padding-right:10px}.section-tabs{gap:5px;padding:5px}.section-tabs button{gap:4px;min-height:38px;padding:7px 4px;font-size:11px}.section-tabs[data-count="4"] button{flex-direction:column;gap:3px;min-height:48px}.section-tabs[data-count="4"] button.active:after{left:18px;right:18px}.user-pill{max-width:82px}.input-grid.two,.summary-grid,.chart-head,.symbol-admin-actions{grid-template-columns:1fr}.hero-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.holding-main{grid-template-columns:minmax(0,1fr)}.holding-main .align-right{text-align:left}.holding-value-actions{justify-items:start}.holding-card-actions{justify-content:flex-start}.signal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=900px){.app-shell{border-radius:18px;min-height:calc(100vh - 40px);margin:20px 0;overflow:hidden}.bottom-nav{border-radius:0 0 18px 18px;bottom:20px}}
