*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background:linear-gradient(135deg,#0f0c29,#302b63,#24243e);min-height:100vh;color:#e8e8f0;padding:20px}input,button,select{font-family:inherit}.container{max-width:1100px;margin:0 auto;position:relative}.navbar{display:flex;align-items:center;gap:16px;padding:20px 0 24px}.nav-left{display:flex;align-items:center;flex:0 0 auto}.nav-center{flex:1 1 auto;display:flex;justify-content:center}.nav-right{display:flex;align-items:center;gap:10px;flex:0 0 auto}.nav-logo{height:160px;width:auto;display:block;margin:-38px 0}.nav-btn{background:transparent;border:1px solid rgba(255,255,255,.2);color:#a0a0b8;padding:10px 18px;border-radius:12px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.nav-btn:hover{color:#e8e8f0;border-color:#fff6}.nav-btn.active{background:linear-gradient(135deg,#a78bfa,#60a5fa);color:#fff;border-color:transparent}.nav-btn-primary{background:linear-gradient(135deg,#34d399,#059669);border-color:transparent;color:#fff;font-weight:600}.nav-btn-primary:hover{opacity:.85;border-color:transparent;color:#fff}.nav-btn-danger:hover{border-color:#ef4444;color:#ef4444}@media (max-width: 900px){.navbar{flex-wrap:wrap;justify-content:center}.nav-center{order:3;flex-basis:100%}.nav-right{margin-left:auto}}.month-tip{background:linear-gradient(135deg,#a78bfa26,#60a5fa26);border:1px solid rgba(167,139,250,.3);border-radius:12px;padding:12px 24px;font-size:.95rem;color:#c4b5fd;font-style:italic;display:inline-block;margin-top:8px}.month-selector{display:flex;justify-content:center;align-items:center;gap:16px;margin:30px 0;flex-wrap:wrap}.month-selector select{background:#ffffff14;border:1px solid rgba(255,255,255,.2);color:#e8e8f0;padding:12px 20px;border-radius:12px;font-size:1rem;cursor:pointer;outline:none}.month-selector select option{background:#302b63}.save-indicator{font-size:.88rem;font-weight:500;min-width:140px;padding:6px 12px;border-radius:999px;text-align:center;transition:opacity .2s,background .2s}.save-indicator-idle{background:transparent;color:transparent}.save-indicator-saving{background:#a78bfa26;color:#c4b5fd;border:1px solid rgba(167,139,250,.35)}.save-indicator-saved{background:#34d39926;color:#6ee7b7;border:1px solid rgba(52,211,153,.35)}.save-indicator-error{background:#ef444426;color:#fca5a5;border:1px solid rgba(239,68,68,.35)}.print-btn{background:linear-gradient(135deg,#34d399,#059669);border:none;color:#fff;padding:12px 28px;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s}.print-btn:hover{opacity:.85}.logout-btn{background:transparent;border:1px solid rgba(255,255,255,.2);color:#a0a0b8;padding:10px 20px;border-radius:12px;font-size:.9rem;cursor:pointer;transition:all .2s}.logout-btn:hover{border-color:#ef4444;color:#ef4444}.card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:28px;margin-bottom:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card h2{font-size:1.2rem;font-weight:600;margin-bottom:20px;color:#a78bfa;display:flex;align-items:center;gap:8px}table{width:100%;border-collapse:collapse}thead th{text-align:left;padding:10px 12px;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#a0a0b8;border-bottom:1px solid rgba(255,255,255,.1)}tbody td{padding:8px 12px}tbody tr:hover{background:#ffffff08}tbody input[type=text],tbody input[type=number]{background:transparent;border:1px solid transparent;border-radius:8px;color:#e8e8f0;font-size:.9rem;padding:6px 10px;width:100%;outline:none;transition:border .2s}tbody input[type=text]:focus,tbody input[type=number]:focus{border-color:#a78bfa80;background:#ffffff0d}.badge-echeance{background:#a78bfa33;border:1px solid rgba(167,139,250,.4);color:#c4b5fd;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:500;white-space:nowrap;display:inline-block;margin-top:4px}.badge-verify{padding:4px 12px;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap;letter-spacing:.02em}.badge-verified{background:#34d39926;border:1px solid rgba(52,211,153,.35);color:#6ee7b7}.badge-unverified{background:#f59e0b26;border:1px solid rgba(245,158,11,.4);color:#fcd34d}.btn-icon{background:transparent;border:1px solid rgba(255,255,255,.1);color:#a0a0b8;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:.75rem;transition:all .2s}.btn-icon:hover:not(:disabled){background:#ffffff1a;color:#e8e8f0}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.recurring-input{background:transparent;border:1px solid transparent;border-radius:8px;color:#a0a0b8;font-size:.9rem;padding:6px 8px;width:100%;outline:none;text-align:center;transition:all .2s}.recurring-input:focus{border-color:#22d3ee80;background:#ffffff0d}.recurring-input.active{color:#67e8f9;background:#22d3ee1a;border-color:#22d3ee59;font-weight:600}.btn-delete{background:transparent;border:1px solid rgba(239,68,68,.3);color:#ef4444;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:.85rem;transition:all .2s}.btn-delete:hover{background:#ef444426}.bell-wrap,.user-menu{position:relative}.bell-btn{position:relative;padding:8px 12px;font-size:1.1rem}.bell-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #0f0c29}.bell-popup,.user-menu-popup{position:absolute;top:calc(100% + 8px);right:0;min-width:280px;background:#0f0c29fa;border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 8px 24px #0006;z-index:50;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.user-menu-popup{min-width:220px}.bell-popup-head{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.08);color:#a0a0b8;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.bell-popup-list{list-style:none;margin:0;padding:4px 0;max-height:320px;overflow-y:auto}.bell-item{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.04);border-left:3px solid transparent}.bell-item:last-child{border-bottom:none}.bell-item-warning{border-left-color:#fcd34d}.bell-item-error{border-left-color:#ef4444}.bell-item-info{border-left-color:#60a5fa}.bell-item-title{font-size:.92rem;font-weight:600;color:#e8e8f0}.bell-item-detail{font-size:.82rem;color:#a0a0b8;margin-top:2px}.bell-popup-more{display:block;width:100%;background:#a78bfa1a;border:none;border-top:1px solid rgba(255,255,255,.06);color:#c4b5fd;padding:10px 14px;font-size:.88rem;font-weight:600;cursor:pointer;text-align:center}.bell-popup-more:hover{background:#a78bfa2e}.user-menu-btn{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px}.user-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#a78bfa,#60a5fa);color:#fff;font-size:.78rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.user-menu-chev{font-size:.7rem;color:#a0a0b8}.user-menu-email{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.08);color:#a0a0b8;font-size:.85rem;word-break:break-all}.user-menu-item{display:block;width:100%;background:transparent;border:none;color:#e8e8f0;text-align:left;padding:10px 14px;font-size:.92rem;cursor:pointer;transition:background .15s}.user-menu-item:hover{background:#ffffff0f}.user-menu-danger:hover{background:#ef44441f;color:#fca5a5}.notif-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.notif-row{padding:12px 14px;border-radius:10px;background:#ffffff0a;border-left:4px solid transparent}.notif-row-warning{border-left-color:#fcd34d;background:#f59e0b0f}.notif-row-error{border-left-color:#ef4444;background:#ef44440f}.notif-row-info{border-left-color:#60a5fa;background:#60a5fa0f}.notif-row-title{font-weight:600;color:#e8e8f0}.notif-row-detail{font-size:.88rem;color:#a0a0b8;margin-top:4px}.trash-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.trash-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:10px}.trash-row-meta{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.trash-row-label{color:#e8e8f0;font-weight:600}.trash-row-detail{color:#a0a0b8;font-size:.82rem}.savings-goal-card{padding:14px 18px}.savings-goal-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.savings-goal-head{display:inline-flex;align-items:center;gap:8px}.savings-goal-icon{font-size:1.1rem}.savings-goal-label{color:#a0a0b8;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.savings-goal-amounts{display:inline-flex;align-items:baseline;gap:6px}.savings-goal-actual{color:#c4b5fd;font-weight:700;font-size:1rem}.savings-goal-actual-good{color:#6ee7b7;font-weight:700;font-size:1rem}.savings-goal-sep{color:#6b7280}.savings-goal-target{color:#e8e8f0;font-size:1rem}.savings-goal-pct{margin-left:10px;padding:2px 8px;border-radius:999px;background:#a78bfa2e;color:#c4b5fd;font-size:.78rem;font-weight:600}.savings-goal-bar-track{background:#ffffff0f;border-radius:4px;height:8px;overflow:hidden}.savings-goal-bar-fill{height:100%;background:linear-gradient(90deg,#a78bfa,#60a5fa);border-radius:4px;transition:width .3s ease}.savings-goal-bar-fill.reached{background:linear-gradient(90deg,#34d399,#10b981)}.alerts-card{border-color:#f59e0b66;background:#f59e0b0d}.alerts-card h2{color:#fcd34d}.alerts-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.alerts-list li{display:grid;grid-template-columns:minmax(140px,1fr) 2fr auto;gap:12px;align-items:baseline;padding:8px 12px;background:#f59e0b14;border-radius:8px}.alerts-bucket{color:#fcd34d;font-weight:600}.alerts-detail{color:#a0a0b8;font-size:.9rem}.alerts-over{color:#f87171;font-weight:700;white-space:nowrap}@media (max-width: 600px){.alerts-list li{grid-template-columns:1fr;gap:4px}}.card-danger{border-color:#ef444459;background:#ef44440a}.card-danger h2{color:#fca5a5}.btn-danger-submit{background:linear-gradient(135deg,#ef4444,#b91c1c)!important;color:#fff!important}.btn-danger-submit:disabled{background:#ffffff14!important;color:#6b7280!important;cursor:not-allowed}.attach-btn-active{background:#34d39926;border-color:#34d39966;color:#6ee7b7}.attach-btn-active:hover:not(:disabled){background:#34d39940;color:#a7f3d0}.btn-delete-confirm{background:#ef44442e;width:auto;padding:0 10px;font-size:.78rem;font-weight:600;white-space:nowrap}.add-row-btn{background:transparent;border:1px dashed rgba(255,255,255,.2);color:#a0a0b8;padding:8px 20px;border-radius:10px;cursor:pointer;font-size:.85rem;margin-top:12px;transition:all .2s}.add-row-btn:hover{border-color:#a78bfa;color:#a78bfa}.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}@media (min-width: 700px){.summary-grid{grid-template-columns:repeat(4,1fr)}}.summary-card{border-radius:16px;padding:20px;text-align:center}.summary-card.purple{background:linear-gradient(135deg,#a78bfa33,#a78bfa0d);border:1px solid rgba(167,139,250,.3)}.summary-card.blue{background:linear-gradient(135deg,#60a5fa33,#60a5fa0d);border:1px solid rgba(96,165,250,.3)}.summary-card.pink{background:linear-gradient(135deg,#f472b633,#f472b60d);border:1px solid rgba(244,114,182,.3)}.summary-card.green{background:linear-gradient(135deg,#34d39933,#34d3990d);border:1px solid rgba(52,211,153,.3)}.summary-card.red{background:linear-gradient(135deg,#ef444433,#ef44440d);border:1px solid rgba(239,68,68,.3)}.summary-card .label{font-size:.78rem;color:#a0a0b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.summary-card .amount{font-size:1.5rem;font-weight:700}.summary-card.purple .amount{color:#a78bfa}.summary-card.blue .amount{color:#60a5fa}.summary-card.pink .amount{color:#f472b6}.summary-card.green .amount{color:#34d399}.summary-card.red .amount{color:#ef4444}.chart-wrap{display:flex;flex-direction:column;align-items:center}.chart-wrap canvas{max-width:320px;max-height:320px}.chart-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:20px}.legend-item{display:flex;align-items:center;gap:6px;font-size:.85rem}.legend-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.legend-label{color:#e8e8f0}.legend-pct{color:#a78bfa;font-weight:600}.legend-amount{color:#a0a0b8}footer{text-align:center;padding:30px 0 20px;color:#a0a0b8;font-size:.82rem;border-top:1px solid rgba(255,255,255,.08);margin-top:10px}footer span{background:linear-gradient(90deg,#a78bfa,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:600}.auth-wrap{max-width:420px;margin:80px auto;padding:40px 32px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.auth-wrap h1{font-size:2rem;text-align:center;margin-bottom:8px;background:linear-gradient(90deg,#a78bfa,#60a5fa,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-wrap p.subtitle{text-align:center;color:#a0a0b8;font-size:.9rem;margin-bottom:28px}.auth-wrap label{display:block;color:#a0a0b8;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.auth-wrap input{width:100%;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:#e8e8f0;padding:12px 14px;border-radius:10px;font-size:.95rem;margin-bottom:16px;outline:none;transition:border .2s}.auth-wrap input:focus{border-color:#a78bfa99}.auth-wrap .auth-error{background:#ef444426;border:1px solid rgba(239,68,68,.35);color:#fca5a5;padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:.88rem}.auth-wrap .auth-success{background:#34d39926;border:1px solid rgba(52,211,153,.35);color:#6ee7b7;padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:.88rem}.auth-wrap button.primary{width:100%;background:linear-gradient(135deg,#a78bfa,#60a5fa);border:none;color:#fff;padding:12px;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s;margin-top:4px}.auth-wrap button.primary:hover:not(:disabled){opacity:.85}.auth-wrap button.primary:disabled{opacity:.5;cursor:not-allowed}.auth-wrap .auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0 12px;color:#6b7280;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.auth-wrap .auth-divider:before,.auth-wrap .auth-divider:after{content:"";flex:1;height:1px;background:#ffffff1f}.auth-wrap .oauth-buttons{display:flex;flex-direction:column;gap:8px}.auth-wrap .oauth-btn{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);color:#e8e8f0;padding:12px 16px;border-radius:12px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.auth-wrap .oauth-btn:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff40}.auth-wrap .oauth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-wrap .oauth-google:before{content:"🔵 "}.auth-wrap .oauth-oidc:before{content:"🔑 "}.auth-wrap .toggle{text-align:center;margin-top:18px;color:#a0a0b8;font-size:.88rem}.auth-wrap .toggle button{background:none;border:none;color:#a78bfa;cursor:pointer;font-size:inherit;text-decoration:underline;padding:0}.loading{text-align:center;padding:80px 20px;color:#a0a0b8}.empty-hint{color:#a0a0b8;font-style:italic;padding:6px 0}.empty-hint strong{color:#c4b5fd;font-weight:600;font-style:normal}.settings-hint{color:#a0a0b8;font-size:.88rem;margin-bottom:14px;line-height:1.5}.card-h2-tag{margin-left:auto;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:4px 10px;border-radius:999px;background:#a78bfa26;color:#c4b5fd;border:1px solid rgba(167,139,250,.3)}.tab-nav{display:flex;justify-content:center;gap:4px;margin:0;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:4px;width:fit-content}.tab-btn{background:transparent;border:none;color:#a0a0b8;padding:8px 24px;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.tab-btn:hover{color:#e8e8f0}.tab-btn.active{background:linear-gradient(135deg,#a78bfa,#60a5fa);color:#fff}.category-select{background:transparent;border:1px solid transparent;border-radius:8px;color:#e8e8f0;font-size:.9rem;padding:6px 10px;width:100%;outline:none;cursor:pointer;transition:border .2s}.category-select:focus{border-color:#a78bfa80;background:#ffffff0d}.category-select option{background:#302b63;color:#e8e8f0}.rule-selector{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.rule-chip{background:#ffffff0d;border:1px solid rgba(255,255,255,.15);color:#a0a0b8;padding:8px 14px;border-radius:999px;font-size:.85rem;cursor:pointer;transition:all .2s}.rule-chip:hover{color:#e8e8f0;border-color:#a78bfa66}.rule-chip.active{background:linear-gradient(135deg,#a78bfa4d,#60a5fa4d);border-color:#a78bfa99;color:#e8e8f0}.bucket-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:18px}@media (min-width: 800px){.bucket-grid{grid-template-columns:repeat(3,1fr)}}.bucket-card{border:1px solid;border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:10px}.bucket-head{display:flex;justify-content:space-between;align-items:baseline}.bucket-title{font-weight:600;font-size:1rem;color:#e8e8f0}.bucket-pct{font-size:.78rem;color:#a0a0b8;font-weight:600;letter-spacing:.05em}.bucket-amounts{display:flex;justify-content:space-between;gap:12px;font-size:.85rem}.bucket-amounts>div{display:flex;flex-direction:column;gap:2px}.bucket-amount-label{color:#a0a0b8;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.bucket-amount-value{color:#e8e8f0;font-weight:600}.bucket-delta{font-weight:700;font-size:.95rem;padding:6px 10px;border-radius:10px;text-align:center}.bucket-delta.good{background:#34d3991f;color:#34d399;border:1px solid rgba(52,211,153,.3)}.bucket-delta.bad{background:#ef44441f;color:#f87171;border:1px solid rgba(239,68,68,.3)}.bucket-bar{height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.bucket-bar-fill{height:100%;transition:width .3s}.bucket-categories{display:flex;flex-direction:column;gap:4px;margin-top:4px}.bucket-cat-row{display:flex;align-items:center;gap:8px;font-size:.82rem;padding:4px 0}.bucket-cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.bucket-cat-label{color:#a0a0b8;flex:1}.bucket-cat-amount{color:#e8e8f0;font-weight:500}.goal-inputs{display:flex;flex-direction:column;gap:12px;margin-top:14px;max-width:420px}.goal-inputs-row{flex-direction:row;flex-wrap:wrap;max-width:100%}.goal-inputs label{display:flex;flex-direction:column;gap:6px;color:#a0a0b8;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;flex:1 1 200px}.goal-inputs input{background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:#e8e8f0;padding:10px 12px;border-radius:10px;font-size:.95rem;outline:none}.goal-inputs input:focus{border-color:#a78bfa99}.goal-hint{color:#a0a0b8;font-size:.82rem;font-style:italic;margin-top:10px}.settings-toggle{background:transparent;border:none;color:#a78bfa;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left}.settings-toggle-chev{color:#a0a0b8;font-size:.8rem}.settings-grid{display:flex;flex-direction:column;gap:8px;margin-top:16px}.settings-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.06)}.settings-cat{flex:1 1 180px;padding:4px 0 4px 10px;border-left:3px solid;color:#e8e8f0;font-size:.92rem}.settings-buckets{display:flex;gap:6px;flex-wrap:wrap}.bucket-chip{background:transparent;border:1px solid rgba(255,255,255,.15);color:#a0a0b8;padding:5px 11px;border-radius:999px;font-size:.78rem;cursor:pointer;transition:all .2s}.bucket-chip:hover{color:#e8e8f0}.bucket-chip.active{background:#a78bfa33;border-color:#a78bfa80;color:#c4b5fd}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0c2999;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.modal-content{background:linear-gradient(135deg,#1a1733,#2a2748);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:28px;max-width:600px;width:100%;max-height:80vh;overflow-y:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head h2{color:#a78bfa;font-size:1.15rem;font-weight:600}.modal-close{background:transparent;border:1px solid rgba(255,255,255,.15);color:#a0a0b8;width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:.95rem}.modal-close:hover{color:#e8e8f0;border-color:#ef444480}.share-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}.share-create-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.share-expiry-label{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:#a0a0b8;white-space:nowrap}.share-expiry-label select{background:#ffffff14;border:1px solid rgba(255,255,255,.2);color:#e8e8f0;padding:8px 10px;border-radius:8px;font-size:.9rem;cursor:pointer;outline:none}.share-expiry-label select option{background:#302b63}.currency-select{background:#ffffff14;border:1px solid rgba(255,255,255,.2);color:#e8e8f0;padding:8px 12px;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;outline:none;min-width:100px}.currency-select option{background:#302b63}.share-expiry-meta{font-size:.78rem;color:#a0a0b8;padding-left:4px}.share-row{display:flex;gap:8px;align-items:center;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:8px 10px}.share-row input{flex:1;background:transparent;border:none;color:#c4b5fd;font-family:monospace;font-size:.82rem;outline:none;min-width:0}.btn-icon-text{background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:#a0a0b8;padding:6px 12px;border-radius:8px;font-size:.82rem;cursor:pointer;white-space:nowrap;transition:all .2s}.btn-icon-text:hover{color:#e8e8f0;border-color:#a78bfa80}.btn-icon-text.btn-revoke:hover{color:#ef4444;border-color:#ef444480}.profile-info{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 600px){.profile-info{grid-template-columns:repeat(2,1fr)}}.profile-info>div{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px 16px}.profile-info dt{color:#a0a0b8;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.profile-info dd{color:#e8e8f0;font-size:1rem;font-weight:500}.profile-form{display:flex;flex-direction:column;gap:14px;max-width:420px}.profile-form label{display:flex;flex-direction:column;gap:6px;color:#a0a0b8;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.profile-form input{background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:#e8e8f0;padding:10px 12px;border-radius:10px;font-size:.95rem;outline:none;text-transform:none;letter-spacing:normal}.profile-form input:focus{border-color:#a78bfa99}.profile-submit{align-self:flex-start;background:linear-gradient(135deg,#a78bfa,#60a5fa);border:none;color:#fff;padding:10px 22px;border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s;margin-top:4px}.profile-submit:hover:not(:disabled){opacity:.85}.profile-submit:disabled{opacity:.5;cursor:not-allowed}.profile-msg{font-size:.88rem;padding:8px 12px;border-radius:10px}.profile-msg-ok{background:#34d39926;color:#6ee7b7;border:1px solid rgba(52,211,153,.35)}.profile-msg-err{background:#ef444426;color:#fca5a5;border:1px solid rgba(239,68,68,.35)}.profile-msg-busy,.profile-msg-idle{background:#ffffff0d;color:#a0a0b8}.cat-edit-icon{width:50px;text-align:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-left:3px solid;color:#e8e8f0;padding:6px 8px;border-radius:8px;font-size:1rem;outline:none}.cat-edit-icon:focus{border-color:#a78bfa99}.cat-edit-label{flex:1 1 160px;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:#e8e8f0;padding:6px 10px;border-radius:8px;font-size:.95rem;outline:none}.cat-edit-label:focus{border-color:#a78bfa99}.custom-cat-form{display:flex;flex-direction:column;gap:14px;margin-top:16px;max-width:520px;padding:16px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px}.custom-cat-row{display:flex;gap:14px;flex-wrap:wrap}.custom-cat-row label{display:flex;flex-direction:column;gap:6px;color:#a0a0b8;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;flex:1 1 200px}.custom-cat-row input[type=text]{background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:#e8e8f0;padding:10px 12px;border-radius:10px;font-size:.95rem;outline:none;text-transform:none;letter-spacing:normal}.custom-cat-row input[type=text]:focus{border-color:#a78bfa99}.color-swatches{display:flex;flex-wrap:wrap;gap:8px}.color-swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s}.color-swatch:hover{transform:scale(1.1)}.color-swatch.active{border-color:#e8e8f0;box-shadow:0 0 0 2px #ffffff26}.kpi-table{font-size:.88rem}.kpi-table th{white-space:nowrap}.kpi-table td{padding:8px 12px}.kpi-table tbody tr:nth-child(odd){background:#ffffff05}.kpi-good{color:#34d399;font-weight:600}.kpi-bad{color:#f87171;font-weight:600}.year-chart-wrap{position:relative;width:100%;height:clamp(280px,42vw,520px)}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.cat-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-left:4px solid;border-radius:12px;padding:14px 16px}.cat-card-label{font-size:.85rem;color:#a0a0b8;margin-bottom:4px}.cat-card-amount{font-size:1.15rem;font-weight:700;color:#e8e8f0}.cat-card-clickable{cursor:pointer;text-align:left;font:inherit;color:inherit;transition:background .15s,transform .15s}.cat-card-clickable:hover{background:#ffffff14;transform:translateY(-1px)}.cat-card-active{background:#ffffff1a;box-shadow:0 0 0 2px #a78bfa66}.switch-row{display:flex;align-items:center;gap:16px;padding:10px 0}.switch-row-text{flex:1 1 auto}.switch-row-label{font-size:.95rem;color:#e8e8f0;font-weight:500}.switch-row-hint{font-size:.85rem;color:#a0a0b8;margin-top:2px}.switch{position:relative;display:inline-block;width:48px;height:26px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:999px;transition:background .2s,border-color .2s}.switch-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;top:50%;transform:translateY(-50%);background:#e8e8f0;border-radius:50%;transition:transform .2s,background .2s;box-shadow:0 1px 3px #0000004d}.switch input:checked+.switch-slider{background:linear-gradient(135deg,#a78bfa,#60a5fa);border-color:transparent}.switch input:checked+.switch-slider:before{transform:translate(22px,-50%);background:#fff}.switch input:focus-visible+.switch-slider{box-shadow:0 0 0 3px #a78bfa59}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:12px}.metric-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:16px}.metric-card.metric-good{border-left:4px solid #34d399}.metric-card.metric-bad{border-left:4px solid #ef4444}.metric-card.metric-info{border-left:4px solid #60a5fa}.metric-label{font-size:.78rem;color:#a0a0b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.metric-value{font-size:1.4rem;font-weight:700;color:#e8e8f0}.metric-sub{font-size:.8rem;color:#a0a0b8;margin-top:4px}.metrics-list{display:flex;flex-direction:column;gap:0;margin-top:8px}.metrics-list>div{display:grid;grid-template-columns:minmax(160px,1fr) 2fr;gap:16px;padding:12px 0;border-top:1px solid rgba(255,255,255,.06)}.metrics-list>div:first-child{border-top:none}.metrics-list dt{font-size:.85rem;color:#a0a0b8;text-transform:uppercase;letter-spacing:.04em}.metrics-list dd{font-size:.95rem;color:#e8e8f0}@media (max-width: 600px){.metrics-list>div{grid-template-columns:1fr;gap:4px}}.drilldown-grid{display:flex;flex-direction:column;gap:0;margin-top:12px}.drilldown-row{display:grid;grid-template-columns:minmax(140px,1fr) 3fr;gap:24px;padding:14px 4px;border-top:1px solid rgba(255,255,255,.06)}.drilldown-row:first-child{border-top:none}.drilldown-month{display:flex;flex-direction:column;gap:4px}.drilldown-month-name{font-size:.95rem;font-weight:600;color:#e8e8f0}.drilldown-month-total{font-size:.85rem;color:#a0a0b8}.drilldown-entries{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.drilldown-entries li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:4px 0;border-bottom:1px dashed rgba(255,255,255,.04)}.drilldown-entries li:last-child{border-bottom:none}.drilldown-entry-label{font-size:.9rem;color:#e8e8f0}.drilldown-entry-amount{font-size:.9rem;font-weight:600;color:#c4b5fd;white-space:nowrap}@media (max-width: 600px){.drilldown-row{grid-template-columns:1fr;gap:8px}}@media print{body{background:#fff!important;color:#000!important}.month-selector,.add-row-btn,.btn-icon,.btn-delete,.print-btn,.save-indicator,.logout-btn,.navbar{display:none!important}.card{border:1px solid #ddd!important;background:#fff!important}header h1{-webkit-text-fill-color:#302b63!important}.month-tip{color:#555!important;border-color:#ccc!important;background:#f5f5f5!important}.summary-card{border:1px solid #ddd!important;background:#f9f9f9!important}.summary-card .amount{-webkit-text-fill-color:#302b63!important;color:#302b63!important}tbody input{color:#000!important}footer{color:#555!important}}@media (max-width: 600px){header h1{font-size:1.8rem}}
