:root{--color-background:#fff;--color-surface:#f9fafb;--color-surface-hover:#f3f4f6;--color-border:#e5e7eb;--font-family:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif;--font-xs:11px;--font-sm:13px;--font-md:14px;--font-lg:16px;--color-text-primary:#111827;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-text-gain:#15803d;--color-text-loss:#b91c1c;--color-border-strong:#8b8fa3;--color-violet-50:#f7f3ff;--color-violet-100:#ece5fd;--color-violet-200:#d9cbfb;--color-violet-300:#bea4f7;--color-violet-400:#a07bf2;--color-violet-500:#8c52e5;--color-violet-600:#7c35d9;--color-violet-700:#6a27be;--color-violet-800:#571ca0;--color-violet-900:#3e1278;--color-violet-950:#260b4a;--color-primary:var(--color-violet-600);--color-primary-hover:var(--color-violet-700);--color-primary-active:var(--color-violet-800);--color-primary-subtle:var(--color-violet-50);--color-primary-muted:var(--color-violet-100);--color-primary-border:var(--color-violet-200);--color-primary-focus:var(--color-violet-500);--color-link:var(--color-violet-700);--color-link-hover:var(--color-violet-800);--btn-primary-bg:var(--color-primary);--btn-primary-color:#fff;--btn-primary-bg-hover:var(--color-primary-hover);--btn-primary-bg-active:var(--color-primary-active);--btn-ghost-bg:var(--color-violet-100);--btn-ghost-color:var(--color-violet-700);--btn-ghost-border:var(--color-violet-200);--btn-ghost-bg-hover:var(--color-violet-50);--btn-danger-bg-hover:#b91c1c;--btn-danger-color-hover:#fff;--focus-ring-color:var(--color-violet-500);--focus-ring:0 0 0 3px var(--color-violet-200);--focus-ring-error:0 0 0 3px var(--badge-error-border);--focus-ring-success:0 0 0 3px var(--badge-success-border);--focus-ring-info:0 0 0 3px var(--badge-info-border);--focus-ring-muted:0 0 0 3px var(--color-border);--row-hover-bg:var(--color-violet-50);--modal-overlay:#0009;--modal-shadow:0 20px 60px #00000080;--input-border:var(--color-border-strong);--color-expired-bg:var(--badge-error-bg);--badge-buffer-bg:#f1f5f9;--badge-buffer-color:#334155;--badge-buffer-border:#e2e8f0;--badge-core-bg:#e0f2fe;--badge-core-color:#075985;--badge-core-border:#bae6fd;--badge-dividend-bg:#ede9fe;--badge-dividend-color:#5b21b6;--badge-dividend-border:#ddd6fe;--badge-stocks-bg:#ffe4e6;--badge-stocks-color:#9f1239;--badge-stocks-border:#fecdd3;--badge-teal-bg:#ccfbf1;--badge-teal-color:#115e59;--badge-teal-border:#99f6e4;--badge-lime-bg:#ecfccb;--badge-lime-color:#3f6212;--badge-lime-border:#d9f99d;--badge-orange-bg:#ffedd5;--badge-orange-color:#9a3412;--badge-orange-border:#fed7aa;--badge-cyan-bg:#a5f3fc;--badge-cyan-color:#164e63;--badge-cyan-border:#67e8f9;--badge-buy-bg:#d1fae5;--badge-buy-color:#065f46;--badge-buy-border:#a7f3d0;--badge-sell-bg:#fdf2f8;--badge-sell-color:#9d174d;--badge-sell-border:#fbcfe8;--badge-hold-bg:#fef9c3;--badge-hold-color:#854d0e;--badge-hold-border:#fde68a;--badge-success-bg:#dcfce7;--badge-success-color:#15803d;--badge-success-border:#bbf7d0;--badge-warning-bg:#fef3c7;--badge-warning-color:#92400e;--badge-warning-border:#fde68a;--badge-error-bg:#fee2e2;--badge-error-color:#b91c1c;--badge-error-border:#fca5a5;--badge-info-bg:#dbeafe;--badge-info-color:#1d4ed8;--badge-info-border:#bfdbfe;--skeleton-bg-from:var(--color-violet-50);--skeleton-bg-via:#f0ebff;--gradient-bg:radial-gradient(ellipse 75% 65% at 10% 5%, #7c35d91f 0%, transparent 60%), radial-gradient(ellipse 55% 55% at 90% 0%, #d946ef14 0%, transparent 58%), radial-gradient(ellipse 60% 45% at 65% 100%, #5b1fa817 0%, transparent 62%), #f7f5ff;--login-card-bg:#fff;--login-card-border:#7c35d91f;--login-card-shadow:0 8px 32px #7c35d914, 0 2px 8px #0000000f;--header-bg:#ffffff26;--header-border:#0000000d}:root[data-theme=dark]{--color-background:#0f1117;--color-surface:#1a1d27;--color-surface-hover:#22263a;--color-border:#2a2d3d;--color-text-primary:#f0f2f8;--color-text-secondary:#a8adc4;--color-text-muted:#7a7f96;--color-text-gain:#86efac;--color-text-loss:#ff6b6b;--color-border-strong:#7a7f96;--color-primary:var(--color-violet-600);--color-primary-hover:var(--color-violet-500);--color-primary-active:var(--color-violet-400);--color-primary-subtle:var(--color-violet-950);--color-primary-muted:#1e1040;--color-primary-border:#3b1f6e;--color-primary-focus:var(--color-violet-400);--color-link:var(--color-violet-300);--color-link-hover:var(--color-violet-200);--btn-primary-bg:var(--color-primary);--btn-primary-color:#fff;--btn-primary-bg-hover:var(--color-violet-500);--btn-primary-bg-active:var(--color-violet-400);--btn-ghost-bg:#1e1040;--btn-ghost-color:var(--color-violet-300);--btn-ghost-border:#3b1f6e;--btn-ghost-bg-hover:var(--color-violet-950);--btn-danger-bg-hover:#b91c1c;--btn-danger-color-hover:#fff;--focus-ring-color:var(--color-violet-400);--focus-ring:0 0 0 3px #3b1f6e;--row-hover-bg:var(--color-violet-950);--badge-buffer-bg:#1e293b;--badge-buffer-color:#94a3b8;--badge-buffer-border:#334155;--badge-core-bg:#082f49;--badge-core-color:#7dd3fc;--badge-core-border:#0c4a6e;--badge-dividend-bg:#2e1065;--badge-dividend-color:#c4b5fd;--badge-dividend-border:#4c1d95;--badge-stocks-bg:#4c0519;--badge-stocks-color:#fda4af;--badge-stocks-border:#881337;--badge-teal-bg:#042f2e;--badge-teal-color:#5eead4;--badge-teal-border:#115e59;--badge-lime-bg:#1f2917;--badge-lime-color:#b4cc6a;--badge-lime-border:#4b5a26;--badge-orange-bg:#2e1b0f;--badge-orange-color:#e2a468;--badge-orange-border:#6b3d1f;--badge-cyan-bg:#0d2f3a;--badge-cyan-color:#5bc7dc;--badge-cyan-border:#1f5a6b;--badge-buy-bg:#052e16;--badge-buy-color:#4ade80;--badge-buy-border:#14532d;--badge-sell-bg:#3d0a2a;--badge-sell-color:#f9a8d4;--badge-sell-border:#831843;--badge-hold-bg:#422006;--badge-hold-color:#fde047;--badge-hold-border:#78350f;--badge-success-bg:#052e16;--badge-success-color:#86efac;--badge-success-border:#14532d;--badge-warning-bg:#451a03;--badge-warning-color:#fcd34d;--badge-warning-border:#78350f;--badge-error-bg:#450a0a;--badge-error-color:#fca5a5;--badge-error-border:#7f1d1d;--badge-info-bg:#1e3a5f;--badge-info-color:#93c5fd;--badge-info-border:#1e40af;--skeleton-bg-from:var(--color-violet-950);--skeleton-bg-via:#1e1040;--gradient-bg:radial-gradient(ellipse 75% 65% at 10% 5%, #7c35d94d 0%, transparent 60%), radial-gradient(ellipse 55% 55% at 90% 0%, #d946ef33 0%, transparent 58%), radial-gradient(ellipse 60% 45% at 65% 100%, #5b1fa840 0%, transparent 62%), radial-gradient(ellipse 35% 35% at 92% 85%, #d946ef2e 0%, transparent 58%), #07060f;--login-card-bg:#0f0d1c;--login-card-border:#ffffff17;--login-card-shadow:0 24px 60px #0009, 0 0 0 1px #ffffff08 inset;--header-bg:#07060f26;--header-border:#ffffff0d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-background);color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-md);-webkit-font-smoothing:antialiased;line-height:1.5}:focus-visible{box-shadow:var(--focus-ring);outline:none}input:focus-visible,textarea:focus-visible{box-shadow:var(--focus-ring);border-color:var(--color-primary);outline:none}a,.link{color:var(--color-link);text-decoration:underline;transition:color .1s}a:hover,.link:hover{color:var(--color-link-hover)}.app{max-width:1400px;margin:0 auto;padding:32px clamp(16px,3vw,48px)}.app-header-bar{z-index:10;background:var(--header-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--header-border);position:sticky;top:0}.app-header-inner{max-width:1400px;margin:0 auto;padding:16px clamp(16px,3vw,48px)}body.bg-app{background:var(--gradient-bg);background-repeat:no-repeat;background-attachment:fixed;min-height:100vh}.app-header{margin-bottom:32px}.app-header h1{letter-spacing:-.3px;color:var(--color-text-primary);font-size:22px;font-weight:600}.app-header p{color:var(--color-text-secondary);font-size:var(--font-sm);margin-top:4px}.page-width-narrow{max-width:760px;margin:0 auto}.page-width-medium{max-width:960px;margin:0 auto}.page-width-wide{max-width:1100px;margin:0 auto}.page-width-full{max-width:1280px;margin:0 auto}.dashboard-grid{grid-template-columns:70fr 30fr;align-items:start;gap:16px;display:grid}@media (width<=1024px){.dashboard-grid{grid-template-columns:1fr}}.header-nav-row{align-items:center;gap:16px;display:flex}.header-hamburger-toggle{display:none}@media (width<=640px){.header-nav-row{display:none}.header-hamburger-toggle{display:flex}}.dashboard-next-steps-grid{grid-template-columns:1fr;gap:12px;display:grid}.dashboard-next-steps-grid--two{grid-template-columns:repeat(2,1fr)}@media (width<=640px){.dashboard-next-steps-grid--two{grid-template-columns:1fr}}.card-carousel{gap:12px;display:grid}@media (width<=640px){.card-carousel{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:4px;display:flex;overflow-x:auto}.card-carousel>*{scroll-snap-align:start;flex:0 0 78%;min-width:0}}.card-carousel-dots{justify-content:center;gap:6px;margin-top:10px;display:none}.card-carousel-dot{background-color:var(--color-border);border-radius:50%;width:6px;height:6px}.card-carousel-dot--active{background-color:var(--color-primary)}@media (width<=640px){.card-carousel-dots{display:flex}}.settings-header-row{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:32px;display:flex}.settings-search-container{flex-shrink:0;width:340px}@media (width<=640px){.settings-header-row{flex-direction:column;align-items:stretch}.settings-search-container{width:100%}}.degiro-sync-status-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.degiro-sync-status-info{font-size:var(--font-sm);align-items:center;gap:12px;display:flex}@media (width<=640px){.degiro-sync-status-row{flex-direction:column;align-items:flex-start}.degiro-sync-status-info{flex-wrap:wrap;justify-content:space-between;width:100%}}.login-card{background-color:var(--login-card-bg);border:1px solid var(--login-card-border);width:380px;max-width:100%;box-shadow:var(--login-card-shadow);border-radius:16px;padding:48px 40px}@media (width<=480px){.login-card{box-shadow:none;background-color:#0000;border:none;border-radius:0;padding:32px 24px}}.icon-label-row{align-items:center;gap:8px;display:flex}.icon-label-row--tight{gap:4px}.stacked-labels{flex-direction:column;gap:4px;display:flex}.section-spacer{margin-bottom:8px}.section-spacer-lg{margin-bottom:32px}.text-muted-sm{color:var(--color-text-secondary);font-size:var(--font-sm)}.flex-row-wrap-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.badge{font-size:var(--font-xs);white-space:nowrap;border:.5px solid #0000;border-radius:20px;padding:3px 10px;font-weight:500;display:inline-block}.badge--buffer{background:var(--badge-buffer-bg);color:var(--badge-buffer-color);border-color:var(--badge-buffer-border)}.badge--core{background:var(--badge-core-bg);color:var(--badge-core-color);border-color:var(--badge-core-border)}.badge--dividend{background:var(--badge-dividend-bg);color:var(--badge-dividend-color);border-color:var(--badge-dividend-border)}.badge--stocks{background:var(--badge-stocks-bg);color:var(--badge-stocks-color);border-color:var(--badge-stocks-border)}.badge--teal{background:var(--badge-teal-bg);color:var(--badge-teal-color);border-color:var(--badge-teal-border)}.badge--lime{background:var(--badge-lime-bg);color:var(--badge-lime-color);border-color:var(--badge-lime-border)}.badge--orange{background:var(--badge-orange-bg);color:var(--badge-orange-color);border-color:var(--badge-orange-border)}.badge--cyan{background:var(--badge-cyan-bg);color:var(--badge-cyan-color);border-color:var(--badge-cyan-border)}.badge--buy{background:var(--badge-buy-bg);color:var(--badge-buy-color);border-color:var(--badge-buy-border)}.badge--sell{background:var(--badge-sell-bg);color:var(--badge-sell-color);border-color:var(--badge-sell-border)}.badge--hold{background:var(--badge-hold-bg);color:var(--badge-hold-color);border-color:var(--badge-hold-border)}.badge--success{background:var(--badge-success-bg);color:var(--badge-success-color);border-color:var(--badge-success-border)}.badge--warning{background:var(--badge-warning-bg);color:var(--badge-warning-color);border-color:var(--badge-warning-border)}.badge--error{background:var(--badge-error-bg);color:var(--badge-error-color);border-color:var(--badge-error-border)}.badge--info{background:var(--badge-info-bg);color:var(--badge-info-color);border-color:var(--badge-info-border)}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg, var(--skeleton-bg-from) 25%, var(--skeleton-bg-via) 50%, var(--skeleton-bg-from) 75%);background-size:800px 100%;border-radius:6px;animation:1.5s linear infinite shimmer}.skeleton--pill{border-radius:20px}.skeleton--circle{border-radius:50%}body.hide-amounts .blur-amount{filter:blur(6px);-webkit-user-select:none;user-select:none}
