:root{color-scheme:light}body{margin:0;background-color:#fff}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.fade-in-up,.stagger-children>*{animation:fadeInUp .5s cubic-bezier(.22,1,.36,1) both}.stagger-children>:first-child{animation-delay:.04s}.stagger-children>:nth-child(2){animation-delay:.1s}.stagger-children>:nth-child(3){animation-delay:.16s}.stagger-children>:nth-child(4){animation-delay:.22s}.stagger-children>:nth-child(5){animation-delay:.28s}.stagger-children>:nth-child(6){animation-delay:.34s}.stagger-children>:nth-child(7){animation-delay:.4s}.stagger-children>:nth-child(8){animation-delay:.46s}@keyframes flashUp{0%{color:#16a34a}}@keyframes flashDown{0%{color:#dc2626}}.flash-up{animation:flashUp .8s ease-out}.flash-down{animation:flashDown .8s ease-out}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{background:#e5e7eb;background-image:linear-gradient(90deg,#e5e7eb,#f1f5f9 50%,#e5e7eb);background-size:200px 100%;background-repeat:no-repeat;animation:shimmer 1.2s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.fade-in-up,.flash-down,.flash-up,.stagger-children>*{animation:none!important}.skeleton{animation:none}}.dashboard{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;padding:32px 24px 48px;max-width:1200px;margin:0 auto}.dashboard-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.dashboard-header h1{font-size:32px;font-weight:700;margin:0;color:#111827}.dashboard-header p{margin:6px 0 0;color:#6b7280}.dashboard-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.stat-cards{margin-top:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:16px;gap:16px}.stat-card{padding:20px;border-radius:12px;color:#fff;box-shadow:0 4px 6px rgba(0,0,0,.1)}.stat-card.total-value{background:linear-gradient(135deg,#667eea,#764ba2)}.stat-card.total-pnl.positive{background:linear-gradient(135deg,#10b981,#059669)}.stat-card.total-pnl.negative{background:linear-gradient(135deg,#ef4444,#dc2626)}.stat-card.ytd-pnl.positive{background:linear-gradient(135deg,#14b8a6,#0d9488)}.stat-card.ytd-pnl.negative{background:linear-gradient(135deg,#f43f5e,#e11d48)}.stat-card.today-pnl.positive{background:linear-gradient(135deg,#06b6d4,#0891b2)}.stat-card.today-pnl.negative{background:linear-gradient(135deg,#f43f5e,#e11d48)}.stat-card.monthly-pnl.positive{background:linear-gradient(135deg,#06b6d4,#0891b2)}.stat-card.monthly-pnl.negative{background:linear-gradient(135deg,#f97316,#ea580c)}.stat-card.accounts{background:linear-gradient(135deg,#3b82f6,#2563eb)}.stat-card.dividend{background:linear-gradient(135deg,#f59e0b,#d97706)}.stat-card.deposit{background:linear-gradient(135deg,#06b6d4,#0891b2)}.stat-card.dividend-average{background:linear-gradient(135deg,#fb923c,#f97316)}.stat-card.dividend-pension{background:linear-gradient(135deg,#a78bfa,#8b5cf6)}.stat-card.dividend-general{background:linear-gradient(135deg,#4ade80,#22c55e)}.stat-card.dividend-growth.positive{background:linear-gradient(135deg,#8b5cf6,#7c3aed)}.stat-card.dividend-growth.negative{background:linear-gradient(135deg,#64748b,#475569)}.stat-cards.six{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:768px){.stat-cards.six{grid-template-columns:repeat(2,minmax(0,1fr))}}button.stat-card{border:none;font:inherit;text-align:left;width:100%;cursor:pointer}button.stat-card:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.stat-card.rebalance.ok{background:linear-gradient(135deg,#0f766e,#115e59)}.stat-card.rebalance.alert{background:linear-gradient(135deg,#f59e0b,#b45309)}.stat-card.financial-income{background:linear-gradient(135deg,#7c3aed,#a855f7)}.stat-card.skeleton{background:#eef0f4;box-shadow:none}.skeleton-line{height:12px;border-radius:6px;background:#dde1e8;margin-top:10px;animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-line.short{width:40%;margin-top:0}.skeleton-line.tall{height:28px;width:70%}.skeleton-block{height:360px;border-radius:12px;background:#eef0f4;animation:skeleton-pulse 1.4s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.skeleton-block,.skeleton-line{animation:none}}.stat-cards.six .stat-card-detail{display:block;opacity:.85}.report-download-btn{padding:6px 12px;font-size:13px;font-weight:600;border:1px solid #3b82f6;border-radius:8px;background:#fff;color:#3b82f6;cursor:pointer;white-space:nowrap}.report-download-btn:hover{background:#eff6ff}.stat-card-label{font-size:13px;opacity:.9;margin-bottom:8px}.stat-card-value{font-size:28px;font-weight:700}.stat-card-sub{font-size:12px;margin-top:4px;opacity:.8}.stat-card-yoy{font-size:11px;margin-top:8px;padding:6px 10px;border-radius:6px;background:hsla(0,0%,100%,.2);display:inline-block}.stat-card-yoy.positive .yoy-change{color:#bbf7d0;font-weight:600;margin-left:4px}.stat-card-yoy.negative .yoy-change{color:#fecaca;font-weight:600;margin-left:4px}.stat-card-detail{display:flex;gap:12px;font-size:11px;margin-top:6px;opacity:.7}.stat-card-detail span{white-space:nowrap}.stat-card-ticker{font-size:16px;font-weight:600;line-height:1.4}.dashboard-section{margin-top:40px}.dashboard-section h2{font-size:24px;font-weight:700;margin-bottom:20px;color:#111827}.dashboard-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px rgba(0,0,0,.1);border:1px solid #e5e7eb;margin-bottom:24px}.dashboard-card h3{font-size:16px;font-weight:600;margin-bottom:16px;color:#111827}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));grid-gap:24px;gap:24px;margin-bottom:24px}.dashboard-table{width:100%;border-collapse:collapse;font-size:14px;overflow-x:auto}.dashboard-table thead tr{background:#f8fafc;text-align:left}.dashboard-table th{padding:10px 8px;font-weight:600;color:#111827}.dashboard-table td{padding:10px 8px;border-top:1px solid #e2e8f0}.dashboard-table tbody tr{transition:background-color .2s}.dashboard-table tbody tr:hover{background-color:#f9fafb}.account-section{margin-bottom:32px}.account-section:last-child{margin-bottom:0}.account-section-title{font-size:18px;font-weight:600;color:#334155;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #e5e7eb}.account-summary-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:20px;margin-bottom:20px;color:#fff;box-shadow:0 4px 6px rgba(0,0,0,.1)}.account-summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.account-summary-row:not(:last-child){border-bottom:1px solid hsla(0,0%,100%,.2)}.account-summary-label{font-size:14px;font-weight:500;opacity:.9}.account-summary-value{font-size:16px;font-weight:700}.account-summary-value.pnl-positive{color:#86efac}.account-summary-value.pnl-negative{color:#fca5a5}.account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:20px;gap:20px}.account-card{border:1px solid #e5e7eb;border-radius:12px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:8px;transition:box-shadow .2s,border-color .2s}.account-card:hover{box-shadow:0 4px 6px rgba(0,0,0,.1);border-color:#3b82f6}.account-card-title{font-weight:700;color:#2563eb;text-decoration:none;transition:color .2s}.account-card-title:hover{color:#1d4ed8}.account-card-currency{color:#94a3b8;font-size:13px}.account-card-details{display:flex;flex-direction:column;gap:4px;font-size:14px}.account-card-krw{color:#94a3b8;font-size:12px}.account-card-holdings{font-size:13px;color:#6b7280;margin-top:8px}.account-card-dividend{font-size:13px;color:#059669;margin-top:4px}.pnl-positive{color:#15803d;font-weight:600}.pnl-negative{color:#dc2626;font-weight:600}.rebalance-buy{color:#2563eb;font-weight:600}.rebalance-sell{color:#dc2626;font-weight:600}.rebalance-none{color:#10b981;font-weight:600}.diff-positive{color:#dc2626;font-weight:600}.diff-negative{color:#2563eb;font-weight:600}.diff-neutral{color:#6b7280;font-weight:400}.meta-info{margin-top:12px;display:flex;flex-direction:column;gap:4px}.meta-text{color:#94a3b8;font-size:12px}.action-ideas{color:#475569;line-height:1.7;padding-left:20px}.action-ideas li{margin-bottom:8px}.error-message{color:#ef4444}.empty-state{color:#6b7280;padding:20px 0;text-align:center}.link-button{padding:10px 16px;border-radius:8px;background-color:#2563eb;color:#fff;text-decoration:none;font-weight:600;display:inline-block;transition:background-color .2s}.link-button:hover{background-color:#1d4ed8;color:#fff}.mobile-tab-nav{display:none;position:-webkit-sticky;position:sticky;top:0;z-index:90;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:12px 0;margin:0 -16px 16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;box-shadow:0 4px 12px rgba(0,0,0,.08)}.mobile-tab-nav::-webkit-scrollbar{display:none}.mobile-tab-list{display:flex;gap:4px;padding:0 16px;min-width:max-content}.mobile-tab-btn{padding:10px 16px;border:none;background:#f3f4f6;color:#4b5563;border-radius:20px;font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer;transition:all .2s}.mobile-tab-btn.active{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 8px rgba(59,130,246,.3)}.mobile-tab-btn:not(.active):hover{background:#e5e7eb}.tab-content{display:block}@media (max-width:768px){.tab-content.hidden{display:none}}.mobile-card-list{display:none}.mobile-card-item{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;margin-bottom:12px}.mobile-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #f3f4f6}.mobile-card-title{font-weight:600;color:#111827;font-size:15px}.mobile-card-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}.mobile-card-badge.positive{background:#dcfce7;color:#15803d}.mobile-card-badge.negative{background:#fee2e2;color:#dc2626}.mobile-card-body{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.mobile-card-row{display:flex;flex-direction:column;gap:2px}.mobile-card-row.full-width{grid-column:span 2}.mobile-card-label{font-size:11px;color:#9ca3af;text-transform:uppercase;letter-spacing:.5px}.mobile-card-value{font-size:14px;color:#374151;font-weight:500}.mobile-card-value.highlight{font-weight:700;color:#111827}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;padding:8px 0 max(8px,env(safe-area-inset-bottom));z-index:1000;box-shadow:0 -2px 10px rgba(0,0,0,.1)}.mobile-bottom-nav-list{display:flex;justify-content:space-around;align-items:center;max-width:400px;margin:0 auto}.mobile-bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 16px;color:#6b7280;text-decoration:none;font-size:11px;font-weight:500;border:none;background:none;cursor:pointer;transition:color .2s}.mobile-bottom-nav-item.active,.mobile-bottom-nav-item:hover{color:#2563eb}.mobile-bottom-nav-icon{font-size:20px}@media (max-width:768px){.dashboard{padding-bottom:80px}.mobile-tab-nav{display:block;background:#f8fafc!important}.mobile-bottom-nav,.mobile-card-list{display:block}.desktop-table{display:none}.dashboard{padding:12px 16px 80px}.dashboard-header h1{font-size:24px}.stat-cards{grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{padding:14px}.stat-card-label{font-size:11px}.stat-card-value{font-size:18px}.stat-card-sub{font-size:10px}.account-grid,.chart-grid{grid-template-columns:1fr}.dashboard-section{margin-top:24px}.dashboard-section h2{font-size:18px;margin-bottom:12px}.dashboard-card{padding:16px;margin-bottom:16px}.dashboard-card h3{font-size:14px;margin-bottom:12px}}@media (max-width:480px){.stat-cards{grid-template-columns:repeat(2,1fr);gap:8px}.stat-card{padding:12px}.stat-card-label{font-size:10px}.stat-card-value{font-size:16px}.dashboard-header{flex-direction:column;align-items:flex-start}.dashboard-actions{width:100%;align-items:stretch}}.collapsible-section{margin-bottom:16px}.collapsible-header{display:flex;align-items:center;justify-content:space-between;padding:16px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.collapsible-header:hover{background:#f1f5f9;border-color:#cbd5e1}.collapsible-header.expanded{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-color:transparent}.collapsible-title{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:#1e293b}.collapsible-summary{font-size:13px;color:#64748b;font-weight:400}.collapsible-icon{font-size:18px;color:#94a3b8;transition:transform .2s}.collapsible-header.expanded .collapsible-icon{transform:rotate(180deg)}.collapsible-content{border:1px solid #e5e7eb;border-top:none;border-radius:0 0 12px 12px;padding:16px;background:#fff;animation:slideDown .2s ease-out}.collapsible-content.collapsed{display:none}.table-wrapper{overflow-x:auto;border-radius:12px}.text-muted{color:#6b7280}.text-small{font-size:13px}.font-bold{font-weight:700}.font-semibold{font-weight:600}.flex{display:flex}.flex-col{flex-direction:column}.gap-4{gap:4px}.gap-8{gap:8px}.text-right{text-align:right}.text-left{text-align:left}.text-center{text-align:center}.chart-loading{display:flex;align-items:center;justify-content:center;min-height:300px;color:#6b7280;font-size:14px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb 50%,#f3f4f6 75%);background-size:200% 100%;animation:loading 1.5s ease-in-out infinite;border-radius:8px}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.rebalancing-alert-container{margin-top:32px;margin-bottom:24px}.rebalancing-alert{background:#fff;border-radius:12px;box-shadow:0 4px 6px rgba(0,0,0,.1);overflow:hidden;transition:all .3s ease}.rebalancing-alert.alert-warning{border-left:4px solid #f59e0b}.rebalancing-alert.alert-danger{border-left:4px solid #ef4444}.alert-header{display:flex;align-items:center;gap:16px;padding:20px;cursor:pointer;transition:background-color .2s}.alert-header:hover{background-color:#f9fafb}.alert-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%}.alert-warning .alert-icon{background-color:#fef3c7;color:#f59e0b}.alert-danger .alert-icon{background-color:#fee2e2;color:#ef4444}.alert-content{flex:1 1}.alert-title{font-size:18px;font-weight:700;color:#111827;margin-bottom:4px}.alert-summary{font-size:14px;color:#6b7280}.alert-toggle{flex-shrink:0;color:#6b7280}.alert-details{padding:0 20px 20px;border-top:1px solid #e5e7eb;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.alert-list{display:grid;grid-gap:12px;gap:12px;margin-top:16px}.alert-item{background:#f9fafb;border-radius:8px;padding:16px;border-left:3px solid transparent}.alert-item.warning{border-left-color:#f59e0b}.alert-item.danger{border-left-color:#ef4444;background:#fef2f2}.alert-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.asset-name{font-size:16px;font-weight:600;color:#111827}.diff-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:14px;font-weight:600}.diff-badge.over{background-color:#fee2e2;color:#dc2626}.diff-badge.under{background-color:#dbeafe;color:#2563eb}.alert-item-details{display:grid;grid-gap:8px;gap:8px}.detail-row{display:flex;justify-content:space-between;align-items:center;font-size:14px}.detail-row .label{color:#6b7280;font-weight:500}.detail-row .value{color:#111827;font-weight:600}.detail-row .recommendation{color:#2563eb;font-size:13px}.alert-actions{margin-top:16px;padding-top:16px;border-top:1px solid #e5e7eb;display:flex;justify-content:center}.btn-simulate{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px rgba(59,130,246,.3)}.btn-simulate:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 8px rgba(59,130,246,.4)}.btn-simulate:active{transform:translateY(0)}@media (max-width:768px){.alert-header{padding:16px}.alert-icon{width:40px;height:40px}.alert-title{font-size:16px}.alert-summary{font-size:13px}.alert-details{padding:0 16px 16px}.btn-simulate{width:100%;padding:14px 20px}.dashboard-section h2{font-size:17px;font-weight:700;color:#1e293b;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #e2e8f0;display:flex;align-items:center;gap:8px}.dashboard-card{background:#fff;border-radius:16px;padding:16px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.08);border:1px solid #f1f5f9}.dashboard-card h3{font-size:14px;font-weight:600;color:#475569;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #f1f5f9}.stat-cards{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:10px;gap:10px;margin-top:16px}.stat-card{border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:4px}.stat-card-label{font-size:11px;font-weight:500;opacity:.9;letter-spacing:.3px}.stat-card-value{font-size:20px;font-weight:700;line-height:1.2}.stat-card-sub{font-size:10px;opacity:.85;margin-top:2px}.account-card{border-radius:14px;padding:14px;border:1px solid #e5e7eb;background:#fff;transition:all .2s}.account-card:active{transform:scale(.98);background:#f8fafc}.account-card-title{font-size:15px;font-weight:700}.table-wrapper{margin:0 -16px;padding:0 16px;overflow-x:auto;-webkit-overflow-scrolling:touch}.dashboard-table{font-size:13px;min-width:500px}.dashboard-table td,.dashboard-table th{padding:10px 8px;white-space:nowrap}.dashboard-table td:first-child,.dashboard-table th:first-child{position:-webkit-sticky;position:sticky;left:0;background:#fff;z-index:1}.dashboard-table thead th:first-child{background:#f8fafc}.chart-grid{display:flex;flex-direction:column;gap:12px}.account-summary-card{border-radius:16px;padding:16px;margin-bottom:16px}.account-summary-row{padding:10px 0}.account-summary-label{font-size:13px}.account-summary-value{font-size:15px}.dashboard-section{margin-top:20px}.dashboard-section:first-child{margin-top:0}.link-button{width:100%;padding:14px 20px;font-size:15px}.empty-state,.link-button{text-align:center;border-radius:12px}.empty-state{padding:32px 16px;font-size:14px;color:#94a3b8;background:#f8fafc}.chart-loading{min-height:200px;border-radius:12px}.collapsible-header{padding:14px;border-radius:14px}.collapsible-header.expanded{border-radius:14px 14px 0 0}.collapsible-title{font-size:14px}.collapsible-content{padding:14px;border-radius:0 0 14px 14px}.account-section-title{font-size:15px;padding-bottom:8px;margin-bottom:12px}}@media (max-width:480px){.dashboard{padding:10px 12px 80px}.dashboard-header h1{font-size:22px}.stat-card-value{font-size:18px}.stat-card{padding:12px}.dashboard-card{padding:14px;border-radius:14px}.account-summary-card{padding:14px}.mobile-tab-btn{padding:8px 14px;font-size:13px}.mobile-bottom-nav-item{padding:6px 12px;font-size:10px}.mobile-bottom-nav-icon{font-size:18px}}@media (max-width:768px){.account-card,.collapsible-header,.dashboard-card,.mobile-bottom-nav-item,.mobile-tab-btn,.stat-card{-webkit-tap-highlight-color:transparent}.collapsible-header:active,.dashboard-card:active{opacity:.95}}@media (max-width:768px){.table-wrapper::-webkit-scrollbar{height:4px}.table-wrapper::-webkit-scrollbar-track{background:#f1f5f9;border-radius:2px}.table-wrapper::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}}