*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #6366f1;--primary-dark: #4f46e5;--primary-light: #e0e7ff;--success: #22c55e;--success-bg: #dcfce7;--danger: #ef4444;--danger-bg: #fee2e2;--warning: #f59e0b;--warning-bg: #fef3c7;--bg: #f1f5f9;--card: #ffffff;--text: #1e293b;--text-muted: #64748b;--border: #e2e8f0;--nav-h: 64px;--header-h: 56px;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(0,0,0,.06), 0 1px 3px rgba(0,0,0,.04);--shadow-md: 0 4px 10px rgba(0,0,0,.08);--surface: #ffffff;--radius-md: 12px;--text-primary: #1e293b;--text-secondary: #475569}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none}#root{height:100%}button{cursor:pointer;border:none;background:none;font-family:inherit}input,select,textarea{font-family:inherit}input[type=number]::-webkit-inner-spin-button{opacity:1}.app{display:flex;flex-direction:column;height:100%;height:100dvh;background:var(--bg)}.app-main{flex:1;overflow:hidden;position:relative}.view{display:flex;flex-direction:column;height:100%}.view-header{background:var(--primary);background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);padding:0 16px;min-height:var(--header-h);display:flex;align-items:center;justify-content:center;flex-shrink:0;padding-top:env(safe-area-inset-top,0px)}.view-header--flat{background:var(--card);border-bottom:1px solid var(--border);justify-content:flex-start}.view-title{font-size:19px;font-weight:700;color:var(--text);padding:14px 0}.view-header--flat .view-title{color:var(--text)}.view-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px;padding-bottom:calc(var(--nav-h) + 76px);display:flex;flex-direction:column;gap:10px}.month-selector{display:flex;align-items:center;gap:12px;width:100%;justify-content:space-between}.month-arrow{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.18);border-radius:50%;color:#fff;transition:background .15s;flex-shrink:0}.month-arrow svg{width:20px;height:20px}.month-arrow:disabled{opacity:.3;cursor:default}.month-arrow:not(:disabled):active{background:rgba(255,255,255,.32)}.month-label-wrap{display:flex;flex-direction:column;align-items:center;gap:3px}.month-label{font-size:17px;font-weight:700;color:#fff;letter-spacing:-.3px}.month-today-btn{font-size:11px;font-weight:600;color:#ffffffd9;background:rgba(255,255,255,.18);border-radius:10px;padding:2px 8px;transition:background .15s}.month-today-btn:active{background:rgba(255,255,255,.35)}.stats-strip{display:grid;grid-template-columns:1fr 1fr;gap:1px;border-radius:18px;background:linear-gradient(135deg,#6366f1 0%,#7c3aed 100%);margin-bottom:12px;padding:0;overflow:visible}.stats-strip__item{background:rgba(99,102,241,.85);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:14px 16px;display:flex;flex-direction:column;gap:4px}.stats-strip__item:nth-child(1){border-radius:18px 0 0}.stats-strip__item:nth-child(2){border-radius:0 18px 0 0}.stats-strip__item:nth-child(3){border-radius:0 0 0 18px}.stats-strip__item:nth-child(4){border-radius:0 0 18px}.stats-strip__item--right{text-align:right;align-items:flex-end}.stats-strip__label{font-size:10px;font-weight:700;color:#ffffffa6;text-transform:uppercase;letter-spacing:.5px}.stats-strip__value{font-size:20px;font-weight:800;color:#fff!important;letter-spacing:-.5px}.stats-strip__item--editable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.stats-strip__item--editable:active{background:rgba(255,255,255,.12)}.stats-strip__value--overridden{text-decoration:underline;text-decoration-style:dashed;text-underline-offset:3px;text-decoration-color:#ffffff80}.stats-strip__input{background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.6);border-radius:8px;color:#fff;font-size:18px;font-weight:800;letter-spacing:-.5px;padding:2px 6px;width:100%;outline:none;-moz-appearance:textfield}.stats-strip__input::-webkit-inner-spin-button,.stats-strip__input::-webkit-outer-spin-button{-webkit-appearance:none}.stats-strip__reset{background:none;border:none;color:#ffffffb3;cursor:pointer;font-size:12px;padding:0 0 0 4px;line-height:1;vertical-align:middle}.stats-strip__reset:hover{color:#fff}.savings-rate-bar{background:var(--card);border-radius:var(--radius);padding:10px 14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px}.savings-rate-bar__text{font-size:13px;color:var(--text-muted)}.savings-rate-bar__track{height:5px;background:var(--bg);border-radius:3px;overflow:hidden}.savings-rate-bar__fill{height:100%;background:var(--success);border-radius:3px;transition:width .5s ease;min-width:2px}.savings-rate-bar__fill--danger{background:var(--danger)}.quick-actions{display:flex;gap:10px}.quick-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 14px;background:var(--card);border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--text-muted);transition:background .15s,color .15s,border-color .15s;box-shadow:var(--shadow)}.quick-action-btn:active{background:var(--bg)}.quick-action-btn--primary{background:var(--primary);color:#fff;border-color:var(--primary)}.quick-action-btn--primary:active{background:var(--primary-dark)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.balance-card{background:var(--card);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:3px;border-left:3px solid transparent}.balance-card--success{border-left-color:var(--success)}.balance-card--danger{border-left-color:var(--danger)}.balance-card--warning{border-left-color:var(--warning)}.balance-card--default{border-left-color:var(--primary)}.balance-card__label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.balance-card__value{font-size:17px;font-weight:700;color:var(--text);letter-spacing:-.5px;line-height:1.2}.balance-card__sub{font-size:10px;color:var(--text-muted)}.section{display:flex;flex-direction:column;gap:8px}.section-header{display:flex;align-items:center;justify-content:space-between}.section-title{font-size:14px;font-weight:700;color:var(--text)}.section-count{font-size:12px;color:var(--text-muted);font-weight:500}.tx-table{display:flex;flex-direction:column;gap:5px}.tx-row{background:var(--card);border-radius:var(--radius-sm);box-shadow:var(--shadow);display:flex;align-items:center;overflow:hidden;transition:transform .1s}.tx-row:active{transform:scale(.99)}.tx-main{flex:1;display:flex;align-items:center;justify-content:space-between;padding:11px 12px;cursor:pointer;gap:8px}.tx-left{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.tx-category{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-meta{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-person-badge{display:inline-block;margin-left:6px;background:var(--primary-light);color:var(--primary-dark);font-size:10px;font-weight:700;border-radius:4px;padding:1px 5px}.tx-amount{font-size:14px;font-weight:700;white-space:nowrap}.tx-amount--income{color:var(--success)}.tx-amount--expense{color:var(--danger)}.tx-delete{padding:0 12px;height:100%;min-height:46px;display:flex;align-items:center;justify-content:center;color:#cbd5e1;border-left:1px solid var(--border);flex-shrink:0;transition:color .15s,background .15s}.tx-delete svg{width:16px;height:16px}.tx-delete:active{color:var(--danger);background:var(--danger-bg)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;gap:8px;color:var(--text-muted);background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow)}.empty-state svg{width:36px;height:36px;opacity:.3;margin-bottom:4px}.empty-state p{font-size:14px;font-weight:600}.empty-state span{font-size:12px}.fab{position:fixed;right:20px;bottom:calc(var(--nav-h) + 14px);width:52px;height:52px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #6366f166;transition:transform .15s,box-shadow .15s;z-index:50}.fab svg{width:22px;height:22px}.fab:active{transform:scale(.93);box-shadow:0 2px 8px #6366f14d}.bottom-nav{display:flex;position:relative;height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--card);border-top:1px solid var(--border);flex-shrink:0;z-index:100}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px;color:var(--text-muted);transition:color .15s;position:relative}.nav-item.active{color:var(--primary)}.nav-item.active:after{content:"";position:absolute;top:0;left:20%;right:20%;height:2px;background:var(--primary);border-radius:0 0 2px 2px}.nav-icon{width:22px;height:22px}.nav-icon svg{width:100%;height:100%}.nav-label{font-size:9px;font-weight:600;letter-spacing:.1px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.42);z-index:200;display:flex;align-items:flex-end;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-sheet{width:100%;background:var(--card);border-radius:20px 20px 0 0;padding:0 0 env(safe-area-inset-bottom,16px);max-height:92vh;overflow-y:auto;animation:slide-up .25s cubic-bezier(.32,.72,0,1)}.modal-handle{width:36px;height:4px;background:var(--border);border-radius:2px;margin:12px auto 4px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px 6px}.modal-title{font-size:16px;font-weight:700}.modal-close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--bg);color:var(--text-muted)}.modal-close svg{width:15px;height:15px}.modal-body{padding:8px 20px 20px;display:flex;flex-direction:column;gap:12px}.confirm-sheet{width:100%;background:var(--card);border-radius:20px 20px 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:18px;animation:slide-up .2s cubic-bezier(.32,.72,0,1)}.confirm-text{font-size:16px;font-weight:600;text-align:center}.confirm-actions{display:flex;gap:10px}.confirm-actions>*{flex:1}.form-group{display:flex;flex-direction:column;gap:5px}.form-label{font-size:12px;font-weight:600;color:var(--text-muted)}.form-optional{font-weight:400;opacity:.7}.form-error{font-size:12px;color:var(--danger)}.form-input{width:100%;padding:11px 12px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;color:var(--text);outline:none;transition:border-color .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input:focus{border-color:var(--primary);background:white}.form-input--amount{font-size:26px;font-weight:700;text-align:center;padding:14px}.form-textarea{resize:vertical;min-height:90px}select.form-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:14px;padding-right:34px}.type-toggle{display:flex;gap:0;border-radius:var(--radius-sm);overflow:hidden;border:1.5px solid var(--border)}.type-btn{flex:1;padding:9px;font-size:14px;font-weight:600;color:var(--text-muted);transition:background .15s,color .15s}.type-btn--expense.active{background:var(--danger);color:#fff}.type-btn--income.active{background:var(--success);color:#fff}.btn-primary{background:var(--primary);color:#fff;padding:13px 18px;border-radius:var(--radius-sm);font-size:15px;font-weight:700;transition:background .15s,transform .1s}.btn-primary:active{background:var(--primary-dark);transform:scale(.98)}.btn-primary.btn-full{width:100%}.btn-primary.btn-compact{padding:9px 16px;font-size:13px}.btn-danger{background:var(--danger);color:#fff;padding:12px 18px;border-radius:var(--radius-sm);font-size:15px;font-weight:700;width:100%;transition:background .15s}.btn-ghost{background:var(--bg);color:var(--text-muted);padding:12px 18px;border-radius:var(--radius-sm);font-size:15px;font-weight:600;width:100%}.btn-outline{background:transparent;color:var(--primary);padding:11px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;border:1.5px solid var(--primary);width:100%;transition:background .15s}.btn-outline:active{background:var(--primary-light)}.chart-card{background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.chart-wrap{height:190px}.chart-wrap--doughnut{height:250px}.insights-list{display:flex;flex-direction:column;gap:7px}.insight-item{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;font-weight:500;box-shadow:var(--shadow);color:var(--text)}.insight-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.insight-item--success .insight-dot{background:var(--success)}.insight-item--warning .insight-dot{background:var(--warning)}.insight-item--danger .insight-dot{background:var(--danger)}.insight-item--success{border-left:3px solid var(--success)}.insight-item--warning{border-left:3px solid var(--warning)}.insight-item--danger{border-left:3px solid var(--danger)}.period-selector{display:flex;background:var(--card);border-radius:var(--radius);padding:4px;gap:2px;box-shadow:var(--shadow)}.period-btn{flex:1;padding:7px 4px;font-size:12px;font-weight:600;color:var(--text-muted);border-radius:8px;transition:background .15s,color .15s;text-align:center}.period-btn.active{background:var(--primary);color:#fff}.summary-table{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.summary-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;padding:9px 12px;gap:4px;border-bottom:1px solid var(--border);font-size:12px;align-items:center}.summary-row:last-child{border-bottom:none}.summary-row--header{background:var(--bg);font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.summary-row--active{background:var(--primary-light);font-weight:600}.cat-section{background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.cat-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;margin-bottom:10px}.cat-badge{font-size:10px;font-weight:700;text-transform:uppercase;padding:2px 7px;border-radius:10px;letter-spacing:.5px}.cat-badge--income{background:var(--success-bg);color:#15803d}.cat-badge--expense{background:var(--danger-bg);color:#dc2626}.cat-list{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.cat-item{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;background:var(--bg);border-radius:var(--radius-sm)}.cat-name{font-size:13px;flex:1;cursor:pointer}.cat-edit-input{flex:1;font-size:13px;background:white;border:1.5px solid var(--primary);border-radius:6px;padding:3px 8px;outline:none}.cat-delete{color:#cbd5e1;padding:4px;transition:color .15s}.cat-delete svg{width:15px;height:15px}.cat-delete:active{color:var(--danger)}.cat-add-form{display:flex;gap:7px}.cat-add-form .form-input{flex:1}.settings-form{display:flex;flex-direction:column;gap:12px}.sync-msg{font-size:13px;color:var(--success);font-weight:500}.sync-status-row{display:flex;align-items:center;gap:8px;padding:10px 0}.sync-status-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;background:var(--text-muted)}.sync-status-text{font-size:14px;color:var(--text-muted)}.data-actions{display:flex;gap:8px;flex-direction:column}.import-form{display:flex;flex-direction:column;gap:8px;margin-top:8px}.import-actions{display:flex;gap:8px}.import-actions>*{flex:1}.more-info-box{background:var(--primary-light);border-radius:var(--radius-sm);padding:10px 12px;font-size:12px;color:var(--primary-dark);line-height:1.5}.sheets-setup-box{background:#f0fdf4;color:#166534}.sheets-steps{margin:6px 0 6px 16px;display:flex;flex-direction:column;gap:4px}.sheets-steps li{font-size:12px;line-height:1.5}.sheets-code-block{position:relative;margin:8px 0;background:#1e293b;border-radius:8px;overflow:hidden}.sheets-code{font-size:10px;color:#e2e8f0;padding:10px 10px 10px 12px;overflow-x:auto;white-space:pre;font-family:Courier New,monospace;line-height:1.5}.sheets-copy-btn{position:absolute;top:6px;right:6px;background:#334155;color:#94a3b8;border:none;border-radius:5px;padding:3px 8px;font-size:11px;cursor:pointer}.sheets-copy-btn:active{background:#475569}.dima-hero{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}.dima-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dima-name{font-size:15px;font-weight:700}.dima-month{font-size:12px;color:var(--text-muted)}.dima-info{display:flex;flex-direction:column;gap:2px}.taxi-month-card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.taxi-month-arrow{display:flex;align-items:center;justify-content:space-between;gap:12px}.taxi-month-col{display:flex;flex-direction:column;gap:2px}.taxi-month-col--right{align-items:flex-end;text-align:right}.taxi-month-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.taxi-month-gross{font-size:22px;font-weight:700;color:var(--text)}.taxi-month-net{font-size:22px;font-weight:700}.taxi-month-perday{font-size:12px;color:var(--text-muted);border-top:1px solid var(--border);padding-top:8px}.taxi-calculator{background:var(--card);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.taxi-calc-title{font-size:14px;font-weight:700;color:var(--text)}.taxi-calc-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.input-with-prefix{position:relative;display:flex;align-items:center}.input-prefix{position:absolute;left:12px;font-size:14px;color:var(--text-muted);font-weight:600;pointer-events:none}.input-with-prefix .form-input{padding-left:24px}.taxi-summary{background:var(--bg);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:6px}.taxi-summary__section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:2px}.taxi-summary__row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text)}.taxi-summary__row strong{font-weight:700}.taxi-summary__row--net{font-size:16px;font-weight:700;margin-top:2px}.taxi-summary__row--note{display:block}.taxi-summary__divider{height:1px;background:var(--border);margin:4px 0}.taxi-log-row{background:var(--card);border-radius:var(--radius-sm);box-shadow:var(--shadow);display:flex;align-items:center;gap:10px;cursor:pointer;transition:background .1s;overflow:hidden}.taxi-log-row:active{background:var(--bg)}.taxi-log-date{padding:12px 0 12px 14px;font-size:13px;font-weight:600;color:var(--text-muted);flex-shrink:0;min-width:50px}.taxi-log-info{flex:1;display:flex;flex-direction:column;gap:2px;padding:12px 0}.taxi-log-gross{font-size:14px;font-weight:600;color:var(--text)}.taxi-log-km{font-size:11px;color:var(--text-muted)}.taxi-log-net-col{display:flex;align-items:center;padding:12px 0;flex-shrink:0}.taxi-log-net{font-size:14px;font-weight:700}.taxi-day-checkbox{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--text);cursor:pointer}.taxi-day-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.taxi-day-result{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--bg);border-left:3px solid var(--success)}.taxi-day-result--neg{border-left-color:var(--danger)}.taxi-day-result__label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.taxi-day-result__value{font-size:22px;font-weight:700;color:var(--success)}.taxi-day-result--neg .taxi-day-result__value{color:var(--danger)}.taxi-day-result__detail{font-size:12px;color:var(--text-muted)}.savings-total-card{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:4px;box-shadow:var(--shadow-md)}.savings-total-label{font-size:12px;font-weight:600;color:#fffc;text-transform:uppercase;letter-spacing:.5px}.savings-total-value{font-size:28px;font-weight:800;color:#fff;letter-spacing:-.5px}.savings-total-count{font-size:12px;color:#ffffffb3}.accounts-list{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.account-item{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.account-item:last-child{border-bottom:none}.account-icon{font-size:20px;flex-shrink:0;width:28px;text-align:center}.account-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.account-name{font-size:13px;font-weight:600;color:var(--text)}.account-type{font-size:11px;color:var(--text-muted)}.account-balance-wrap{flex-shrink:0}.account-balance{font-size:14px;font-weight:700;color:var(--text);padding:4px 6px;border-radius:6px;background:transparent;transition:background .15s;cursor:pointer}.account-balance:active{background:var(--bg)}.account-balance-input{font-size:14px;font-weight:700;width:90px;padding:4px 6px;background:white;border:1.5px solid var(--primary);border-radius:6px;outline:none;text-align:right}.loan-card{background:var(--card);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:7px;margin-bottom:8px}.loan-header{display:flex;align-items:center;justify-content:space-between}.loan-name{font-size:14px;font-weight:700}.loan-row{display:flex;align-items:center;gap:8px}.loan-label{font-size:12px;color:var(--text-muted);width:120px;flex-shrink:0}.loan-input{flex:1;padding:5px 9px;background:var(--bg);border:1.5px solid var(--border);border-radius:6px;font-size:13px;font-family:inherit;outline:none}.loan-input:focus{border-color:var(--primary)}.loan-remaining{font-size:13px;color:var(--text)}.loan-bar-wrap{height:5px;background:var(--bg);border-radius:3px;overflow:hidden}.loan-bar{height:100%;background:var(--success);border-radius:3px;transition:width .5s ease}.loan-add-form{display:flex;flex-direction:column;gap:7px;margin-top:6px}.currency-converter{display:flex;flex-direction:column;gap:10px}.converter-row{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.converter-amount{flex:2;padding:9px 10px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:15px;font-weight:700;color:var(--text);outline:none;min-width:0}.converter-amount:focus{border-color:var(--primary);background:white}.converter-select{flex:1;padding:9px 6px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-weight:600;color:var(--text);outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;text-align:center;min-width:0}.converter-select:focus{border-color:var(--primary)}.converter-arrow{font-size:16px;color:var(--text-muted);flex-shrink:0}.converter-result{flex:2;padding:9px 10px;background:var(--primary-light);border-radius:var(--radius-sm);font-size:15px;font-weight:700;color:var(--primary-dark);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.converter-rates{display:flex;flex-direction:column;gap:6px;padding:10px;background:var(--bg);border-radius:var(--radius-sm);margin-top:4px}.converter-rate-row{display:flex;align-items:center;gap:8px}.converter-rate-label{font-size:13px;font-weight:700;width:36px;flex-shrink:0;color:var(--text)}.converter-rate-input{flex:1;padding:5px 9px;background:white;border:1.5px solid var(--border);border-radius:6px;font-size:13px;font-family:inherit;outline:none}.converter-rate-input:focus{border-color:var(--primary)}.quick-entry-list{display:flex;flex-direction:column;max-height:55vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.quick-entry-row{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:1px solid var(--border);gap:12px}.quick-entry-row:last-child{border-bottom:none}.quick-entry-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.quick-entry-cat{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-entry-hint{font-size:11px;color:var(--text-muted)}.quick-entry-input-wrap{display:flex;align-items:center;gap:4px;flex-shrink:0}.quick-entry-currency{font-size:14px;font-weight:600;color:var(--text-muted)}.quick-entry-input{width:90px;padding:8px;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-weight:600;color:var(--text);outline:none;text-align:right}.quick-entry-input:focus{border-color:var(--primary);background:white}.budget-table{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);flex-shrink:0}.budget-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;width:100%;cursor:pointer;border-bottom:1px solid var(--border);background:var(--card)}.budget-title{font-size:13px;font-weight:700;color:var(--text)}.budget-chevron{width:16px;height:16px;color:var(--text-muted);transition:transform .2s;flex-shrink:0}.budget-chevron.open{transform:rotate(180deg)}.budget-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;padding:9px 12px;gap:4px;align-items:center;border-bottom:1px solid var(--border);font-size:12px}.budget-row:last-of-type{border-bottom:none}.budget-row--head{background:var(--bg);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.budget-row--total{background:var(--bg);font-weight:700;font-size:12px}.budget-row--clickable{cursor:pointer;transition:background .1s}.budget-row--clickable:active{background:var(--bg)}.budget-chevron-row{display:flex;align-items:center;justify-content:flex-end;color:var(--border)}.budget-cat{color:var(--text);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.budget-plan{font-size:12px;color:var(--text-muted);cursor:pointer;padding:2px 3px;border-radius:4px;transition:background .15s;white-space:nowrap}.budget-plan:active,.budget-plan:focus-within{background:var(--primary-light)}.budget-plan--empty{color:#cbd5e1;font-style:italic}.budget-plan-input{width:100%;font-size:12px;background:white;border:1.5px solid var(--primary);border-radius:4px;padding:2px 5px;outline:none}.budget-actual{font-size:12px;color:var(--text);white-space:nowrap}.budget-actual--has{font-weight:600}.budget-diff{font-size:11px;font-weight:700;white-space:nowrap}.breakdown-list{background:var(--card);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.breakdown-row{display:flex;align-items:center;gap:8px}.breakdown-name{font-size:11px;font-weight:500;color:var(--text-muted);width:80px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breakdown-bar-wrap{flex:1;height:5px;background:var(--bg);border-radius:3px;overflow:hidden}.breakdown-bar{height:100%;border-radius:3px;transition:width .5s ease;min-width:4px}.breakdown-bar--income{background:var(--success)}.breakdown-bar--expense{background:var(--danger)}.breakdown-amount{font-size:11px;font-weight:700;width:65px;text-align:right;flex-shrink:0}.text-success{color:var(--success);font-weight:600}.text-danger{color:var(--danger);font-weight:600}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}@media (min-width: 480px){.app{max-width:430px;margin:0 auto;box-shadow:0 0 60px #00000026;height:100dvh}body{background:#1e1e2e}}.dima-today-card{background:var(--surface);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:12px;border:1px solid var(--border)}.dima-today-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.dima-today-label{font-size:12px;color:var(--text-muted)}.dima-today-row{display:flex;gap:12px}.dima-today-stat{flex:1;text-align:center}.dima-today-stat-label{display:block;font-size:11px;color:var(--text-muted);margin-bottom:2px}.dima-today-stat-value{display:block;font-size:16px;font-weight:700}.dima-today-details{display:flex;gap:12px;font-size:12px;color:var(--text-muted);margin-top:8px;flex-wrap:wrap}.taxi-breakdown-toggle{background:none;border:none;font-size:12px;color:var(--primary);cursor:pointer;padding:8px 0 2px;width:100%;text-align:left}.taxi-breakdown{border-top:1px solid var(--border);padding-top:8px;margin-top:4px}.taxi-breakdown-row{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;color:var(--text-secondary)}.taxi-breakdown-divider{border-top:1px solid var(--border);margin:6px 0}.debt-strip{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.debt-strip__item{background:var(--surface);border-radius:var(--radius-md);padding:12px;text-align:center;border:1px solid var(--border)}.debt-strip__label{display:block;font-size:12px;color:var(--text-muted);margin-bottom:4px}.debt-strip__value{font-size:16px;font-weight:700}.loan-dir-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.3px}.loan-dir-badge--green{background:#dcfce7;color:#166534}.loan-dir-badge--red{background:#fee2e2;color:#991b1b}.loan-note{font-size:12px;color:var(--text-muted);margin:0 0 8px}.loan-amounts{display:grid;grid-template-columns:1fr 1fr;gap:8px}.loan-section-label{font-size:12px;font-weight:600;color:var(--text-muted);margin:4px 0 6px;text-transform:uppercase;letter-spacing:.4px}.pocket-balance{font-size:16px;font-weight:700}.pocket-form{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.pocket-form-row{display:flex;gap:8px;align-items:center}.pocket-type-toggle{display:flex;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);flex-shrink:0}.pocket-type-btn{padding:8px 12px;font-size:12px;font-weight:600;background:none;border:none;cursor:pointer;color:var(--text-muted)}.pocket-type-btn--in{background:#dcfce7;color:#166534}.pocket-type-btn--out{background:#fee2e2;color:#991b1b}.pocket-log{display:flex;flex-direction:column;gap:0;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}.pocket-row{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13px;border-bottom:1px solid var(--border)}.pocket-row:last-child{border-bottom:none}.pocket-date{font-size:11px;color:var(--text-muted);min-width:36px;flex-shrink:0}.pocket-note{flex:1;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pocket-amount{font-weight:600;flex-shrink:0;font-size:13px}.summary-row--year{background:var(--bg);font-weight:700;font-size:13px;border-top:2px solid var(--border);color:var(--text-primary);padding-top:8px}.summary-comment-row{padding:3px 12px 6px;cursor:pointer;font-size:11px;color:var(--text-muted);background:var(--bg)}.summary-comment-row:hover{background:var(--surface)}.summary-comment-text{color:var(--primary)}.summary-comment-add{color:var(--text-muted);font-style:italic}.summary-comment-edit{display:flex;gap:6px;align-items:center;padding:4px 12px;background:var(--surface)}.converter-result{background:var(--bg);border-radius:var(--radius-sm);padding:10px 14px;display:flex;justify-content:space-between;align-items:center;border:1px solid var(--border)}.converter-result__value{font-size:18px;font-weight:700}.converter-result__rate{font-size:12px;color:var(--text-muted)}.converter-rates-grid{margin-top:8px}.sticky-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px 0 8px}.btn-xs{padding:4px 8px;font-size:11px;font-weight:600;border-radius:6px;cursor:pointer;border:none}.dima-month-banner{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,var(--primary) 0%,#7c3aed 100%);border-radius:var(--radius-lg, 16px);padding:16px 18px;margin-bottom:14px;color:#fff;position:relative}.dima-banner-left{flex:1;min-width:0}.dima-banner-title{display:block;font-size:16px;font-weight:700}.dima-banner-sub{font-size:12px;opacity:.75;margin-top:2px;display:block}.dima-banner-right{text-align:right;flex-shrink:0}.dima-banner-net-label{display:block;font-size:11px;opacity:.75}.dima-banner-net{display:block;font-size:22px;font-weight:800}.dima-banner-net.text-success{color:#86efac!important}.dima-banner-net.text-danger{color:#fca5a5!important}.dima-add-btn{display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.2);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;flex-shrink:0;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dima-add-btn:active{background:rgba(255,255,255,.3)}.dima-planned-days{cursor:pointer;text-decoration:underline dotted rgba(255,255,255,.5);opacity:.85}.dima-planned-days:hover{opacity:1}.dima-planned-edit{display:inline-flex;align-items:center;gap:4px}.dima-planned-input{width:44px;padding:1px 4px;font-size:12px;font-weight:600;border-radius:4px;border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.2);color:#fff;text-align:center}.dima-planned-input:focus{outline:none;background:rgba(255,255,255,.3)}.dima-planned-ok{background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:4px;padding:1px 6px;font-size:12px;cursor:pointer}.dima-stats-row{display:flex;gap:8px;margin-bottom:12px}.dima-stat-pill{flex:1;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:10px 12px;text-align:center}.dima-stat-pill--success{border-color:var(--success);background:#f0fdf4}.dima-stat-pill--danger{border-color:#fca5a5;background:#fff5f5}.dima-stat-pill-label{display:block;font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px}.dima-stat-pill-val{display:block;font-size:15px;font-weight:700}.dima-stat-pill-avg{display:block;font-size:10px;color:var(--text-muted);margin-top:2px}.dima-entry-row{display:flex;align-items:stretch;gap:12px;background:var(--card);border-radius:10px;padding:10px 12px;cursor:pointer;border:1px solid var(--border);transition:transform .1s}.dima-entry-row:active{transform:scale(.98)}.dima-entry-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:32px;flex-shrink:0}.dima-entry-day{font-size:18px;font-weight:800;line-height:1}.dima-entry-mon{font-size:10px;color:var(--text-muted);text-transform:uppercase}.dima-entry-body{flex:1;min-width:0}.dima-entry-top{display:flex;align-items:center;gap:8px;margin-bottom:3px}.dima-entry-gross{font-size:14px;font-weight:600}.dima-entry-km{font-size:11px;color:var(--text-muted)}.dima-entry-net-line{font-size:12px;color:var(--text-muted)}.dima-entry-del{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;align-self:center;opacity:.6;flex-shrink:0}.dima-entry-del:active{opacity:1;color:var(--danger)}.taxi-breakdown-info-block{margin:6px 0;padding:6px 8px;background:var(--bg);border-radius:6px;border:1px dashed var(--border)}.taxi-breakdown-info-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin-bottom:4px}.taxi-breakdown-row--info{color:var(--text-muted);font-size:12px}.taxi-breakdown-row--info span:last-child{color:var(--text-muted)}.quick-fill-btn{width:100%;padding:8px;font-size:12px;font-weight:600;background:var(--primary-light, #ede9fe);color:var(--primary);border:1px dashed var(--primary);border-radius:8px;cursor:pointer;margin-bottom:4px}.analytics-subtitle{font-size:13px;font-weight:700;color:var(--text);margin:0 0 10px}.analytics-card{background:var(--card);border-radius:var(--radius);padding:14px;border:1px solid var(--border)}.fetch-error-msg{font-size:12px;color:var(--danger);margin-top:6px;padding:6px 10px;background:#fee2e2;border-radius:6px}.trend-type-toggle{display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--border);margin-bottom:12px;width:fit-content}.trend-type-btn{padding:6px 14px;font-size:12px;font-weight:600;background:none;border:none;cursor:pointer;color:var(--text-muted);transition:all .15s}.trend-type-btn.active{background:var(--primary);color:#fff}.trend-table{width:100%}.trend-table-head{display:flex;gap:4px;padding:4px 0 6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:4px}.trend-table-row{display:flex;gap:4px;padding:5px 0;border-bottom:1px solid var(--border);align-items:center}.trend-table-row:last-child{border-bottom:none}.trend-cat-col{flex:2;min-width:0}.trend-cat-name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.trend-val-col{flex:1;font-size:11px;text-align:right;color:var(--text-muted);white-space:nowrap}.trend-val--current{font-weight:700;color:var(--text)}.trend-delta-col{flex:0 0 42px;text-align:right;font-size:11px;font-weight:700}.sodra-type-toggle{display:flex;border-radius:8px;overflow:hidden;border:1px solid var(--border);width:100%}.sodra-type-btn{flex:1;padding:7px 6px;font-size:11px;font-weight:600;background:none;border:none;cursor:pointer;color:var(--text-muted);border-right:1px solid var(--border);transition:all .15s;text-align:center}.sodra-type-btn:last-child{border-right:none}.sodra-type-btn.active{background:var(--primary);color:#fff}.loan-card{overflow:hidden}.loan-amounts{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.loan-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.loan-label{font-size:12px;color:var(--text-muted);min-width:80px}.loan-input{flex:1;max-width:120px;font-size:13px;font-weight:600;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);text-align:right}.loan-remaining{font-size:13px;margin-bottom:6px}.loan-bar-wrap{height:4px;background:var(--border);border-radius:2px;overflow:hidden}.loan-bar{height:100%;border-radius:2px;transition:width .5s}.month-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 0 10px}.analytics-card{background:var(--card);border-radius:var(--radius-md, 14px);padding:16px;margin-bottom:12px;box-shadow:0 1px 3px #0000000f;border:1px solid var(--border)}.taxi-fixed-toggle-row{display:flex;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:10px}.taxi-fixed-toggle-info{flex:1}.taxi-fixed-toggle-title{display:block;font-size:13px;font-weight:600}.taxi-fixed-toggle-sub{display:block;font-size:11px;color:var(--text-muted);margin-top:2px}.taxi-fixed-toggle-note{font-size:11px;color:var(--primary);background:var(--primary-light, #ede9fe);border-radius:8px;padding:6px 10px;margin-bottom:10px;margin-top:-4px}.dima-entry-fixed-badge{display:inline-block;font-size:10px;color:var(--primary);background:var(--primary-light, #ede9fe);border-radius:4px;padding:1px 5px;margin-left:6px;font-weight:600}.taxi-breakdown-reconciled{color:var(--warning, #d97706);font-size:11px}.dima-fixed-toggle-row{display:flex;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:8px 14px;margin-bottom:12px}.dima-fixed-toggle-label{display:flex;align-items:center;gap:10px;cursor:pointer}.dima-fixed-toggle-text{font-size:13px;font-weight:600}.dima-fixed-toggle-hint{font-size:12px;color:var(--text-muted)}.dima-toggle-btn{position:relative;width:40px;height:22px;background:var(--border);border:none;border-radius:11px;cursor:pointer;transition:background .2s;flex-shrink:0}.dima-toggle-btn--on{background:var(--primary)}.dima-toggle-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:white;transition:transform .2s;box-shadow:0 1px 3px #00000026}.dima-toggle-btn--on .dima-toggle-knob{transform:translate(18px)}.nav-sync-dot{position:absolute;bottom:10px;right:10px;width:8px;height:8px;border-radius:50%;pointer-events:none}.savings-rate-bar{background:var(--card);border-radius:12px;padding:10px 14px;margin-bottom:14px;border:1px solid var(--border)}
