*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}.app{min-height:100%;display:flex;align-items:flex-start;justify-content:center;padding:2.5rem 1rem;font-family:Inter,system-ui,-apple-system,sans-serif;background:linear-gradient(135deg,#0f0c29,#302b63,#24243e)}.card{width:min(1066px,96vw);background:#ffffff0f;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.12);border-radius:24px;padding:2.4rem 2rem;display:flex;flex-direction:column;gap:1.4rem;box-shadow:0 24px 64px #00000073}.auth-card{width:min(480px,96vw)}.auth-session-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.78rem;color:#ffffff8c}.session-actions{display:flex;align-items:center;gap:.45rem}.auth-signout{padding:.35rem .75rem;border-radius:999px;border:1px solid rgba(248,113,113,.35);background:#f871711f;color:#f87171eb;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.auth-signout:hover{background:#f8717140;color:#fff}.settings-icon-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(255,255,255,.25);background:#ffffff17;color:#fffc;cursor:pointer}.settings-icon-btn:hover{background:#a78bfa33;color:#fff}.auth-nav{border-color:#ffffff3d;background:#ffffff14;color:#ffffffbf}.auth-nav:hover{background:#ffffff24}.auth-nav--active,.auth-nav--active:hover{background:#a78bfa47;border-color:#a78bfa80;color:#fff}.settings-header h2{margin:0;font-size:1.3rem;color:#fff}.settings-form{display:flex;flex-direction:column;gap:.5rem}.settings-form label{font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#ffffff80}.settings-form input{padding:.78rem .92rem;background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:12px;color:#fff;font-size:.95rem;font-family:inherit;outline:none}.settings-form input:focus{border-color:#a78bfab3;box-shadow:0 0 0 3px #a78bfa2e}.privacy-banner,.privacy-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:.9rem 1rem}.privacy-banner p,.privacy-card p{margin:.4rem 0 0;color:#ffffffb3;font-size:.85rem;line-height:1.45}.privacy-actions{margin-top:.75rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.auth-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.auth-tab{border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:#fff9;border-radius:10px;padding:.55rem .7rem;font-size:.8rem;font-weight:600;cursor:pointer}.auth-tab--active{background:#a78bfa47;color:#fff;border-color:#a78bfa80}.auth-form{display:flex;flex-direction:column;gap:.5rem}.auth-form label{font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#ffffff80}.auth-form input{padding:.78rem .92rem;background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:12px;color:#fff;font-size:.95rem;font-family:inherit;outline:none}.auth-form input:focus{border-color:#a78bfab3;box-shadow:0 0 0 3px #a78bfa2e}.auth-consent{display:flex;align-items:flex-start;gap:.5rem;font-size:.82rem;color:#ffffffbf;text-transform:none;letter-spacing:0}.auth-consent input{margin-top:.15rem}.inline-link-btn{border:none;background:transparent;color:#93c5fd;text-decoration:underline;padding:0;font:inherit;cursor:pointer}.auth-submit{margin-top:.4rem;border:1px solid rgba(167,139,250,.55);background:linear-gradient(120deg,#a78bfa8c,#3b82f68c);color:#fff;border-radius:12px;padding:.78rem .95rem;font-weight:700;cursor:pointer}.auth-submit:disabled{cursor:not-allowed;opacity:.65}.auth-message{margin:0;font-size:.82rem;line-height:1.4}.auth-message p{margin:.35rem 0 0}.auth-message--error{color:#fca5a5}.auth-message--ok{color:#6ee7b7}.auth-message--warning{color:#fde68a;background:#fbbf241a;border:1px solid rgba(251,191,36,.3);padding:.75rem .9rem;border-radius:12px}.auth-guest-link{text-align:center;margin:1rem 0 0}.auth-guest-btn{background:none;border:none;color:#ffffff73;font-size:.82rem;cursor:pointer;text-decoration:underline;padding:0}.auth-guest-btn:hover{color:#fffc}.card-footer{border-top:1px solid rgba(255,255,255,.12);padding-top:.9rem;margin-top:.2rem}.footer-link{border:none;background:transparent;padding:0;color:#ffffffb8;text-decoration:underline;font-size:.84rem;cursor:pointer}.footer-link:hover{color:#fff}.policy-card{width:min(860px,96vw)}.policy-section{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:.9rem 1rem}.policy-section h2{margin:0;color:#ffffffe6;font-size:1.02rem}.policy-section p{margin:.55rem 0 0;color:#ffffffb8;line-height:1.55;font-size:.92rem}.card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.card h1{margin:0 0 .2rem;font-size:1.9rem;font-weight:700;color:#fff;letter-spacing:-.02em}.card .subtitle{margin:0;font-size:.88rem;color:#ffffff73}.cloud-sync-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .7rem;border-radius:999px;font-size:.75rem;font-weight:500;border:1px solid transparent;width:fit-content}.cloud-sync-badge--loading,.cloud-sync-badge--saving{color:#fff9;background:#ffffff12;border-color:#ffffff1f}.cloud-sync-badge--saved{color:#6ee7b7;background:#6ee7b71a;border-color:#6ee7b740}.cloud-sync-badge--error{color:#fca5a5;background:#fca5a51a;border-color:#fca5a540}.cloud-sync-badge--local{color:#fde68a;background:#fbbf241f;border-color:#fbbf2440}@keyframes spin{to{transform:rotate(360deg)}}.cloud-sync-badge__spinner{animation:spin 1s linear infinite;transform-origin:center}.lang-switch{padding:.35rem .85rem;background:#ffffff14;border:1px solid rgba(255,255,255,.18);border-radius:999px;font-family:inherit;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:#ffffffb3;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.lang-switch:hover{background:#a78bfa2e;border-color:#a78bfa80;color:#fff}.controls{display:flex;align-items:center;gap:.6rem;flex-shrink:0;margin-top:.25rem}.period-toggle{display:flex;background:#ffffff0f;border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:3px;gap:2px}.period-toggle__btn{padding:.28rem .75rem;border:none;border-radius:999px;font-family:inherit;font-size:.75rem;font-weight:600;letter-spacing:.03em;color:#ffffff73;background:transparent;cursor:pointer;transition:background .18s,color .18s}.period-toggle__btn--active{background:#a78bfa47;color:#fff}.period-toggle__btn:not(.period-toggle__btn--active):hover{color:#ffffffbf}.field{display:flex;flex-direction:column;gap:.45rem}.field label{font-size:.78rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#ffffff8c}.field input{padding:.8rem 1rem;background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:12px;font-size:1rem;font-family:inherit;font-weight:500;color:#fff;outline:none;transition:border-color .2s,background .2s,box-shadow .2s;-moz-appearance:textfield}.field input::placeholder{color:#ffffff40}.field input::-webkit-inner-spin-button,.field input::-webkit-outer-spin-button{-webkit-appearance:none}.field input:focus{border-color:#a78bfab3;background:#ffffff1f;box-shadow:0 0 0 3px #a78bfa2e}.divider{height:1px;background:#ffffff1a;border:none;margin:0}.cashflow-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 480px){.cashflow-grid{grid-template-columns:1fr}}.section-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#fff6}.entries-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem}@media (max-width: 560px){.entries-grid{grid-template-columns:1fr}}.entry-section{display:flex;flex-direction:column;gap:.6rem}.entry-section__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.entry-empty{margin:.2rem 0 0;font-size:.8rem;color:#ffffff40;font-style:italic}.entry-list{display:flex;flex-direction:column;gap:.45rem}.entry-row{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:.4rem;align-items:center}.entry-input{padding:.55rem .65rem;background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:10px;font-size:.88rem;font-family:inherit;font-weight:500;color:#fff;outline:none;min-width:0;transition:border-color .2s,background .2s,box-shadow .2s;-moz-appearance:textfield}.entry-input::placeholder{color:#fff3}.entry-input::-webkit-inner-spin-button,.entry-input::-webkit-outer-spin-button{-webkit-appearance:none}.entry-input:focus{border-color:#a78bfa99;background:#ffffff1c;box-shadow:0 0 0 3px #a78bfa26}.add-btn{padding:.3rem .7rem;background:#a78bfa1f;border:1px solid rgba(167,139,250,.3);border-radius:999px;font-family:inherit;font-size:.75rem;font-weight:600;color:#a78bfae6;cursor:pointer;white-space:nowrap;transition:background .2s,color .2s}.add-btn:hover{background:#a78bfa40;color:#fff}.add-btn:disabled,.remove-btn:disabled,.period-toggle__btn:disabled,.auth-signout:disabled{opacity:.5;cursor:not-allowed}.remove-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:#f871711a;border:1px solid rgba(248,113,113,.25);border-radius:8px;font-size:1rem;line-height:1;color:#f87171b3;cursor:pointer;flex-shrink:0;transition:background .2s,color .2s}.remove-btn:hover{background:#f8717140;color:#fff}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.summary-stat{display:flex;flex-direction:column;gap:.25rem;padding:.8rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:12px}.summary-stat__label{font-size:.72rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#ffffff59}.summary-stat__value{font-size:1.05rem;font-weight:700;color:#ffffffbf}.summary-stat__value--positive{color:#34d399}.summary-stat__value--negative{color:#f87171}.result{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem;border-radius:14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);transition:background .3s,border-color .3s}.result__label{font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#ffffff73}.result__value{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;color:#ffffff80;transition:color .3s}.result--positive{background:#34d3991a;border-color:#34d3994d}.result--positive .result__value{color:#34d399}.result--negative{background:#f871711a;border-color:#f871714d}.result--negative .result__value{color:#f87171}@media (max-width: 640px){.auth-session-row{flex-direction:column;align-items:flex-start}.session-actions{width:100%;flex-wrap:wrap}}.networth-chart{display:flex;flex-direction:column;gap:.6rem}.networth-chart__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.networth-chart__nw-value{font-size:.8rem;font-weight:600;color:#fff9}.networth-chart__inner{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:1rem 1rem .8rem;display:flex;flex-direction:column;gap:.75rem;overflow:hidden}.networth-chart__bars{display:flex;align-items:stretch;gap:3px;height:175px;overflow:visible}.networth-chart__col{flex:1;display:flex;flex-direction:column;min-width:0}.networth-chart__bar-area{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative;min-height:0;overflow:visible}.networth-chart__bar{width:100%;border-radius:3px 3px 0 0;background:#a78bfa33;transition:height .5s ease}.networth-chart__bar--user{background:#a78bfae0;box-shadow:0 0 16px #a78bfa80,0 0 5px #a78bfa4d}.networth-chart__you-pin{position:absolute;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none;z-index:1}.networth-chart__you-text{font-size:.6rem;font-weight:800;color:#a78bfa;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap}.networth-chart__you-arrow{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #a78bfa}.networth-chart__x-label{height:50px;width:100%;overflow:visible;display:flex;justify-content:center;padding-top:5px}.networth-chart__x-label span{display:block;font-size:.58rem;color:#ffffff61;white-space:nowrap;transform:rotate(-40deg);transform-origin:top center}.networth-chart__col--user .networth-chart__x-label span{color:#a78bfad9;font-weight:700}.networth-chart__summary{margin:0;font-size:.85rem;color:#ffffffbf;font-weight:500}.networth-chart__source{margin:0;font-size:.7rem;color:#ffffff47}@media (max-width: 480px){.networth-chart__x-label span{font-size:.52rem}}
