@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Syne:wght@600;700&display=swap";:root{font-family:Space Grotesk,sans-serif;color:#dfe7f3;background-color:#05070d;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--alloc-0: #2ad68d;--alloc-1: #1b8af2;--alloc-2: #9b5cff;--alloc-3: #f2b441;--alloc-4: #ea5fd6;--alloc-5: #6fd6ff}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top,#11223a,#05070d 55% 100%)}#root{min-height:100vh}h1,h2,h3,h4{font-family:Syne,sans-serif;margin:0}p{margin:0}.app-layout{display:flex;min-height:100vh;background-color:#0d121f;font-family:Inter,system-ui,-apple-system,sans-serif;overflow-x:hidden}.sidebar{width:260px;background-color:#161e2e;border-right:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;transition:width .3s ease;flex-shrink:0;height:100vh;position:sticky;top:0;overflow-y:auto;z-index:50}.sidebar.collapsed{width:80px}.sidebar-header{padding:24px;margin-bottom:32px}.sidebar-brand{display:flex;align-items:center;gap:12px;overflow:hidden;white-space:nowrap}.sidebar-logo-img{width:32px;height:32px;border-radius:50%;border:2px solid #2ad68d}.sidebar-brand-text{font-weight:700;font-size:16px;letter-spacing:.1em;text-transform:uppercase;color:#fff;opacity:0;animation:fadeIn .3s forwards}@keyframes fadeIn{to{opacity:1}}.sidebar-nav{display:flex;flex-direction:column;gap:4px;padding:0 12px;flex:1}.sidebar-link{display:flex;align-items:center;gap:14px;padding:12px;border-radius:12px;color:#9aa9bf;text-decoration:none;transition:all .2s;overflow:hidden;white-space:nowrap;font-size:14px;font-weight:500}.sidebar-link:hover{background:#ffffff0a;color:#dfe7f3}.sidebar-link.active{background:#2ad68d1a;color:#2ad68d;font-weight:600}.sidebar-link.active:before{content:"";position:absolute;left:0;width:3px;height:24px;background:#2ad68d;border-radius:0 4px 4px 0;display:none}.sidebar-icon{display:flex;align-items:center;justify-content:center;min-width:24px}.sidebar-icon svg{width:20px;height:20px}.sidebar-text{opacity:0;animation:fadeIn .2s .1s forwards}.sidebar-link.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.wip-badge{background:#ffffff1a;color:#9aa9bf;font-size:9px;padding:2px 6px;border-radius:4px;margin-left:auto}.sidebar-footer{padding:16px 12px;margin-top:auto;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;gap:4px}.sidebar-toggle{background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:14px;padding:12px;color:#6b7280;width:100%;border-radius:12px;transition:color .2s}.sidebar-toggle:hover{color:#dfe7f3;background:#ffffff0a}.admin-link{color:#de5b5b!important}.admin-link.active{background:#de5b5b1a}.content-wrapper{flex:1;display:flex;flex-direction:column;min-width:0;height:100vh;overflow-y:auto;position:relative}.app{padding:32px 40px;max-width:1440px;margin:0 auto;width:100%}@media(max-width:900px){.app{padding:24px 16px 32px}}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-radius:18px;background:#0c1220d9;border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 30px #02060f99;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px;font-weight:700;text-transform:uppercase;letter-spacing:.3em;font-size:12px}.brand img{width:44px;height:44px;border-radius:50%;border:2px solid rgba(143,255,110,.6)}.nav{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.nav-item{border:none;background:#ffffff14;color:#dfe7f3;padding:8px 14px;border-radius:999px;font-weight:600;font-size:12px;display:inline-flex;align-items:center;gap:6px;text-decoration:none}.nav-item.active{background:linear-gradient(135deg,#2ac77c,#159b6b);color:#08131f}.nav-item.disabled{opacity:.45;cursor:not-allowed;background:#ffffff0f;color:#9aa9bf}.nav-item.disabled.active{background:#ffffff14;color:#9aa9bf}.wip{background:#ffffff1f;color:#b7c3da;border-radius:999px;font-size:9px;padding:2px 6px;letter-spacing:.1em}.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.logout-btn{padding:6px 12px;font-size:12px}.lang-btn{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;border:1px solid rgba(255,255,255,.12);background:#060c1899;color:#dfe7f3;font-size:12px;font-weight:600}.lang-picker{position:relative}.lang-menu{position:absolute;right:0;top:calc(100% + 8px);background:#080e1cf2;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:8px;display:grid;gap:6px;min-width:160px;box-shadow:0 16px 24px #02060f99;z-index:20}.lang-option{border:none;background:transparent;color:#dfe7f3;padding:8px 10px;border-radius:10px;display:flex;align-items:center;gap:8px;text-align:left;font-size:12px;font-weight:600}.lang-option.active{background:#2ad68d26;color:#b8f7d8}.currency-picker{position:relative}.currency-btn{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 12px;border:1px solid rgba(255,255,255,.12);background:#060c1899;color:#dfe7f3;font-size:12px;font-weight:600}.currency-menu{position:absolute;right:0;top:calc(100% + 8px);background:#080e1cf2;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:8px;display:grid;gap:6px;min-width:110px;box-shadow:0 16px 24px #02060f99;z-index:20}.currency-option{border:none;background:transparent;color:#dfe7f3;padding:8px 10px;border-radius:10px;text-align:left;font-size:12px;font-weight:600}.currency-option.active{background:#2ad68d26;color:#b8f7d8}@media(max-width:1100px),(pointer:coarse){.app-layout.mobile-nav{flex-direction:column}.app-layout.mobile-nav .sidebar{width:100%;max-width:100%;height:64px;min-height:64px;flex-direction:row;align-items:center;justify-content:flex-start;padding:6px 10px;position:sticky;top:0;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid rgba(255,255,255,.06)}.app-layout.mobile-nav .sidebar.collapsed{width:100%}.app-layout.mobile-nav .sidebar-header{padding:0;margin:0 8px 0 0;flex:0 0 auto}.app-layout.mobile-nav .sidebar-brand-text{display:none;animation:none}.app-layout.mobile-nav .sidebar-logo-img{width:28px;height:28px}.app-layout.mobile-nav .sidebar-nav{flex-direction:row;align-items:center;gap:6px;padding:0;flex:1 1 auto;overflow-x:auto;overflow-y:hidden;white-space:nowrap}.app-layout.mobile-nav .sidebar-link{justify-content:center;padding:6px 10px;gap:6px;min-width:auto;font-size:12px;flex:0 0 auto;width:auto;max-width:none;overflow:visible}.app-layout.mobile-nav .sidebar-icon{min-width:18px}.app-layout.mobile-nav .sidebar-icon svg{width:18px;height:18px}.app-layout.mobile-nav .sidebar-text,.app-layout.mobile-nav .wip-badge{display:inline-flex;opacity:1!important;animation:none!important;color:#dfe7f3;font-weight:600}.app-layout.mobile-nav .sidebar-toggle{justify-content:center;padding:8px;gap:0}.app-layout.mobile-nav .sidebar-footer{flex-direction:row;align-items:center;gap:6px;padding:0 4px;margin-top:0;border-top:0;flex:0 0 auto}.app-layout.mobile-nav .content-wrapper{height:auto;width:100%}.app-layout.mobile-nav .top-bar{padding:10px 12px;gap:10px;flex-wrap:wrap}.app-layout.mobile-nav .actions{width:100%;justify-content:space-between;gap:8px}}@media(max-width:900px){.app-layout{flex-direction:column}.sidebar{width:100%;max-width:100%;height:64px;min-height:64px;flex-direction:row;align-items:center;justify-content:flex-start;padding:6px 10px;position:sticky;top:0;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar.collapsed{width:100%}.sidebar-header{padding:0;margin:0 8px 0 0;flex:0 0 auto}.sidebar-brand-text{display:none}.sidebar-logo-img{width:28px;height:28px}.sidebar-nav{flex-direction:row;align-items:center;gap:6px;padding:0;flex:1 1 auto;overflow-x:auto;overflow-y:hidden;white-space:nowrap}.sidebar-link{justify-content:center;padding:6px 10px;gap:6px;min-width:auto;font-size:12px}.sidebar-icon{display:none}.sidebar-text,.wip-badge{display:inline-flex!important;opacity:1!important;animation:none!important;color:#dfe7f3!important;font-weight:600;white-space:nowrap}.sidebar-toggle{justify-content:center;padding:8px;gap:0}.sidebar-footer{flex-direction:row;align-items:center;gap:6px;padding:0 4px;margin-top:0;border-top:0;flex:0 0 auto}.content-wrapper{height:auto;width:100%}}.lang-label{letter-spacing:.1em}.flag{width:18px;height:12px;border-radius:2px;border:1px solid rgba(255,255,255,.2);display:inline-block;background:#1b2b42;background-position:center;background-repeat:no-repeat;background-size:cover}.flag-en{background-image:url(/assets/uk-flag-ByRy7r5l.jpg)}.flag-pt{background:linear-gradient(90deg,#046a38 0 40%,#da291c 40% 100%)}.flag-es{background:linear-gradient(180deg,#c60b1e 0 30%,#ffc400 30% 70%,#c60b1e 70% 100%)}.wip-panel{margin-top:12px;padding:24px;border-radius:16px;background:#0c1428cc;border:1px solid rgba(255,255,255,.08);display:grid;gap:8px}.wip-label{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:#87c9ff}.wip-message{font-size:13px;color:#9aa9bf}.success{color:#7de0b2;font-size:12px}.error{color:#ff9c9c;font-size:12px}.muted{color:#9aa9bf;font-size:12px}.goals-page{display:grid;gap:18px}.goals-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.goals-header h2{margin:0}.goals-header p{margin:4px 0 0;color:#9aa9bf;font-size:12px}.goals-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.goals-tabs{display:flex;gap:8px;flex-wrap:wrap}.goal-tab{border:1px solid rgba(255,255,255,.12);background:#080e1c99;color:#cfe1ff;padding:6px 12px;border-radius:999px;font-size:12px;cursor:pointer}.goal-tab.active{background:#2ad68d;color:#052016;border-color:transparent;font-weight:700}.goal-input{background:#080e1ccc;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:8px 10px;color:#e5eefb;min-width:200px}.goal-header-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.goals-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.goals-sections{display:grid;gap:18px;grid-template-columns:1fr}.goals-section{display:grid;gap:16px}.goals-section-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.goals-section-header h4{margin:0}.goals-card{background:#0a1224b3;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;display:grid;gap:12px}.goals-card h4{margin:0}.goals-card h5{margin:0;font-size:14px}.goal-readonly{padding:8px 10px;border-radius:10px;border:1px dashed rgba(255,255,255,.15);background:#080e1c99;color:#e5eefb;font-size:12px}.goals-metrics{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.goals-metric{background:#070c18a6;border-radius:12px;padding:12px;display:grid;gap:6px;font-size:12px;color:#9aa9bf}.goals-metric strong{color:#e6f0ff;font-size:14px}.goals-chart{background:#0a1224b3;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;display:grid;gap:12px}.goals-chart-body{display:grid;grid-template-columns:90px minmax(260px,420px);gap:12px;align-items:stretch;justify-content:center}.goals-chart-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:#8ea0bd;height:100%}.goals-chart-axis .axis-label{margin-top:6px;font-size:10px;color:#6f7f96}.goals-chart-plot{display:grid;width:100%;aspect-ratio:1 / 1}.goals-chart svg{width:100%;height:100%;border-radius:12px;background:#060a16cc}.goals-chart-x{display:flex;justify-content:space-between;margin-left:90px;max-width:420px;font-size:11px;color:#8ea0bd}.goals-chart-axis-label{margin:0 0 0 90px;max-width:420px;font-size:11px;color:#6f7f96}.readonly-input{opacity:.7;cursor:not-allowed}.goals-chart-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#9aa9bf}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-item:before{content:"";display:inline-block;width:10px;height:10px;border-radius:999px;background:#9aa9bf}.legend-item.legend-continued:before{background:#9aa9bf}.legend-item.legend-coast:before{background:#2ad68d}.legend-item.legend-target:before{background:#4ea1ff}.legend-item.legend-fire:before{background:#ff6b6b}.goals-table{width:100%;border-collapse:collapse;font-size:12px}.goals-table th,.goals-table td{padding:8px 6px;border-bottom:1px solid rgba(255,255,255,.08);text-align:left}.login-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-radius:16px;background:#0a101ed9;border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 30px #02060f99;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.2em;font-size:12px;text-transform:uppercase}.login-brand img{width:42px;height:42px;border-radius:50%;border:2px solid rgba(143,255,110,.6)}.login-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.login-page{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:32px;align-items:start}.login-hero{display:grid;gap:20px}.hero-brand{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.hero-brand img{width:110px;height:110px}.hero-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:#2ad68d1f;color:#b8f7d8;font-size:11px;text-transform:uppercase;letter-spacing:.2em;width:fit-content}.login-hero h1{font-size:clamp(32px,4.4vw,46px)}.login-hero h1 span{color:#2ad68d}.login-hero p{color:#9aa9bf;max-width:520px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-stats{display:flex;gap:24px;flex-wrap:wrap}.hero-stat h4{margin:0;font-size:18px;color:#2ad68d}.hero-stat span{font-size:12px;color:#8fa0ba}.hero-features{display:grid;gap:16px}.feature-head h3{margin-bottom:6px}.feature-head p{color:#8fa0ba}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.feature-card{background:#0c1428c7;border-radius:14px;padding:14px;border:1px solid rgba(255,255,255,.08);display:grid;gap:8px}.feature-icon{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#2ad68dcc,#19906a99)}.feature-card h4{margin:0;font-size:14px}.feature-card p{margin:0;color:#8fa0ba;font-size:12px}.login-cta{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border-radius:18px;background:#0a1424e6;border:1px solid rgba(255,255,255,.08)}.login-cta p{color:#8fa0ba;font-size:12px}.primary-btn,.ghost-btn{border-radius:10px;padding:10px 16px;font-weight:600;border:none;cursor:pointer}.primary-btn{background:linear-gradient(135deg,#2ad68d,#1ba972);color:#0a151f}.ghost-btn{background:#ffffff14;color:#dfe7f3;border:1px solid rgba(255,255,255,.12)}.help-btn{width:38px;height:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:12px}.help-btn:hover{background:#ffffff24}.help-icon{width:18px;height:18px;color:#dfe7f3}.ghost-btn.active{background:linear-gradient(135deg,#2ad68d,#1ba972);color:#0a151f;border-color:transparent}.danger-btn{background:#c02c2c2e;border:1px solid rgba(255,110,110,.4);color:#ffb3b3}.danger-btn:hover{background:#c02c2c52;border-color:#ff6e6e99}.primary-btn.full,.ghost-btn.full{width:100%}.login-card{background:#0c1428e6;border-radius:18px;padding:24px;border:1px solid rgba(255,255,255,.08);display:grid;gap:12px;align-self:start}.login-form{display:grid;gap:12px}.login-card label{display:grid;gap:6px;font-size:12px;color:#9aa9bf}.login-card input{border-radius:10px;padding:10px 12px;border:1px solid rgba(255,255,255,.12);background:#070c1899;color:#dfe7f3}.login-sub{color:#9aa9bf;font-size:12px}.login-error{color:#ff8b8b;font-size:12px}.upgrade-banner{border-radius:12px;padding:14px 16px;background:linear-gradient(135deg,#ffa50026,#ff643226);border:1px solid rgba(255,165,0,.4);color:#ffc266;font-size:13px;line-height:1.5;text-align:center}.upgrade-banner strong{color:#fa0;display:block;margin-bottom:4px}.login-banner{border-radius:12px;padding:10px 12px;background:#2ad68d26;border:1px solid rgba(42,214,141,.35);color:#8ff1c1;font-size:12px}.verification-row{display:grid;gap:8px}.divider{position:relative;text-align:center;font-size:11px;color:#6f7f96}.divider:before,.divider:after{content:"";position:absolute;top:50%;width:40%;height:1px;background:#ffffff1f}.divider:before{left:0}.divider:after{right:0}.login-footer{font-size:12px;color:#9aa9bf}.login-footer .link{background:none;border:none;padding:0;color:#2ad68d;margin-left:4px;font-weight:600;cursor:pointer}.modal-backdrop{position:fixed;inset:0;background:#05080fbf;display:grid;place-items:center;z-index:40;padding:24px}.modal-card{width:min(560px,100%);background:#0c1428f2;border-radius:18px;padding:20px;border:1px solid rgba(255,255,255,.08);display:grid;gap:16px}.modal-card header{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal-grid{display:grid;gap:14px}.field{display:grid;gap:8px;font-size:12px;color:#9aa9bf}.field input,.field select{border-radius:10px;padding:10px 12px;border:1px solid rgba(255,255,255,.12);background:#070c1899;color:#dfe7f3}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:4px 10px;border-radius:999px;font-size:11px;background:#2ad68d26;color:#b8f7d8}.chip.outline{background:transparent;border:1px dashed rgba(42,214,141,.5);color:#a7f0d3}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.add-btn{border:none;border-radius:10px;padding:8px 14px;background:linear-gradient(135deg,#1b8af2,#14c2ff);color:#041321;font-weight:700}.portfolio-pill,.currency-pill{padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#060c1899;font-size:12px}.chevron{margin-left:4px;font-size:10px}.avatar{width:34px;height:34px;border-radius:50%;background:#1a2c44;display:grid;place-items:center;font-weight:600;text-decoration:none;color:#dfe7f3}.portfolio-strip{margin-top:18px;margin-bottom:16px;display:flex;flex-direction:column;gap:10px;padding:12px 16px;background:#081020a6;border-radius:16px;overflow:hidden;position:relative;z-index:2}.portfolio-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.portfolio-chips{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px;flex:1}.portfolio-empty{font-size:12px;color:#9aa9bf}.portfolio-chip{background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#dfe7f3;border-radius:999px;padding:8px 16px;font-size:12px;font-weight:600;white-space:nowrap}.portfolio-chip.active{background:linear-gradient(135deg,#2ad68d,#32a66e);color:#0b1a21}.portfolio-chip.aggregated{background:#0a101ee6;color:#dfe7f3;font-weight:600;border:1px solid rgba(255,255,255,.12)}.portfolio-chip.aggregated.active{background:linear-gradient(135deg,#ff6b6b,#ff8787);color:#0b1a21;font-weight:700;border:2px solid rgba(255,107,107,.4)}.portfolio-chip.create-snapshot{background:linear-gradient(135deg,#4dabf7,#339af0);color:#fff;padding:10px 20px;font-size:13px;font-weight:700;border:2px solid rgba(77,171,247,.4)}.portfolio-chip.create-snapshot:hover{background:linear-gradient(135deg,#339af0,#228be6)}.portfolio-management-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;text-decoration:none}.dashboard-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.dashboard-tab{border:1px solid rgba(255,255,255,.12);background:#070c1899;color:#dfe7f3;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px}.dashboard-tab.portfolio-analytics-tab{padding:8px 18px;font-size:14px;font-weight:700}.dashboard-tab .tab-icon{width:18px;height:18px;object-fit:contain}.dashboard-tab.active{background:linear-gradient(135deg,#1b8af2,#14c2ff);color:#041321}.content{margin-top:24px;display:grid;gap:24px}.content.login-layout{margin-top:40px;display:block}.loading-banner{padding:10px 12px;border-radius:12px;background:#22c55e26;border:1px solid rgba(34,197,94,.35);color:#9ef0c1;font-size:12px}.dashboard-title{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#0c1428bf;border-radius:16px;padding:16px 18px;border:1px solid rgba(255,255,255,.08);margin-top:8px}.dashboard-title p{color:#9aa9bf;font-size:12px}.dashboard-info{display:grid;gap:4px}.dashboard-subrow{display:flex;flex-wrap:wrap;align-items:center;gap:12px;color:#9aa9bf;font-size:12px}.dashboard-subrow p{margin:0}.dashboard-currency{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#070c1899}.dashboard-currency strong{color:#dfe7f3;font-size:12px}.dashboard-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.clear-btn{justify-self:end;background:#ef44441f;border:1px solid rgba(239,68,68,.4);color:#fecaca;font-size:11px;padding:6px 10px}.delete-btn{background:#e11d482e;border-color:#f8717180;color:#fecdd3}.empty-state{padding:32px;border-radius:18px;background:#0c1428bf;border:1px dashed rgba(255,255,255,.18);display:grid;gap:8px}.empty-state p{color:#9aa9bf}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.real-estate-page{display:flex;flex-direction:column;gap:24px}.real-estate-header{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}.real-estate-title{display:flex;gap:14px;align-items:flex-start}.real-estate-title-row{display:flex;align-items:center;gap:10px}.real-estate-back{width:38px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#09101ee6;color:#d4def0;display:grid;place-items:center;cursor:pointer}.real-estate-back svg{width:18px;height:18px}.real-estate-icon{width:34px;height:34px;border-radius:10px;background:#22eba01f;border:1px solid rgba(34,235,160,.4);display:grid;place-items:center;color:#2ad68d}.real-estate-icon svg{width:18px;height:18px}.real-estate-header h2{margin:0;font-size:26px}.real-estate-subtitle{margin:6px 0 0;color:#9aa9bf;font-size:14px}.real-estate-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:6px;border-radius:999px;background:#090e1ad9;border:1px solid rgba(255,255,255,.06)}.real-estate-tabs button{border-radius:999px;padding:6px 16px;border:1px solid transparent;background:transparent;color:#9fb1c7;font-size:12px;font-weight:600;cursor:pointer}.real-estate-tabs button.active{background:linear-gradient(135deg,#2ad68d,#3bbd77);border-color:transparent;color:#0b1a21;font-weight:700}.real-estate-tags{display:flex;flex-wrap:wrap;gap:12px;align-items:center;color:#9aa9bf;font-size:12px}.tag-pills{display:flex;flex-wrap:wrap;gap:8px}.tag-pills button{border-radius:999px;padding:6px 12px;border:1px solid rgba(255,255,255,.12);background:#0a1222e6;color:#d3deee;font-size:12px;cursor:pointer}.tag-pills button.active{border-color:#2ad68db3;background:#2ad68d2e;color:#7bf0c1}.real-estate-overview .summary-grid strong{font-size:20px;margin-top:6px;display:block}.stat-label{color:#8fa0ba;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.real-estate-duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}.real-estate-duo-spaced{margin-top:22px}.real-estate-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.summary-card{background:#0a101ee6;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:14px 16px}.summary-card span{color:#8fa0ba;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.summary-card strong{display:block;margin-top:6px;font-size:20px}.real-estate-reit-summary{margin-top:16px}.real-estate-panel{border-radius:18px;padding:18px;background:linear-gradient(145deg,#070e1cf2,#0c162abf);border:1px solid rgba(255,255,255,.08);display:grid;gap:16px}.real-estate-panel.rental-panel{background:linear-gradient(145deg,#061c22fa,#0c2830e6);border-color:#4de5ba47}.real-estate-panel.reit-panel{background:linear-gradient(145deg,#0c102cfa,#121a3ee6);border-color:#6ea8ff47}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.panel-title{display:flex;align-items:center;gap:10px}.panel-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#40b2ff1f;border:1px solid rgba(64,178,255,.4);color:#47b9ff}.panel-icon svg{width:16px;height:16px}.panel-header h3{margin:0;font-size:18px}.panel-header p{margin:6px 0 0;color:#93a2bb;font-size:13px}.panel-pill{background:#2ad68d26;border:1px solid rgba(42,214,141,.35);color:#7bf0c1;padding:4px 10px;border-radius:999px;font-size:10px;font-weight:600}.panel-pill-alt{background:#2a78d62e;border-color:#2a78d673;color:#8fc7ff}.panel-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.panel-stat{background:#080e1ce6;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px 14px}.panel-stat span{color:#8fa0ba;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.panel-stat strong{display:block;margin-top:6px;font-size:20px}.panel-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.06)}.panel-metrics span{color:#8fa0ba;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.panel-metrics strong{display:block;margin-top:6px;font-size:14px}.panel-empty{display:grid;gap:10px;padding:16px;border-radius:14px;border:1px dashed rgba(255,255,255,.16);color:#9aa9bf;text-align:center;background:#060c1899}.panel-empty button{justify-self:center;border-radius:999px;padding:8px 14px;border:1px solid rgba(42,214,141,.4);background:#2ad68d2e;color:#84f3c7;font-weight:600;cursor:pointer}.real-estate-table.reit-table .row{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}.real-estate-table .row div{display:grid;gap:4px}.muted{color:#92a1ba;font-size:12px}.gain{color:#44f3a5;font-weight:600}.loss{color:#f87171;font-weight:600}.real-estate-form-card{background:#080e1cbf;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:20px}.real-estate-form-card h3{margin-top:0}.real-estate-form{display:grid;gap:14px}.real-estate-form .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.real-estate-form label{display:grid;gap:6px;color:#c7d2e6;font-size:12px}.real-estate-form input,.real-estate-form select{background:#080e1ce6;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 12px;color:#e8eef9}.form-actions{display:flex;gap:10px}.form-actions button{border-radius:10px;padding:10px 16px;border:none;background:#2ad68d;color:#07131f;font-weight:700;cursor:pointer}.form-actions .secondary{background:#ffffff14;color:#e8eef9}.form-error{color:#f87171;font-size:12px}.real-estate-table .actions{display:flex;gap:8px}.real-estate-table .actions button{padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:#080e1ccc;color:#d9e2f2;cursor:pointer}.real-estate-table .actions .delete{border-color:#f8717166;color:#fecdd3;background:#f871711f}@media(max-width:900px){.real-estate-table .row{grid-template-columns:repeat(2,minmax(0,1fr))}.real-estate-header{align-items:flex-start}}.stat-card{background:#0c1428cc;border-radius:16px;padding:16px;border:1px solid rgba(255,255,255,.08);position:relative}.stat-title{display:inline-flex;align-items:center;gap:6px}.info-btn{border:1px solid rgba(255,255,255,.12);background:#080e1ccc;color:#d5deec;width:18px;height:18px;border-radius:50%;font-size:11px;line-height:1;cursor:pointer}.info-btn:hover{border-color:#ffffff4d}.stat-tooltip{position:absolute;top:42px;right:16px;max-width:260px;padding:10px 12px;border-radius:12px;background:#080c18f2;border:1px solid rgba(255,255,255,.12);color:#d6dfed;font-size:11px;line-height:1.4;white-space:pre-line;z-index:10}.stat-header{display:flex;justify-content:space-between;font-size:12px;color:#a6b3c7}.stat-card h2{font-size:26px;margin-top:10px}.stat-sub{margin-top:8px;font-size:12px;color:#a6b3c7;white-space:pre-line}.mobile-nav .sidebar{width:100%!important;max-width:100%!important;height:64px!important;max-height:64px;min-height:64px;flex-direction:row!important;align-items:center;justify-content:flex-start;padding:6px 10px;position:sticky;top:0;overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid rgba(255,255,255,.06)}.mobile-nav .sidebar.collapsed{width:100%!important}.mobile-nav .sidebar-header{padding:0;margin:0 8px 0 0;flex:0 0 auto}.mobile-nav .sidebar-brand-text{display:none!important}.mobile-nav .sidebar-logo-img{width:28px;height:28px}.mobile-nav .sidebar-nav{flex-direction:row!important;align-items:center;gap:6px;padding:0;flex:1 1 auto;overflow-x:auto;overflow-y:hidden;white-space:nowrap}.mobile-nav .sidebar-link{justify-content:center;padding:8px 12px;gap:8px;min-width:auto;flex:0 0 auto;width:auto;max-width:none;overflow:visible;white-space:nowrap}.mobile-nav .sidebar-text,.mobile-nav .wip-badge{display:inline-flex!important;font-size:12px;opacity:1!important;animation:none!important;color:#dfe7f3;font-weight:600;letter-spacing:.01em}.mobile-nav .sidebar-link.active{color:#0d1c14;background:#2ad68d33}.mobile-nav .sidebar-link.active .sidebar-text{color:#e9fff4}.mobile-nav .sidebar-icon{display:none}.mobile-nav .sidebar-toggle{justify-content:center;padding:8px;gap:0}.mobile-nav .sidebar-footer{flex-direction:row!important;align-items:center;gap:6px;padding:0 4px;margin-top:0;border-top:0;flex:0 0 auto}.mobile-nav .content-wrapper{height:auto;width:100%}.mobile-nav .top-bar{padding:10px 12px;gap:10px;flex-wrap:wrap}.mobile-nav .actions{width:100%;justify-content:space-between;gap:8px}.stat-meta{font-size:14px;font-weight:600}.stat-meta.pos{color:#2ad68d}.stat-meta.neg{color:#ff9c9c}.pos{color:#2ad68d}.neg{color:#ff9c9c}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.chart-card{background:#0c1428cc;border-radius:18px;padding:18px;border:1px solid rgba(255,255,255,.08)}.chart-card header{display:flex;justify-content:space-between;align-items:center}.chart-toggle{display:inline-flex;gap:6px;background:#080e1cb3;border-radius:999px;padding:4px;border:1px solid rgba(255,255,255,.08)}.chart-toggle button{border:none;background:transparent;color:#9aa9bf;font-size:11px;padding:6px 12px;border-radius:999px;cursor:pointer}.chart-toggle button.active{background:#2ad68dcc;color:#0a151f;font-weight:600}.chart-sub{font-size:12px;color:#9aa9bf}.chart-placeholder{margin-top:20px;height:180px;background:linear-gradient(180deg,#22a87a1a,#0810201a);border-radius:16px;position:relative;padding:18px;display:grid;align-content:start;gap:12px}.chart-line{height:2px;width:100%;background:linear-gradient(90deg,#2ad68d,#1b8af2);margin-top:70px}.chart-axis{position:absolute;bottom:16px;left:18px;right:18px;display:flex;justify-content:space-between;font-size:11px;color:#7786a1}.chart-svg{width:100%;height:110px}.chart-area{fill:#2ad68d1f}.chart-line-path{stroke-linecap:round;stroke-linejoin:round}.chart-point{fill:#2ad68d;stroke:#0c1428e6;stroke-width:2}.chart-meta{font-size:14px;font-weight:600;color:#8fa0ba;text-align:right}.donut-wrap{display:grid;place-items:center;gap:16px;margin-top:18px}.donut{width:160px;height:160px;border-radius:50%;background:conic-gradient(#2ad68d 0deg 90deg,#1b8af2 90deg 180deg,#9b5cff 180deg 270deg,#f2b441 270deg 360deg);position:relative}.donut:after{content:"";position:absolute;inset:26px;border-radius:50%;background:#0a1324}.legend{display:grid;gap:6px;font-size:12px;color:#a6b3c7}.legend span{display:flex;align-items:center;gap:6px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.bar-chart{display:grid;gap:10px;width:100%}.bar-row{display:grid;grid-template-columns:minmax(120px,1fr) 2fr auto;gap:10px;align-items:center;font-size:12px;color:#c4d0e3}.bar-track{height:8px;border-radius:999px;background:#ffffff14;overflow:hidden}.bar-fill{height:100%;border-radius:inherit}.bar-value{color:#9aa9bf}.dot.cash{background:#2ad68d}.dot.emergency{background:#1b8af2}.dot.stocks{background:#9b5cff}.dot.retire{background:#f2b441}.asset-categories h3,.institution-breakdown h3,.past-days h3{margin-bottom:12px}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.category-card{background:#0c1428cc;border-radius:16px;padding:16px;border:1px solid rgba(255,255,255,.08)}.category-head{display:flex;justify-content:space-between;font-size:12px;color:#9aa9bf}.category-card h4{margin-top:12px;font-size:22px}.tag{background:#ffffff14;padding:2px 8px;border-radius:999px;font-size:11px}.bar{margin-top:12px;height:6px;background:#ffffff14;border-radius:999px;overflow:hidden}.bar span{display:block;height:100%;background:linear-gradient(90deg,#2ad68d,#1b8af2)}.category-card p{margin-top:10px;color:#8fa0ba;font-size:12px}.institution-breakdown,.past-days{background:#091020bf;border-radius:18px;padding:18px;border:1px solid rgba(255,255,255,.08)}.portfolio-performance-card{background:#091020c7;border-radius:18px;padding:20px;border:1px solid rgba(255,255,255,.08);display:grid;gap:16px;margin-bottom:18px}.performance-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.performance-label{display:inline-flex;align-items:center;gap:8px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#88c9a5;margin-bottom:6px}.performance-header h3{margin:0;font-size:28px}.performance-header p{margin:6px 0 0;font-size:12px;color:#9aa9bf}.performance-delta{padding:6px 12px;border-radius:999px;background:#2ad68d24;color:#2ad68d;font-size:12px;font-weight:600;white-space:nowrap}.performance-delta.neg{background:#ff7b7b2e;color:#ff7b7b}.performance-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;align-items:center}.performance-metrics span{color:#9aa9bf;font-size:12px}.performance-metrics strong{display:block;margin-top:6px;font-size:18px}.performance-legend{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#9aa9bf}.performance-legend .legend-line{display:inline-flex;align-items:center;gap:8px}.performance-legend .legend-line:before{content:"";width:24px;height:2px;background:#2ad68d;border-radius:999px}.performance-legend .legend-line.invested:before{background:#7c8fb3}.performance-chart{width:100%;min-height:180px;background:linear-gradient(180deg,#060e1cb3,#060e1c26);border-radius:16px;padding:12px 8px;display:flex;align-items:center;justify-content:center}.performance-chart svg{width:100%;height:100%}.qr-float{position:fixed;right:20px;bottom:20px;z-index:2000}.qr-card{display:grid;gap:10px;padding:12px;background:#080e1aeb;border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:0 14px 30px #04081466;min-width:180px;position:relative}.qr-close{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;border:none;background:#ffffff14;color:#cbd5f0;font-size:12px;cursor:pointer}.qr-close:hover{background:#ffffff29}.qr-preview{display:grid;place-items:center;background:#ffffff0f;border-radius:12px;padding:8px;min-height:120px}.qr-preview img{width:120px;height:120px;border-radius:10px}.qr-meta strong{display:block;font-size:13px}.qr-meta span{color:#9aa9bf;font-size:12px}.qr-actions{display:flex;align-items:center;gap:8px;justify-content:space-between}.qr-share-btn{background:#2ad68d;color:#0b1220;border:none;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer}.qr-status{font-size:11px;color:#9aa9bf}.qr-toggle{width:34px;height:34px;border-radius:999px;font-size:18px;line-height:1;display:grid;place-items:center}.qr-toggle.active{background:#2ad68d26;color:#2ad68d}.qr-icon{position:relative;width:18px;height:18px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:2px;place-self:center}.qr-icon__finder{border:1.5px solid currentColor;border-radius:3px;background:transparent}.qr-icon__finder:nth-child(1){grid-column:1 / 2;grid-row:1 / 2}.qr-icon__finder:nth-child(2){grid-column:3 / 4;grid-row:1 / 2}.qr-icon__finder:nth-child(3){grid-column:1 / 2;grid-row:3 / 4}.qr-icon__dot{width:4px;height:4px;border-radius:1px;background:currentColor;align-self:center;justify-self:center}.import-section{display:grid;gap:14px}.import-header p{color:#9aa9bf;font-size:12px}.import-card{background:#0c1428d9;border-radius:18px;padding:18px;border:1px solid rgba(255,255,255,.08);display:grid;gap:14px}.import-card-head{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;cursor:pointer}.import-card-toggle{display:flex;align-items:center;gap:12px;pointer-events:none}.import-card-toggle h4,.import-card-toggle p{pointer-events:none}.import-toggle-btn{pointer-events:auto;padding:8px 14px;font-size:12px;border-radius:999px}.import-actions,.import-actions *{pointer-events:auto}.import-card-caret{font-size:12px;color:#9aa9bf}.import-card-head p{color:#9aa9bf;font-size:12px}.manual-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;align-items:end}.manual-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#9aa9bf}.manual-form input{background:#070c1899;border:1px solid rgba(255,255,255,.12);color:#dfe7f3;border-radius:8px;padding:8px 10px}.manual-preview{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#9aa9bf}.manual-preview strong{color:#e5edf8;font-size:14px}.manual-history{display:grid;gap:8px}.preview-block{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;padding:12px;border-radius:12px;background:#080e1cb3;border:1px solid rgba(255,255,255,.08);font-size:12px;color:#9aa9bf}.preview-block strong{display:block;margin-top:6px;color:#e5edf8;font-size:14px}.manual-table{display:grid;gap:6px;font-size:12px}.import-block{display:grid;gap:10px}.import-lines{display:grid;gap:6px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#080e1c99}.manual-table .row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:#080e1cb3}.manual-table .row.with-actions{grid-template-columns:repeat(4,minmax(0,1fr)) auto}.import-lines .row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:center;padding:6px 8px;border-radius:8px;background:#080e1cb3}.import-lines .row.head,.manual-table .row.head{background:transparent;color:#93a2bb;font-weight:600}.import-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.file-btn{display:inline-flex;align-items:center;border-radius:10px;padding:8px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#dfe7f3;font-size:12px;cursor:pointer}.file-btn input{display:none}.import-file{font-size:12px;color:#9aa9bf}.category-creator{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.category-creator input{border-radius:10px;padding:8px 10px;border:1px solid rgba(255,255,255,.12);background:#070c1899;color:#dfe7f3;font-size:12px}.category-list{display:flex;flex-wrap:wrap;gap:8px}.category-pill{border:1px solid rgba(239,68,68,.45);background:#ef44441f;color:#fecaca;font-size:11px;border-radius:999px;padding:6px 10px;cursor:pointer}.category-pill span{margin-left:6px}.category-settings{display:grid;gap:8px;margin-top:8px}.category-settings-note{font-size:11px;color:#9aa9bf}.category-setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:10px;background:#080e1cb3;border:1px solid rgba(255,255,255,.08);color:#dfe7f3;font-size:12px}.category-setting-toggle{display:inline-flex;align-items:center;gap:8px;color:#cbd6e5;font-size:11px}.category-setting-toggle input{accent-color:#2ad68d}.warning-box{padding:10px 12px;border-radius:12px;background:#eab3081f;border:1px solid rgba(234,179,8,.35);color:#f5d27a;font-size:12px}.warning-box ul{margin:8px 0 0 18px;padding:0}.import-preview{display:grid;gap:8px}.preview-head{display:flex;justify-content:space-between;font-size:12px;color:#9aa9bf}.preview-table{display:grid;gap:6px;font-size:12px}.preview-table .row{display:grid;grid-template-columns:1.1fr 1.2fr 1.6fr .8fr .8fr .7fr;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:#080e1cb3}.preview-table.save-ngrow .row{grid-template-columns:1.4fr .8fr .8fr .7fr .7fr .9fr}.preview-table .row.head{background:transparent;color:#93a2bb;font-weight:600}.preview-table select{background:#070c1899;border:1px solid rgba(255,255,255,.12);color:#dfe7f3;border-radius:8px;padding:6px 8px}.include-toggle{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#cbd6e5}.include-toggle input{accent-color:#22c55e}.include-static{font-size:11px;color:#516074}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.total-gains{color:#2ad68d;font-size:12px}.table{display:grid;gap:8px;font-size:12px}.table .row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:10px 12px;border-radius:12px;background:#080e1cb3}.institution-table .row{grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(0,1fr))}.institution-cell{display:inline-flex;align-items:center;gap:8px}.institution-logo{width:22px;height:22px;border-radius:6px;object-fit:contain;background:#ffffff14;padding:2px}.institution-table .row.expandable{transition:background-color .2s}.institution-table .row.expandable:hover{background:#2ad68d14}.institution-table .row.expanded{background:#2ad68d0d;border-bottom-color:transparent}.expand-icon{font-size:10px;color:#93a2bb;margin-right:4px;transition:transform .2s;min-width:14px;display:inline-block}.row.expanded .expand-icon{color:#2ad68d}.institution-table .row.child-row{background:#141e3280;border-left:2px solid #2ad68d;margin-left:8px;font-size:13px}.institution-table .row.child-row:last-of-type{border-bottom:1px solid rgba(255,255,255,.06)}.child-cell{padding-left:8px}.child-indent{width:24px;display:inline-block}.table .row.head{background:transparent;color:#93a2bb;font-weight:600}.table.compact .row{grid-template-columns:repeat(6,minmax(0,1fr))}.holdings-page{display:flex;flex-direction:column;gap:20px;overflow-x:hidden}.holdings-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.holdings-header-main{display:flex;align-items:center;gap:24px;flex:1;flex-wrap:wrap}.holdings-title-group{display:flex;align-items:center;gap:12px}.holdings-title-group h2{margin:0;font-size:24px}.holdings-subtitle-inline{color:#8fa0ba;font-size:14px;margin:0}.holdings-dashboard-tabs-inline{display:flex;gap:8px;flex-wrap:wrap}.holdings-dashboard-tabs-inline button{border:1px solid rgba(255,255,255,.12);background:#070c18b3;color:#dfe7f3;border-radius:999px;padding:8px 16px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.holdings-dashboard-tabs-inline button:hover:not(:disabled){background:#2ad68d26;border-color:#2ad68d66}.holdings-dashboard-tabs-inline button.active{background:#2ad68d33;border-color:#2ad68d;color:#2ad68d}.holdings-dashboard-tabs-inline button:disabled{opacity:.4;cursor:not-allowed}.holdings-meta{display:flex;align-items:center;gap:12px}.holdings-total{display:flex;flex-direction:column;align-items:flex-end;gap:4px;color:#8fa0ba;font-size:12px}.holdings-total strong{color:#e5eefb;font-size:18px}.holdings-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;background:#0c142899;border-radius:14px;padding:16px;border:1px solid rgba(255,255,255,.08)}.holdings-filters .filter-search{display:flex;align-items:center;gap:8px}.holdings-filters .filter-search input{flex:1}.holdings-chart{background:#091020bf;border-radius:16px;padding:16px;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:14px}.holdings-chart-header{display:flex;flex-direction:column;gap:12px}.holdings-chart-header h3{font-size:16px;margin:0}.holdings-chart-controls{display:flex;flex-direction:column;gap:12px}.holdings-chart-toggle{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#9aa9bf}.holdings-chip-row{display:flex;flex-wrap:wrap;gap:8px}.holdings-chip{border:1px solid rgba(255,255,255,.12);background:#070c18b3;color:#dfe7f3;border-radius:999px;padding:6px 12px;font-size:11px;font-weight:600;cursor:pointer}.holdings-chip.active{background:#2ad68d33;border-color:#2ad68d73;color:#2ad68d}.holdings-chart-body{background:#070c1899;border-radius:14px;padding:12px;border:1px solid rgba(255,255,255,.08);overflow-x:hidden}.holdings-chart-bars{display:flex;gap:10px;align-items:flex-start;overflow-x:auto;padding-bottom:8px}.holdings-chart-bar{min-width:42px;display:flex;flex-direction:column;align-items:center;gap:8px}.holdings-chart-bar-stack{display:flex;flex-direction:column;height:160px;width:18px}.holdings-chart-bar-pos,.holdings-chart-bar-neg{flex:1;display:flex;align-items:flex-end;justify-content:flex-start}.holdings-chart-bar-neg{align-items:flex-start}.holdings-chart-bar-fill{display:block;width:100%;border-radius:6px}.holdings-chart-bar-fill.pos{background:linear-gradient(180deg,#2ad68d,#1c8f5f)}.holdings-chart-bar-fill.neg{background:linear-gradient(180deg,#ff6b6b,#b94444)}.holdings-chart-label{font-size:10px;color:#9aa9bf;max-width:70px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.holdings-dashboard-tabs{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.holdings-dashboard-tabs button{border:1px solid rgba(255,255,255,.12);background:#080e1c99;color:#c7d3ea;padding:10px 18px;border-radius:12px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.holdings-dashboard-tabs button:hover{background:#080e1ccc;border-color:#ffffff2e}.holdings-dashboard-tabs button.active{background:#2ad68d33;color:#2ad68d;border-color:#2ad68d66}.diversification-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.diversification-tabs button{border:1px solid rgba(255,255,255,.12);background:#070c18b3;color:#dfe7f3;border-radius:999px;padding:8px 16px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.diversification-tabs button:hover:not(:disabled){background:#2ad68d26;border-color:#2ad68d66}.diversification-tabs button.active{background:#2ad68d33;border-color:#2ad68d;color:#2ad68d}.diversification-tabs button:disabled{opacity:.4;cursor:not-allowed}.diversification-container{display:grid;gap:24px}.diversification-block{background:#080e1cb3;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:20px;display:grid;gap:16px}.diversification-block-header{display:flex;flex-direction:column;gap:4px}.diversification-block-header h4{font-size:16px;font-weight:700;color:#e5eefb;margin:0}.diversification-block-header .chart-sub{font-size:12px;color:#8fa0b8;margin:0}.diversification-content{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center}.donut-chart-container{position:relative;width:200px;height:200px;display:flex;align-items:center;justify-content:center}.donut-chart{width:100%;height:100%;transform:rotate(-90deg)}.donut-center-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.donut-center-text .donut-label{font-size:11px;color:#8fa0b8;display:block}.donut-center-text .donut-value{font-size:20px;font-weight:700;color:#e5eefb;display:block}.diversification-list{display:flex;flex-direction:column;gap:12px}.diversification-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.diversification-item-label{display:flex;align-items:center;gap:10px}.diversification-color-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.diversification-item-info{display:flex;flex-direction:column;gap:2px}.diversification-item-info strong{font-size:14px;color:#e5eefb}.diversification-item-info small{font-size:11px;color:#8fa0b8}.diversification-item-value{text-align:right;display:flex;flex-direction:column;gap:2px}.diversification-item-value .percentage{font-size:16px;font-weight:700;color:#2ad68d}.diversification-item-value .amount{font-size:11px;color:#8fa0b8}.diversification-bar{grid-column:1 / -1;height:8px;background:#ffffff0d;border-radius:999px;overflow:hidden}.diversification-bar-fill{height:100%;border-radius:999px;transition:width .3s ease}@media(max-width:800px){.diversification-content{grid-template-columns:1fr}.donut-chart-container{margin:0 auto}}.filter-group{display:flex;flex-direction:column;gap:8px;color:#8fa0ba;font-size:12px}.filter-tabs{display:flex;gap:8px}.filter-tabs button{border:1px solid rgba(255,255,255,.12);background:#080e1c99;color:#c7d3ea;padding:6px 12px;border-radius:10px;font-size:12px;cursor:pointer}.filter-tabs button.active{background:#2ad68d33;color:#2ad68d;border-color:#2ad68d66}.filter-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#9aa9bf}.filter-field label{font-size:11px;color:#7f8ea7}.filter-field select,.filter-field input{background:#080e1ccc;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:8px 10px;color:#e5eefb}.holdings-table .row{grid-template-columns:minmax(180px,1.6fr) repeat(5,minmax(0,1fr)) minmax(120px,1.1fr)}.holdings-table.overall .row{grid-template-columns:minmax(180px,1.6fr) minmax(120px,.9fr) repeat(5,minmax(0,1fr)) minmax(120px,1.1fr)}.holdings-table-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.holdings-operations-table .row{grid-template-columns:minmax(110px,.8fr) minmax(120px,.8fr) minmax(120px,.8fr) minmax(220px,1.4fr) minmax(120px,.8fr) minmax(160px,1fr) minmax(160px,1fr) minmax(120px,.7fr)}.holding-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tag-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#2e384fb3;color:#c9d4e8;font-size:12px;border:1px solid rgba(72,88,122,.7)}.tag-chip.active{background:#31b97833;border-color:#31b97899;color:#d7f4e6}.tag-chip-btn{background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:0}.tag-remove-btn{background:#ff5a5a26;border:1px solid rgba(255,90,90,.5);color:#ff8c8c;border-radius:10px;width:20px;height:20px;line-height:16px;cursor:pointer}.holding-tag-panel{margin-top:16px;display:flex;flex-direction:column;gap:10px}.tag-panel-header{display:flex;justify-content:space-between;align-items:center;color:#c9d4e8;font-weight:600}.tag-input-row{display:flex;gap:12px;align-items:center}.tag-input-row input{flex:1;padding:10px 12px;border-radius:10px;border:1px solid rgba(60,74,104,.8);background:#080d1a99;color:#e6efff}.tag-message{font-size:12px;color:#79f0b3}.holding-name{display:flex;flex-direction:column;gap:4px;font-size:12px}.holding-name small{color:#8fa0ba}.holding-meta-btn{align-self:flex-start;margin-top:4px;border:1px solid rgba(255,255,255,.12);background:#070c18b3;color:#dfe7f3;border-radius:8px;padding:4px 8px;font-size:10px;cursor:pointer}.holding-meta-modal{position:fixed;inset:0;background:#02060cb3;display:flex;align-items:center;justify-content:center;z-index:50}.holding-meta-card{width:min(460px,92vw);background:#0c1428f2;border-radius:16px;padding:20px;border:1px solid rgba(255,255,255,.1);display:grid;gap:14px}.holding-meta-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.holding-meta-header h4{margin:0}.holding-meta-grid{display:grid;gap:12px}.holding-meta-grid label{display:grid;gap:6px;font-size:12px;color:#9aa9bf}.holding-meta-grid input,.holding-meta-grid select{background:#080e1ccc;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:8px 10px;color:#e5eefb}.holding-meta-actions{display:flex;justify-content:flex-end}.holding-header{display:inline-flex;align-items:center;gap:6px;position:relative}.sort-cell{display:inline-flex;align-items:center;gap:6px;cursor:pointer;width:100%;justify-content:flex-start;text-align:left}.sort-cell:hover{color:#e7f0ff}.sort-cell:focus{outline:1px solid rgba(123,160,255,.6);outline-offset:2px;border-radius:6px}.sort-arrow{font-size:10px;color:#7f8ea7}.holdings-tooltip{position:absolute;top:28px;left:0;max-width:240px;padding:10px 12px;border-radius:12px;background:#080c18f2;border:1px solid rgba(255,255,255,.12);color:#d6dfed;font-size:11px;line-height:1.4;white-space:pre-line;z-index:10}.holdings-form{background:#0c142899;border-radius:16px;padding:18px;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:12px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#9aa9bf}.field label{font-size:11px;color:#7f8ea7}.field input,.field select{background:#080e1ccc;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:8px 10px;color:#e5eefb}.form-actions{display:flex;justify-content:flex-end;gap:12px}.banking-page{display:flex;flex-direction:column;gap:24px}.banking-header h2{margin:0;font-size:22px}.banking-header p{margin:6px 0 0;color:#96a6c2}.banking-view-toggle{display:flex;gap:12px;flex-wrap:wrap}.banking-view-toggle button{border:1px solid rgba(255,255,255,.12);background:#070c18b3;color:#dfe7f3;border-radius:999px;padding:8px 18px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.banking-view-toggle button.active{background:#2ad68d33;border-color:#2ad68d;color:#2ad68d}.banking-import-card{background:#0b1426;border-radius:20px;padding:20px;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:16px}.banking-import-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.banking-import-block{display:flex;flex-direction:column;gap:12px}.banking-import-form label{display:flex;flex-direction:column;gap:8px;color:#a9bbd5;font-size:13px}.banking-import-form input,.banking-import-form textarea,.banking-import-form select{background:#0f1d36;border:1px solid rgba(255,255,255,.12);color:#e6ecf5;border-radius:12px;padding:10px 12px;font-size:14px}.banking-import-form textarea{min-height:120px;resize:vertical}.banking-actions{display:flex;gap:12px;justify-content:flex-end;align-items:flex-end}.banking-import-mode{margin-right:auto;display:flex;flex-direction:column;gap:6px;color:#a9bbd5;font-size:13px}.banking-import-mode select{background:#0f1d36;border:1px solid rgba(255,255,255,.12);color:#e6ecf5;border-radius:10px;padding:8px 12px;font-size:13px}.banking-manual{display:grid;gap:12px}.banking-manual-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.banking-manual-card{background:#0b1426e6;border-radius:20px;padding:18px;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:12px}.banking-manual-card header h3{margin:0;font-size:16px}.banking-manual-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.banking-manual-form label{display:grid;gap:6px;font-size:12px;color:#9aa9bf}.banking-manual-form input,.banking-manual-form select{background:#081020b3;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px 12px;color:#e5eefb}.banking-ocr-card{border-style:dashed}.banking-ocr-placeholder{display:grid;gap:12px;color:#9aa9bf}.banking-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.banking-summary-card{background:#0b1426;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:6px;color:#dfe7f3}.banking-summary-card span{font-size:12px;color:#93a4bf}.banking-summary-card strong{font-size:18px;font-weight:700}.banking-analytics{background:#0b1426;border-radius:20px;padding:18px;border:1px solid rgba(255,255,255,.08);display:grid;gap:12px}.banking-analytics-table .row{display:grid;grid-template-columns:1.4fr repeat(4,minmax(0,1fr));gap:12px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.06);font-size:12px}.banking-analytics-table .row.header{font-weight:600;color:#b7c7df}.banking-analytics-table .row.over{color:#ff9c9c}.banking-targets,.banking-alerts{background:#0b1426;border-radius:20px;padding:18px;border:1px solid rgba(255,255,255,.08);display:grid;gap:12px}.banking-target-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:end}.banking-target-form label{display:grid;gap:6px;font-size:12px;color:#9aa9bf}.banking-target-form input{background:#081020b3;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px 12px;color:#e5eefb}.toggle-label{display:flex;flex-direction:column;gap:6px}.banking-target-list,.banking-alert-list{display:grid;gap:10px}.banking-target-row,.banking-alert-row{display:grid;gap:12px;align-items:center;padding:12px;background:#0c1428b3;border-radius:14px;border:1px solid rgba(255,255,255,.06)}.banking-target-row{grid-template-columns:1.6fr auto}.banking-alert-row{grid-template-columns:1.4fr 1fr 1fr}.banking-target-row strong,.banking-alert-row strong{display:block;font-size:14px;color:#e5eefb}.banking-budgets{margin-top:18px;display:grid;gap:12px}.banking-budgets-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.banking-budget-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:end}.banking-budget-form label{display:grid;gap:6px;font-size:12px;color:#9aa9bf}.banking-budget-form input{background:#081020b3;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px 12px;color:#e5eefb}.banking-budget-form .primary-btn{height:40px}.banking-budget-list{display:grid;gap:10px}.banking-budget-row{display:grid;grid-template-columns:1.2fr 2fr auto;gap:12px;align-items:center;padding:12px;background:#0c1428b3;border-radius:14px;border:1px solid rgba(255,255,255,.06)}.banking-budget-row strong{display:block;font-size:14px;color:#e5eefb;margin-bottom:4px}.banking-budget-progress{display:grid;gap:6px}.bar-fill.ok{background:#2ad68d}.bar-fill.caution{background:#f2b441}.bar-fill.warn{background:#ff9c9c}.bar-fill.danger{background:#ff6b6b}.banking-preview{background:#0b1426;border-radius:20px;padding:20px;border:1px solid rgba(255,255,255,.08)}.banking-preview header h3{margin:0}.banking-preview header p{margin:4px 0 0;color:#8ea2bf}.banking-warnings{margin-top:12px;color:#f3b452;font-size:13px}.banking-warning-list{margin-top:6px;display:grid;gap:4px;color:#f3d6a0;font-size:12px}.banking-preview-table .row.preview-controls{border-bottom:none;padding:4px 0 0}.banking-preview-table .preview-toggle{display:inline-flex;justify-content:flex-start}.banking-preview-table,.banking-table{margin-top:16px;display:grid;gap:8px}.banking-preview-table .row,.banking-table .row{display:grid;grid-template-columns:40px repeat(auto-fit,minmax(120px,1fr));gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:13px}.banking-table .row{grid-template-columns:120px 1.5fr 120px 120px 1fr 1.2fr 120px 40px}.banking-category-cell{display:flex}.banking-category-cell select{background:#0f1d36;border:1px solid rgba(255,255,255,.12);color:#e6ecf5;border-radius:10px;padding:6px 8px;font-size:12px}.banking-category-cell select optgroup{color:#2ac77c;background-color:#15202b;font-weight:700}.banking-category-cell select option{color:#e6ecf5;background-color:#0f1d36}.banking-preview-table .row.header,.banking-table .row.header{font-weight:600;color:#b7c7df}.banking-preview-table select{margin-top:6px;width:100%}.banking-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:12px}.banking-filters label{display:flex;flex-direction:column;gap:6px;color:#a9bbd5;font-size:13px}.banking-filters input,.banking-filters select{background:#0f1d36;border:1px solid rgba(255,255,255,.12);color:#e6ecf5;border-radius:10px;padding:8px 10px;font-size:13px}.cockpit-page{display:grid;gap:20px}.cockpit-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;background:#0c1428bf;border-radius:18px;padding:18px;border:1px solid rgba(255,255,255,.08)}.cockpit-header p{color:#9aa9bf;font-size:12px}.cockpit-header-meta{display:flex;gap:8px;flex-wrap:wrap}.cockpit-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}.cockpit-card{background:linear-gradient(145deg,#0c1428eb,#080e1aeb);border-radius:16px;padding:14px 16px;border:1px solid rgba(255,255,255,.08);display:grid;gap:8px;box-shadow:0 12px 30px #0408144d}.cockpit-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.cockpit-title-btn{appearance:none;border:1px solid rgba(110,195,255,.25);background:#121c2d99;color:#d9ebff;font-weight:600;font-size:16px;padding:6px 12px;border-radius:999px;line-height:1;display:inline-flex;align-items:center;gap:6px;transition:border-color .2s ease,color .2s ease,background .2s ease,box-shadow .2s ease;cursor:pointer}.cockpit-title-btn:hover{color:#fff;border-color:#6ec3ff99;background:#1e406973;box-shadow:0 6px 16px #0f5ab426}.cockpit-title-btn:focus-visible{outline:2px solid rgba(110,195,255,.6);outline-offset:2px}.cockpit-performance{grid-column:span 8;min-height:280px}.cockpit-subportfolios,.cockpit-subportfolios-summary{grid-column:span 4;min-height:280px}.cockpit-summary,.cockpit-budget,.cockpit-realestate{grid-column:span 4;min-height:160px}.cockpit-summary header h3{font-size:18px;color:#e6f2ff;margin:0}.cockpit-dividends{margin-top:12px;display:grid;gap:8px}.cockpit-dividends-header{display:flex;justify-content:space-between;font-size:12px;color:#9fb1d6}.cockpit-mini-bars{display:flex;align-items:flex-end;gap:8px}.cockpit-mini-bar{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;color:#7f92b2}.cockpit-mini-fill{width:10px;background:linear-gradient(180deg,#2ad68d,#1aa36d);border-radius:6px;transition:height .3s ease}.cockpit-summary .cockpit-metric{font-size:13px}.cockpit-summary .cockpit-metric span{color:#90a3c2}.cockpit-summary .cockpit-metric strong{font-size:18px;letter-spacing:.01em}.cockpit-summary .cockpit-metric strong.pos{color:#2ad68d}.cockpit-summary .cockpit-metric strong.neg{color:#ff7b7b}.cockpit-budget{display:grid;gap:12px}.cockpit-budget-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.cockpit-budget-header h3{margin:0;font-size:18px;color:#e6f2ff}.budget-status-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;background:#2ad68d1f;color:#2ad68d}.budget-status-chip.warn{background:#f2b4412e;color:#f2b441}.budget-status-chip.danger{background:#ff7b7b2e;color:#ff7b7b}.budget-summary-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.budget-summary-item span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8fa3c7}.budget-summary-item strong{display:block;font-size:18px;color:#e6f2ff}.budget-summary-item strong.neg{color:#ff7b7b}.budget-summary-item strong.pos{color:#2ad68d}.budget-progress{display:grid;gap:8px}.budget-progress-track{width:100%;height:8px;background:#ffffff14;border-radius:999px;overflow:hidden}.budget-progress-fill{height:100%;background:#2ad68d;border-radius:999px;transition:width .3s ease}.budget-progress-fill.warn{background:#f2b441}.budget-progress-fill.danger{background:#ff7b7b}.budget-progress-label{font-size:12px;color:#9aa9bf}.budget-forecast{display:grid;gap:6px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08)}.budget-forecast-row{display:flex;justify-content:space-between;font-size:12px;color:#9aa9bf}.budget-forecast-row strong{color:#e6f2ff}.budget-forecast-note{margin:0;font-size:12px;color:#8fa3c7}.budget-forecast-note.over{color:#ff7b7b}.budget-forecast-note.under{color:#2ad68d}.cockpit-budget-loading{display:flex;align-items:center;gap:10px;color:#9aa9bf;font-size:12px}.budget-spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:#2ad68d;animation:budget-spin 1s linear infinite}@keyframes budget-spin{to{transform:rotate(360deg)}}.cockpit-budget-layout{display:grid;gap:12px}.cockpit-budget-chart{display:flex;align-items:center;gap:16px}.cockpit-donut{width:96px;height:96px;position:relative;display:grid;place-items:center}.cockpit-donut svg{width:100%;height:100%;transform:rotate(-90deg)}.cockpit-donut .donut-bg{stroke:#ffffff14}.cockpit-donut .donut-fill{stroke:#2ad68d;stroke-linecap:round;transition:stroke-dasharray .4s ease}.cockpit-donut .donut-fill.warn{stroke:#f2b441}.cockpit-donut .donut-fill.danger{stroke:#ff7b7b}.cockpit-donut-label{position:absolute;inset:0;display:grid;place-items:center;text-align:center;font-size:11px;color:#9aa9bf}.cockpit-donut-label strong{font-size:16px;color:#e6f2ff}.cockpit-budget-values{display:grid;gap:6px;font-size:12px;color:#9aa9bf}.cockpit-budget-values strong{display:block;color:#e6f2ff;font-size:14px}.cockpit-budget-progress{display:grid;gap:6px}.cockpit-budget-progress-meta{display:flex;justify-content:space-between;font-size:11px;color:#9aa9bf}.cockpit-budget-forecast{display:grid;gap:8px;margin-top:6px}.cockpit-budget-forecast-title{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#7f91ad}.cockpit-budget-forecast-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:12px;color:#9aa9bf}.cockpit-budget-forecast-row strong{color:#e6f2ff;font-size:13px}.forecast-bar{height:6px;background:#ffffff14;border-radius:999px;overflow:hidden}.forecast-bar span{display:block;height:100%;background:#2ad68d;border-radius:999px}.forecast-bar span.forecast-over{background:#f2b441}.cockpit-budget-actions{display:flex;justify-content:flex-start}.cockpit-budget-empty{display:grid;place-items:center;gap:10px;text-align:center;color:#9aa9bf}.cockpit-budget-empty .secondary-btn{font-size:.85rem;padding:.5rem 1rem}.cockpit-debt{grid-column:span 4;min-height:160px}.debt-summary-card{display:flex;flex-direction:column;gap:16px;padding:4px 0}.debt-summary-card header{display:flex;justify-content:space-between;align-items:flex-start}.debt-summary-title{display:flex;align-items:center;gap:12px}.debt-summary-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#2ad68d26;font-size:18px}.debt-summary-name{font-weight:600;font-size:15px;color:#fff}.debt-summary-subtitle{font-size:12px;color:#9aa9bf}.debt-summary-details{display:flex;gap:32px}.debt-summary-label{font-size:11px;color:#9aa9bf;margin-bottom:4px;text-transform:uppercase;letter-spacing:.05em}.debt-summary-value{font-size:22px;font-weight:700;color:#fff}.debt-summary-progress{display:flex;flex-direction:column;gap:8px}.debt-summary-bar-bg{height:6px;border-radius:3px;background:#ffffff1a;overflow:hidden}.debt-summary-bar{height:100%;border-radius:3px;background:linear-gradient(90deg,#4dabf7,#2ad68d);transition:width .4s ease}.debt-summary-progress-labels{display:flex;justify-content:space-between;font-size:12px;color:#9aa9bf}.debt-summary-footer{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid rgba(255,255,255,.08);font-size:13px;color:#9aa9bf}.debt-summary-payoff{font-weight:600;color:#4dabf7}.cockpit-fire{grid-column:span 8;min-height:160px}.cockpit-fire-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.fire-title{display:flex;gap:12px;align-items:center}.fire-icon{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:#ff7a452e;color:#ff7a45;font-size:18px}.fire-status{display:inline-flex;align-items:center;gap:6px;color:#9aa9bf;font-size:12px}.fire-status-dot{width:6px;height:6px;border-radius:999px;background:#2ad68d;box-shadow:0 0 8px #2ad68d99}.cockpit-fire-layout{display:grid;grid-template-columns:1fr 1.6fr;gap:18px;margin-top:12px}.fire-stats{display:grid;gap:10px}.fire-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#7c8aa5}.fire-age{display:flex;align-items:baseline;gap:8px;color:#ff7a45}.fire-age strong{font-size:48px;line-height:1}.fire-age span{font-size:14px;color:#f2a069}.fire-countdown{display:grid;gap:4px;font-size:13px;color:#dfe7f3}.fire-countdown span{color:#9aa9bf;font-size:12px}.fire-progress-meta{display:flex;justify-content:space-between;color:#9aa9bf;font-size:11px}.fire-progress-track{height:8px;border-radius:999px;background:#080e18b3;border:1px solid rgba(255,255,255,.08);overflow:hidden}.fire-progress-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#ff7a45,#ffb37b)}.fire-chart{background:#080e1859;border-radius:16px;padding:10px}.fire-chart svg{width:100%;height:100%;min-height:180px}.fire-line{fill:none;stroke-width:3}.fire-line-blue{stroke:#3a7bff;filter:drop-shadow(0 0 10px rgba(58,123,255,.35))}.fire-line-green{stroke:#2ad68d;filter:drop-shadow(0 0 10px rgba(42,214,141,.35))}.debt-page{display:grid;gap:20px}.debt-header h2{margin:0;font-size:22px}.debt-header p{margin:6px 0 0;color:#96a6c2}.debt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.debt-card{background:#0c1428d9;border-radius:18px;padding:18px;border:1px solid rgba(255,255,255,.08);display:grid;gap:12px}.debt-card header h3{margin:0}.debt-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.debt-preview span{display:block;font-size:11px;color:#9aa9bf}.debt-preview strong{font-size:14px}.debt-table-wrapper{width:100%;overflow-x:auto}.debt-table{width:100%;border-collapse:collapse;font-size:12px}.debt-table th,.debt-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left}.debt-table th{font-size:11px;text-transform:uppercase;color:#7f8ea7;letter-spacing:.08em}.debt-actions{display:flex;gap:8px;justify-content:flex-end}.cockpit-kicker{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:#7ddfbb;margin-bottom:6px}.cockpit-delta{text-align:right;font-size:11px;color:#9aa9bf;display:grid;gap:6px;background:#0b1824cc;border-radius:999px;padding:10px 14px;border:1px solid rgba(45,214,141,.2)}.cockpit-delta strong{font-size:14px}.cockpit-chart{width:100%;height:180px;margin:4px 0 8px;background:linear-gradient(180deg,#080e184d,#080e1800);border-radius:14px;padding:8px}.cockpit-chart .chart-area{fill:#2ad68d29}.cockpit-chart .chart-line-path{filter:drop-shadow(0 0 8px rgba(42,214,141,.3))}.cockpit-category-bars{display:grid;gap:12px;margin:10px 0 6px}.cockpit-category-header{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#9aa9bf}.cockpit-category-row{display:grid;gap:6px}.cockpit-category-label{display:flex;justify-content:space-between;font-size:13px;color:#dfe7f3}.cockpit-category-track{position:relative;height:10px;border-radius:999px;background:#080e18b3;border:1px solid rgba(255,255,255,.08);overflow:hidden}.cockpit-category-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#2ad68d,#4dabf7)}.cockpit-category-percent{position:absolute;right:8px;top:-18px;font-size:10px;color:#9aa9bf}.cockpit-list{display:grid;gap:10px}.cockpit-list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:#080e1cb3;border:1px solid rgba(255,255,255,.06)}.cockpit-list-row strong{display:block;font-size:13px}.cockpit-list-row span{display:block;font-size:12px;color:#9aa9bf}.subportfolio-list .cockpit-list-row{background:#0a101ebf;border:1px solid rgba(255,255,255,.08)}.subportfolio-list .cockpit-list-row strong{font-size:15px;text-transform:uppercase;letter-spacing:.05em}.subportfolio-list .cockpit-list-row span{font-size:13px}.subportfolio-trend{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;letter-spacing:.01em}.subportfolio-trend .trend-arrow{font-size:14px}.subportfolio-list .subportfolio-trend.pos{color:#2ad68d}.subportfolio-list .subportfolio-trend.neg{color:#ff7b7b}.subportfolio-list .cockpit-list-metric{gap:2px}.subportfolio-list .cockpit-list-row strong+span{font-size:11px;color:#8fa0ba}.cockpit-item-title{display:flex;align-items:center;gap:10px}.cockpit-icon{width:28px;height:28px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:#121c2cb3;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 0 12px #0000004d}.cockpit-icon.rental-icon{background:linear-gradient(135deg,#4478ffe6,#2745b4e6)}.cockpit-icon.reit-icon{background:linear-gradient(135deg,#9b52ffe6,#6128a8e6)}.cockpit-icon img{width:16px;height:16px;object-fit:contain;filter:brightness(1.2)}.cockpit-list-metric{text-align:right;display:grid;gap:4px;font-size:12px}.cockpit-metric{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#9aa9bf}.cockpit-metric strong{color:#dfe7f3;font-size:14px}.cockpit-progress{display:grid;gap:6px}.cockpit-fire-progress{display:grid;gap:8px}.fire-track{position:relative;overflow:hidden}.fire-track .bar-fill{position:absolute;height:100%;left:0;top:0}.fire-track .fire-coast{background:linear-gradient(90deg,#2ad68de6,#2ad68d8c)}.fire-track .fire-target{background:linear-gradient(90deg,#ff7676e6,#ff767666)}.fire-meta{display:flex;justify-content:space-between;font-size:11px;color:#9aa9bf}.cockpit-income-box{background:#080e1cbf;border:1px solid rgba(42,214,141,.25);border-radius:12px;padding:12px;text-align:center;display:grid;gap:4px}.cockpit-income-box strong{color:#2ad68d;font-size:22px}.realestate-list{gap:12px}.realestate-row{padding:12px 14px;background:#070c18cc;border:1px solid rgba(255,255,255,.08)}.realestate-row .cockpit-item-title strong{font-size:13px;color:#e6efff}.realestate-row .cockpit-item-title span{font-size:11px;color:#8fa0ba}.realestate-row .cockpit-list-metric{font-size:12px}.realestate-amount{color:#2ad68d;font-weight:700;font-size:12px}.view-details-link{text-align:center;margin-top:12px;color:#2ad68d;font-size:13px;font-weight:500;cursor:pointer;transition:opacity .2s}.view-details-link:hover{opacity:.8}.cockpit-icon svg{color:#2ad68d}.rental-icon svg{color:#2ad68d}.reit-icon svg{color:#2ad68d}.cockpit-debt-card{background:#080e1cbf;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:12px;display:grid;gap:8px}.cockpit-debt-card .debt-header strong{display:block;font-size:14px}.cockpit-debt-card .debt-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cockpit-debt-card .debt-metric span{display:block;font-size:11px;color:#8fa0b8}.cockpit-debt-card .debt-metric strong{display:block;font-size:15px;color:#dfe7f3}.debt-progress .debt-meta{display:flex;justify-content:space-between;font-size:11px;color:#8fa0b8}@media(max-width:1000px){.top-bar{flex-direction:column;align-items:flex-start}.actions{width:100%;justify-content:flex-start}.login-page{grid-template-columns:1fr}.login-cta{flex-direction:column;align-items:flex-start}.table .row,.table.compact .row{grid-template-columns:repeat(2,minmax(0,1fr))}.preview-table .row,.cockpit-grid{grid-template-columns:1fr}.cockpit-performance,.cockpit-subportfolios,.cockpit-summary,.cockpit-budget,.cockpit-realestate,.cockpit-debt,.cockpit-fire{grid-column:span 1}.cockpit-fire-layout{grid-template-columns:1fr}}@media(max-width:720px){.nav{width:100%;overflow-x:auto}.portfolio-strip{flex-wrap:wrap}.hero-brand img{width:86px;height:86px}}.admin-backoffice{display:flex;flex-direction:column;gap:24px}.admin-header{display:flex;flex-direction:column;gap:8px}.admin-header h2{font-size:28px;font-weight:700;margin:0;color:#e5eefb}.admin-header p{color:#8fa0ba;font-size:14px;margin:0}.admin-tabs{display:flex;gap:8px;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:8px}.admin-tabs button{padding:10px 20px;background:transparent;border:none;color:#8fa0ba;font-size:14px;font-weight:600;cursor:pointer;border-radius:8px;transition:all .2s ease;position:relative}.admin-tabs button:hover{background:#2ad68d1a;color:#2ad68d}.admin-tabs button.active{color:#2ad68d;background:#2ad68d26}.admin-tabs button.active:after{content:"";position:absolute;bottom:-9px;left:0;right:0;height:2px;background:#2ad68d}.excel-ticker-list{background:#0c142899;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.08)}.excel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:16px;flex-wrap:wrap}.excel-header strong{color:#e5eefb;font-size:14px}.ticker-chips{display:flex;flex-wrap:wrap;gap:8px}.ticker-chip{background:#2ad68d26;border:1px solid rgba(42,214,141,.3);color:#2ad68d;padding:4px 12px;border-radius:16px;font-size:12px;font-weight:600;font-family:Courier New,monospace}.admin-section{background:#091020bf;border-radius:16px;padding:20px;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:16px}.admin-section h3{font-size:18px;font-weight:700;color:#e5eefb;margin:0}.admin-summary-section{background:linear-gradient(135deg,#2ad68d14,#091020bf)}.admin-summary-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.admin-summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:16px}.admin-summary-card{background:#0c142899;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px}.summary-label{font-size:12px;font-weight:600;color:#8fa0ba;text-transform:uppercase;letter-spacing:.5px}.summary-value{font-size:24px;font-weight:700;color:#2ad68d}.admin-section-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-form{display:flex;flex-direction:column;gap:12px}.admin-form-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;align-items:center}.admin-form input,.admin-form select{background:#0c1428cc;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:10px 14px;color:#dfe7f3;font-size:14px}.admin-textarea{background:#0c1428cc;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:12px 14px;color:#dfe7f3;font-size:13px;font-family:Courier New,monospace;resize:vertical;min-height:150px}.admin-search-form{display:flex;gap:8px;align-items:center}.admin-search-form input{background:#0c1428cc;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:8px 12px;color:#dfe7f3;font-size:14px;min-width:200px}.admin-table-container{overflow-x:auto;border-radius:8px;border:1px solid rgba(255,255,255,.08)}.admin-table{width:100%;border-collapse:collapse;background:#060a1499}.admin-table thead{background:#0c1428cc}.admin-table th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;color:#8fa0ba;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.08)}.admin-table .sort-btn{background:transparent;border:0;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;padding:0}.admin-table .sort-btn:hover{color:#a7c5e6}.admin-table td{padding:12px 16px;font-size:14px;color:#dfe7f3;border-bottom:1px solid rgba(255,255,255,.04)}.admin-table tbody tr:hover{background:#2ad68d0d}.delete-btn-small{border:1px solid rgba(255,107,107,.4);background:#ff6b6b1a;color:#ff6b6b;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.delete-btn-small:hover{background:#ff6b6b33;border-color:#ff6b6b}.api-provider-card{background:#091020d9;border:1px solid rgba(255,255,255,.12)}.api-provider-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.api-provider-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.badge-active{background:#2ad68d33;border:1px solid #2ad68d;color:#2ad68d;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.badge-free{background:#4a90e233;border:1px solid #4a90e2;color:#4a90e2;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.api-provider-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:16px;padding:16px;background:#060a1499;border-radius:8px}.api-detail-item{display:flex;flex-direction:column;gap:4px}.api-detail-item strong{color:#8fa0ba;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.api-detail-item span{color:#e5eefb;font-size:14px}.status-ok{color:#2ad68d!important}.status-error{color:#ff6b6b!important}.api-config-hint{margin-top:16px;padding:12px 16px;background:#ffa5001a;border:1px solid rgba(255,165,0,.3);border-radius:8px}.api-config-hint strong{color:orange;display:block;margin-bottom:8px}.api-config-hint p{color:#dfe7f3;font-size:13px;margin:0;line-height:1.6}.api-config-hint code{background:#0c1428cc;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:12px;color:#2ad68d}.current-provider-badge{padding:12px 16px;background:#2ad68d26;border:1px solid rgba(42,214,141,.3);border-radius:8px;color:#e5eefb;font-size:14px}.current-provider-badge strong{color:#2ad68d;margin-right:8px}.config-instructions{display:flex;flex-direction:column;gap:12px}.config-instructions p{margin:0;color:#dfe7f3;font-size:14px}.config-instructions code{background:#0c1428cc;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:12px;color:#2ad68d}.config-example{background:#060a14cc;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:16px;color:#dfe7f3;font-family:Courier New,monospace;font-size:13px;overflow-x:auto;white-space:pre;margin:0}@media(max-width:768px){.admin-form-row{grid-template-columns:1fr}.admin-section-header{flex-direction:column;align-items:stretch}.admin-search-form{flex-direction:column}.admin-search-form input{min-width:100%}.api-provider-header{flex-direction:column}.api-provider-details{grid-template-columns:1fr}}.inst-search-input{width:100%;box-sizing:border-box;padding:10px 14px;background:#0c122099;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#dfe7f3;margin-bottom:8px}.inst-search-input:focus{outline:none;border-color:#3b82f6;background:#0c1220cc}.inst-list{max-height:240px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;padding-right:4px}.inst-list-loading,.inst-list-empty{padding:16px;text-align:center;color:#9aa9bf;font-size:13px}.inst-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:8px;background:#ffffff08;border:1px solid transparent;width:100%;text-align:left;cursor:pointer;transition:all .2s;color:#e2e8f0}.inst-item:hover{background:#ffffff0f}.inst-item.selected{background:#3b82f626;border-color:#3b82f666}.inst-logo{width:32px;height:32px;flex-shrink:0;background:#1e293b;border-radius:6px;display:grid;place-items:center;overflow:hidden}.inst-logo img{width:100%;height:100%;object-fit:contain}.inst-logo span{font-weight:700;color:#94a3b8;text-transform:uppercase}.inst-info{flex:1;display:flex;flex-direction:column}.inst-info strong{font-size:14px;font-weight:500}.inst-check{color:#3b82f6;font-weight:700}.real-estate-table.rental-table .row{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
