input,select,textarea,button,a{font-size:16px;touch-action:manipulation}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #faf8f5;--surface: #fff;--text: #1a1a1a;--text-muted: #9c9c9c;--text-light: #c4c4c4;--border: #ece8e3;--shadow: 0 2px 12px rgba(0, 0, 0, .04);--nav-bg: rgba(255, 255, 255, .78);--radius: 20px;--radius-sm: 12px;--green: #2b8a5e;--red: #d94a4a;--font-serif: "Playfair Display", serif;--font-sans: "Inter", system-ui, -apple-system, sans-serif}[data-theme=dark]{--bg: #0d0d0d;--surface: #161616;--text: #ddd;--text-muted: #6a6a6a;--text-light: #4a4a4a;--border: #222;--shadow: 0 2px 12px rgba(0, 0, 0, .35);--nav-bg: rgba(13, 13, 13, .94);--green: #3da06e;--red: #e05555}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.5;min-height:100dvh;display:flex;justify-content:center;font-weight:400}#app{width:100%;max-width:480px;position:relative;min-height:100dvh;padding:0 1.25rem 6rem}@media(min-width:600px){#app{max-width:600px;padding:0 2rem 6rem}}@media(min-width:900px){#app{max-width:800px;padding:0 2.5rem 6rem}:root{--radius: 24px;--radius-sm: 14px}.bottom-nav{max-width:600px}}@keyframes blink{50%{opacity:0}}@keyframes fadeIn{to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#2d0b4e;transition:opacity .5s ease,visibility .5s ease}.splash-credit{position:fixed;bottom:2.25rem;right:1.25rem;font-size:.55rem;color:#b89ad9;letter-spacing:.2em;text-transform:uppercase;opacity:0;animation:fadeIn 1s ease forwards;animation-delay:2s}.splash.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.splash-title{font-family:var(--font-serif);font-size:4rem;font-weight:700;letter-spacing:.05em;color:#eee}.splash-cursor{font-family:var(--font-serif);font-size:4rem;font-weight:700;color:#eee;animation:blink .8s step-end infinite}.splash-slogan{margin-top:.75rem;font-size:.75rem;color:#b89ad9;letter-spacing:.15em;opacity:0;animation:fadeIn 1s ease forwards;animation-delay:1.5s}.splash-version{position:fixed;bottom:.75rem;right:1.25rem;font-size:.5rem;color:#8a6daa;letter-spacing:.15em;opacity:0;animation:fadeIn 1s ease forwards;animation-delay:2.5s}.home{padding-top:2rem}.home-header{text-align:center;margin-bottom:1.75rem}.home-brand{font-family:var(--font-serif);font-size:1.8rem;font-weight:700;color:var(--text);margin-bottom:.5rem;letter-spacing:.08em}.home-brand-jp{font-size:1rem;font-weight:400;color:var(--text-muted);letter-spacing:.1em;margin-left:.4rem}.home-balance{display:flex;flex-direction:column;gap:.15rem}.home-balance-amount{font-size:2.8rem;font-weight:600;letter-spacing:-.02em;color:var(--text)}.home-balance-amount.is-negative{color:var(--red)}.home-balance-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;font-weight:400}.month-selector{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem}.month-btn{background:var(--surface);border:1px solid var(--border);border-radius:50%;width:36px;height:36px;font-size:.9rem;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:var(--shadow)}.month-btn:hover{border-color:var(--text-muted);color:var(--text)}.month-label{font-size:.85rem;font-weight:500;color:var(--text-muted);min-width:120px;text-align:center}.totals{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.75rem}.total-card{background:var(--surface);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;gap:.3rem;text-align:center}.total-value{display:flex;flex-direction:column;align-items:center;gap:0}.total-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.total-card--expense .total-icon{background:#d94a4a14;color:var(--red)}.total-card--income .total-icon{background:#2b8a5e14;color:var(--green)}.total-label{display:block;font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.1rem}.total-amount{display:block;font-size:1rem;font-weight:600}.total-card--expense .total-amount{color:var(--red)}.total-card--income .total-amount{color:var(--green)}.categories{background:var(--surface);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow);margin-bottom:1.5rem}.categories-title{font-size:.8rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem}.categories-list{display:flex;flex-direction:column;gap:.6rem}.category-item{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.15rem .75rem;align-items:center}.category-bar{grid-column:1 / -1;height:6px;background:var(--border);border-radius:99px;position:relative;overflow:hidden}.category-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bar-color, var(--text));border-radius:99px;width:var(--bar-width, 0%)}.category-name{font-size:.8rem;font-weight:500;color:var(--text)}.category-value{font-size:.8rem;font-weight:500;color:var(--text-muted);text-align:right}@media(min-width:600px){.home-brand,.home-balance-amount{font-size:2rem}.totals{gap:1rem}.total-card{padding:1.25rem}.total-amount{font-size:1.15rem}.categories{padding:1.5rem}}@media(min-width:900px){.home-brand{font-size:2.2rem}.home-header{margin-bottom:2rem}.home-balance-amount{font-size:2.2rem}.totals{gap:1.25rem}.total-card{padding:1.5rem}.total-amount{font-size:1.25rem}.category-name,.category-value{font-size:.9rem}}.bottom-nav{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);width:calc(100% - 2.5rem);max-width:440px;background:var(--nav-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:28px;box-shadow:0 4px 24px #0000000f;display:flex;justify-content:space-around;padding:.4rem;padding-bottom:max(.4rem,env(safe-area-inset-bottom));z-index:100}@media(min-width:900px){.bottom-nav{max-width:520px;padding:.5rem;border-radius:32px}.nav-btn{padding:.6rem 1rem}.speed-dial{bottom:6rem;right:calc(50% - 380px)}.fab{width:56px;height:56px;font-size:2.2rem}}.nav-btn{background:none;border:none;color:var(--text-light);cursor:pointer;padding:.5rem .75rem;border-radius:22px;transition:all .25s ease;display:flex;align-items:center;justify-content:center}.nav-btn:hover{background:#0000000a;color:var(--text)}.nav-btn--active{background:#0000000f;color:var(--text)}.fab{position:fixed;bottom:5.5rem;right:1.25rem;width:52px;height:52px;border-radius:50%;background:var(--text);color:var(--bg);border:none;font-size:2rem;font-weight:400;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10}.fab--pdf{bottom:9.5rem;width:44px;height:44px;font-size:0;background:var(--surface);color:var(--text);border:1.5px solid var(--border);box-shadow:0 2px 12px #0000000f}.speed-dial{position:fixed;bottom:5.5rem;right:1.25rem;display:flex;flex-direction:column;align-items:flex-end;z-index:110}.speed-dial-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;margin-bottom:.75rem;pointer-events:none;opacity:0;transform:translateY(10px);transition:all .2s ease}.speed-dial.is-open .speed-dial-actions{pointer-events:auto;opacity:1;transform:translateY(0)}.speed-dial-action{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:24px;border:1.5px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-size:.82rem;font-weight:500;cursor:pointer;box-shadow:0 2px 12px #0000000f;white-space:nowrap;transition:background .2s}.speed-dial-action:active{background:var(--border)}.speed-dial-action svg{flex-shrink:0}.speed-dial .fab{position:static;z-index:1;transition:transform .2s}.speed-dial.is-open .fab{transform:rotate(45deg)}.is-hidden{display:none!important}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0000004d;display:flex;align-items:flex-end;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.modal-overlay.is-open{opacity:1;visibility:visible}.modal-sheet{width:100%;max-width:480px;background:var(--surface);border-radius:24px 24px 0 0;padding:.75rem 1.5rem 4rem;transform:translateY(100%);transition:transform .35s ease;box-shadow:0 -4px 30px #00000014;min-height:50dvh;max-height:92dvh;overflow-y:auto}@media(min-width:900px){.modal-sheet{max-width:600px;border-radius:28px;padding:1rem 2rem 3rem;min-height:auto;max-height:80dvh}}.modal-overlay.is-open .modal-sheet{transform:translateY(0)}.modal-handle{width:36px;height:4px;background:var(--border);border-radius:99px;margin:0 auto 1.25rem}.modal-body{overflow:hidden}.modal-step.is-hidden{display:none}#step-detalle{min-height:55dvh}.modal-header{display:flex;align-items:center;margin-bottom:1.5rem;min-height:36px}.modal-header-title{flex:1;text-align:center}.modal-back{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s;flex-shrink:0}.modal-back:hover{background:var(--border)}.modal-back-spacer{width:36px;flex-shrink:0}.modal-title{font-size:1rem;font-weight:600;text-align:center;color:var(--text)}.modal-options{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.modal-option{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.25rem;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--bg);cursor:pointer;font-size:.9rem;font-weight:500;color:var(--text);transition:all .2s;font-family:inherit}.modal-option:hover{border-color:var(--text-muted)}.modal-option-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem}.modal-option--expense .modal-option-icon{background:#d94a4a14;color:var(--red)}.modal-option--expense:hover{border-color:var(--red)}.modal-option--income .modal-option-icon{background:#2b8a5e14;color:var(--green)}.modal-option--income:hover{border-color:var(--green)}.modal-categories{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:.75rem}.cat-btn{padding:.5rem 1rem;border-radius:99px;border:1.5px solid var(--border);background:var(--bg);font-size:.8rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .2s;font-family:inherit}.cat-btn:hover{border-color:var(--text);color:var(--text)}.cat-btn.is-selected{background:var(--text);color:#fff;border-color:var(--text)}.modal-add-cat{display:flex;gap:.5rem;align-items:center;justify-content:center;margin-bottom:1.25rem}.modal-add-cat-input{padding:.4rem .75rem;border-radius:99px;border:1.5px solid var(--border);background:var(--bg);font-size:16px;font-family:inherit;outline:none;width:140px;color:var(--text)}.modal-add-cat-input:focus{border-color:var(--text-muted)}.modal-add-cat-btn{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s;font-family:inherit}.modal-add-cat-btn:hover{border-color:var(--green);color:var(--green)}.modal-subs{margin:.5rem 0}.modal-subs-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.35rem}.modal-subs-list{display:flex;flex-wrap:wrap;gap:.35rem}.sub-btn{padding:.3rem .6rem;border-radius:99px;border:1px solid var(--border);background:var(--bg);font-size:.75rem;font-weight:500;color:var(--text);cursor:pointer;font-family:inherit;transition:all .2s}.sub-btn.is-selected{background:var(--text);color:var(--bg);border-color:var(--text)}.modal-date-group{display:flex;justify-content:center;gap:.5rem;margin-bottom:.75rem}.modal-date-select{font-family:inherit;font-size:16px;padding:.3rem .4rem;border-radius:99px;border:1.5px solid var(--border);background:var(--bg);color:var(--text);outline:none;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;text-align:center;text-align-last:center}.modal-date-select::-ms-expand{display:none}.modal-date-day{width:3.2rem}.modal-date-month{width:7.5rem}.modal-date-year{width:4.5rem}.modal-input-group{display:flex;align-items:center;justify-content:center;gap:.25rem;margin-bottom:1.25rem;max-width:100%}.modal-currency{font-size:1.6rem;font-weight:500;color:var(--text-muted);flex-shrink:0}.modal-input{font-size:2.4rem;font-weight:600;background:none;border:none;outline:none;width:0;min-width:80px;flex:1;max-width:260px;text-align:center;color:var(--text);font-family:inherit;-moz-appearance:textfield}.modal-input::-webkit-outer-spin-button,.modal-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.modal-input::placeholder{color:var(--text-light)}.modal-submit{display:block;width:100%;padding:.9rem;border-radius:var(--radius);border:none;background:var(--text);color:#fff;font-size:.95rem;font-weight:500;cursor:pointer;transition:opacity .2s;font-family:inherit}.modal-submit:hover{opacity:.85}.modal-submit:disabled{opacity:.4;cursor:not-allowed}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#0000004d;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s}.confirm-overlay.is-open{opacity:1;pointer-events:auto}.confirm-dialog{background:var(--surface);border-radius:var(--radius);padding:2.5rem 1.5rem 1.5rem;width:calc(100% - 3rem);max-width:320px;box-shadow:0 8px 32px #0000001f;position:relative}.confirm-close{position:absolute;top:.75rem;right:.75rem;width:28px;height:28px;border-radius:50%;border:none;background:var(--border);color:var(--text-muted);font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.confirm-close:hover{background:var(--text-light)}.confirm-text{font-size:.95rem;font-weight:500;color:var(--text);margin-bottom:1.25rem;text-align:center;line-height:1.5}.confirm-actions{display:flex;gap:.5rem}.confirm-btn{flex:1;padding:.65rem;border-radius:var(--radius-sm);border:none;font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .2s}.confirm-btn:active{opacity:.7}.confirm-btn--cancel{background:var(--border);color:var(--text)}.confirm-btn--ok{background:var(--text);color:var(--bg)}.toast{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);z-index:400;background:var(--text);color:var(--bg);padding:.6rem 1.2rem;border-radius:99px;font-size:.85rem;font-weight:500;font-family:inherit;box-shadow:0 4px 16px #00000026;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;white-space:nowrap}.toast.is-visible{opacity:1}.changelog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#00000073;display:none;align-items:center;justify-content:center;padding:2rem 1.5rem}.changelog-overlay.is-open{display:flex}.changelog-modal{background:var(--surface);border-radius:calc(var(--radius) + 4px);max-width:380px;width:100%;max-height:75vh;display:flex;flex-direction:column;box-shadow:0 12px 40px #0000002e;animation:slideUp .35s ease;overflow:hidden}.changelog-header{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:1.25rem 1.5rem .6rem}.changelog-title{font-size:1.2rem;font-weight:700;margin:0;color:var(--text)}.changelog-ver{font-size:.7rem;font-weight:700;background:var(--text);color:var(--bg);padding:.2rem .6rem;border-radius:99px;line-height:1.4}.changelog-list{flex:1;overflow-y:auto;padding:.25rem 1.5rem .75rem;scrollbar-width:thin}.changelog-entry{margin-bottom:.75rem}.changelog-version{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.5rem}.changelog-items{margin:0;padding:0;list-style:none}.changelog-items li{font-size:.82rem;line-height:1.5;color:var(--text);padding:.3rem 0 .3rem 1.1rem;position:relative}.changelog-items li:before{content:"";position:absolute;left:0;top:.65rem;width:5px;height:5px;border-radius:50%;background:var(--text-muted)}.changelog-btn{margin:.25rem 1.5rem 1.25rem;padding:.75rem;border-radius:var(--radius-sm);border:none;background:var(--text);color:var(--bg);font-size:.9rem;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .2s}.changelog-btn:active{opacity:.7}.pdf-map-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#00000073;display:none;align-items:center;justify-content:center;padding:1.5rem}.pdf-map-overlay.is-open{display:flex}.pdf-map-modal{background:var(--surface);border-radius:calc(var(--radius) + 4px);max-width:420px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 12px 40px #0000002e;animation:slideUp .35s ease;overflow:hidden}.pdf-map-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .5rem}.pdf-map-title{font-size:1.1rem;font-weight:700;margin:0;color:var(--text)}.pdf-map-period{font-size:.75rem;font-weight:600;color:var(--text-muted);background:var(--bg);padding:.2rem .6rem;border-radius:99px}.pdf-map-list{flex:1;overflow-y:auto;padding:.5rem 1.25rem .75rem;scrollbar-width:thin}.pdf-map-row{display:flex;flex-direction:column;gap:.35rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.pdf-map-row:last-child{border-bottom:none}.pdf-map-info{display:flex;align-items:center;gap:.5rem}.pdf-map-sub{flex:1;font-size:.82rem;font-weight:600;color:var(--text)}.pdf-map-monto{font-size:.8rem;font-weight:700;color:var(--red)}.pdf-map-monto.is-income{color:var(--green)}.pdf-map-count{font-size:.65rem;color:var(--text-muted);background:var(--bg);border-radius:99px;padding:.05rem .45rem;min-width:1.3rem;text-align:center}.pdf-map-select,.pdf-map-input{font-family:inherit;font-size:.78rem;padding:.3rem .5rem;border-radius:99px;border:1.5px solid var(--border);background:var(--bg);color:var(--text);outline:none;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%}.pdf-map-input{cursor:text;font-size:16px}.pdf-map-btn{margin:.25rem 1.25rem 1.25rem;padding:.75rem;border-radius:var(--radius-sm);border:none;background:var(--text);color:var(--bg);font-size:.9rem;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .2s}.pdf-map-btn:active{opacity:.7}.bank-select-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:1000;display:none;align-items:center;justify-content:center;padding:1rem}.bank-select-overlay.is-open{display:flex}.bank-select-modal{background:var(--surface);border-radius:var(--radius);padding:1.5rem;width:60%;max-width:280px;display:flex;flex-direction:column;gap:.75rem;position:relative}.bank-select-header{display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:.25rem}.bank-select-title{font-family:Inter,sans-serif;font-size:1rem;font-weight:600;color:var(--text);text-align:center}.bank-select-close{position:absolute;right:-.5rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.1rem;color:var(--text-muted);cursor:pointer;padding:.25rem;line-height:1}.bank-select-option{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem 1rem;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg);cursor:pointer;text-align:center;font-family:inherit;transition:background .2s}.bank-select-option:active{background:var(--border)}.bank-select-icon{flex-shrink:0;width:28px;height:28px;border-radius:6px;object-fit:contain}.bank-select-name{font-size:.95rem;font-weight:600;color:var(--text)}.view{display:none;padding-top:2rem}.view.is-active{display:block;animation:slideUp .35s ease}.settings-header{text-align:center;margin-bottom:2rem}.settings-title{font-size:1.4rem;font-weight:700}.settings-group{background:var(--surface);border-radius:var(--radius);padding:.9rem 1.25rem;box-shadow:var(--shadow);margin-bottom:.75rem}.settings-group-title{font-size:.65rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem}.settings-cat-list{display:flex;flex-wrap:wrap;gap:.5rem}.settings-cat-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:99px;background:var(--bg);border:1px solid var(--border);font-size:.8rem;font-weight:500;color:var(--text)}.settings-cat-chip.is-default{opacity:.7;border-style:dashed}.settings-cat-del{background:none;border:none;color:var(--text-light);cursor:pointer;padding:0;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:color .2s}.settings-cat-del:hover{color:var(--red)}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:.35rem 0;font-size:.85rem;font-weight:500;gap:.5rem}.settings-row>span{flex-shrink:0;white-space:nowrap}.settings-row .settings-select{min-width:0;flex-shrink:1;width:100%}.settings-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:44px;height:24px;border-radius:99px;background:var(--border);cursor:pointer;position:relative;transition:background .2s;flex-shrink:0}.settings-toggle:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #00000026}.settings-toggle:checked{background:var(--text)}.settings-toggle:checked:after{transform:translate(20px)}.settings-select{padding:.35rem .6rem;border-radius:99px;border:1px solid var(--border);background:var(--bg);font-size:.8rem;font-family:inherit;color:var(--text);cursor:pointer;outline:none;max-width:100%;overflow:hidden;text-overflow:ellipsis}.settings-btn{width:100%;padding:.75rem;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg);font-size:.85rem;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s}.settings-btn--danger{border-color:#d94a4a4d;color:var(--red)}.settings-btn--danger:hover{background:#d94a4a0f}.settings-subs{margin-top:.75rem}.settings-sub-group{margin-bottom:.5rem}.settings-sub-cat{font-size:.75rem;font-weight:600;color:var(--text-muted);display:block;margin-bottom:.25rem}.settings-sub-list{display:flex;flex-wrap:wrap;gap:.35rem}.settings-sub-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border-radius:99px;background:var(--bg);border:1px solid var(--border);font-size:.7rem;font-weight:500;color:var(--text)}.settings-sub-del{background:none;border:none;color:var(--text-light);cursor:pointer;padding:0;font-size:.75rem;line-height:1;transition:color .2s}.settings-sub-del:hover{color:var(--red)}.settings-sub-input{width:2rem;border:none;background:transparent;font-size:16px;color:var(--text-muted);outline:none;font-family:inherit}.settings-text{font-size:.8rem;color:var(--text-light);line-height:1.5;margin:0 0 .5rem}.settings-text--small{font-size:.75rem;font-style:italic;margin-bottom:0}.settings-link{display:inline-block;font-size:.85rem;color:var(--text);text-decoration:underline;text-underline-offset:2px}.settings-link--contact{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;text-decoration:none}.settings-link--contact:last-child{margin-bottom:0}.settings-link--contact svg{flex-shrink:0}.settings-btn--donate{display:block;width:100%;padding:.75rem;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg);font-size:.85rem;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s;text-align:center;text-decoration:none;color:var(--text)}.settings-btn--donate:hover{background:var(--surface);border-color:var(--text-muted)}.stats-header{text-align:center;margin-bottom:1.5rem}.stats-title{font-size:1.4rem;font-weight:700}.stats-month-bar{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.25rem}.stats-cards{display:flex;gap:.5rem;margin-bottom:1.25rem}.stats-card{flex:1;background:var(--surface);border-radius:var(--radius);padding:1rem .75rem;box-shadow:var(--shadow);text-align:center}.stats-card-label{display:block;font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.35rem}.stats-card-value{display:block;font-size:1.05rem;font-weight:700;word-break:break-all}.stats-card--expense .stats-card-value{color:var(--red)}.stats-card--income .stats-card-value{color:var(--green)}.stats-card--balance .stats-card-value{color:var(--text)}.stats-section{margin-bottom:1.25rem}.stats-section-title{font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem}.stats-bars{display:flex;flex-direction:column;gap:.6rem;background:var(--surface);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow)}.stats-bar-row{display:flex;align-items:center;gap:.6rem}.stats-bar-cat{width:5rem;font-size:.75rem;font-weight:600;color:var(--text-muted);text-align:right;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-bar-track{flex:1;height:8px;border-radius:99px;background:var(--border);overflow:hidden}.stats-bar-fill{height:100%;border-radius:99px;transition:width .4s ease}.stats-bar-val{min-width:5rem;font-size:.75rem;font-weight:600;color:var(--text);text-align:right;flex-shrink:0;white-space:nowrap}.stats-chart{display:flex;align-items:flex-end;gap:.4rem;background:var(--surface);border-radius:var(--radius);padding:1.25rem;box-shadow:var(--shadow);height:180px}.stats-chart-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:.25rem;position:relative}.stats-chart-bars{width:100%;display:flex;gap:2px;align-items:flex-end;flex:1}.stats-chart-bar{flex:1;border-radius:3px 3px 0 0;min-height:2px;transition:height .4s ease}.stats-chart-bar--expense{background:var(--red)}.stats-chart-bar--income{background:var(--green)}.stats-chart-label{font-size:.6rem;color:var(--text-muted);text-align:center;white-space:nowrap}.stats-empty{text-align:center;color:var(--text-muted);font-size:.85rem;padding:3rem 0}.stats-actions{margin-bottom:1rem}.stats-btn{width:100%;padding:.65rem;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg);font-size:.85rem;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s}.stats-btn--danger{border-color:#d94a4a4d;color:var(--red)}.stats-btn--danger:hover{background:#d94a4a0f}.stats-list{display:flex;flex-direction:column;gap:.5rem}.stats-item{display:flex;align-items:center;gap:.75rem;background:var(--surface);border-radius:var(--radius-sm);padding:.75rem 1rem;box-shadow:var(--shadow)}.stats-item-info{flex:1;min-width:0}.stats-item-cat{font-size:.8rem;font-weight:600;color:var(--text)}.stats-item-date{font-size:.7rem;color:var(--text-muted)}.stats-item-amount{font-size:.9rem;font-weight:600;color:var(--red);flex-shrink:0}.stats-item-amount.is-income{color:var(--green)}.stats-item-del{background:none;border:none;color:var(--text-light);cursor:pointer;padding:.25rem;font-size:1rem;line-height:1;transition:color .2s;flex-shrink:0}.stats-item-del:hover{color:var(--red)}.stats-group{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);margin-bottom:.6rem;overflow:hidden}.stats-group-header{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent}.stats-group-header:hover{background:color-mix(in srgb,var(--bg) 50%,transparent)}.stats-group-label{flex:1;font-size:.85rem;font-weight:600;color:var(--text)}.stats-group-total{font-size:.85rem;font-weight:700;color:var(--red)}.stats-group-total.is-income{color:var(--green)}.stats-group-count{font-size:.7rem;color:var(--text-muted);background:var(--bg);border-radius:99px;padding:.1rem .5rem;min-width:1.5rem;text-align:center}.stats-group-items{display:none;border-top:1px solid var(--border)}.stats-group-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.75rem}.stats-group-item .stats-item-cat{flex:1;font-weight:500}.stats-group-item .stats-item-date{font-size:.65rem}.stats-group-item .stats-item-amount{font-size:.8rem}.detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:1000;display:none;align-items:flex-end;justify-content:center}.detail-overlay.is-open{display:flex}.detail-sheet{background:var(--surface);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:480px;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 -4px 24px #0000001a;animation:slideUp .3s ease}.detail-handle{width:36px;height:4px;border-radius:99px;background:var(--border);margin:.5rem auto}.detail-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem .75rem;border-bottom:1px solid var(--border)}.detail-title{font-size:1rem;font-weight:700;margin:0}.detail-close{background:none;border:none;font-size:1.1rem;color:var(--text-light);cursor:pointer;padding:.25rem;line-height:1}.detail-list{overflow-y:auto;padding:.5rem 1rem 1.5rem}.detail-item{display:flex;align-items:center;gap:.5rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.detail-item:last-child{border-bottom:none}.detail-item-info{flex:1;display:flex;flex-direction:column;gap:.1rem}.detail-item-cat{font-size:.8rem;font-weight:600;color:var(--text)}.detail-item-date{font-size:.65rem;color:var(--text-muted)}.detail-item-amount{font-size:.85rem;font-weight:700;color:var(--red)}.detail-item-amount.is-income{color:var(--green)}.detail-item-del{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:.85rem;padding:.25rem;line-height:1;transition:color .15s}.detail-item-del:hover{color:var(--red)}.detail-group{margin-bottom:1rem}.detail-group-header{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--border);margin-bottom:.3rem}.detail-group-label{flex:1;font-size:.8rem;font-weight:600;color:var(--text)}.detail-group-total{font-size:.8rem;font-weight:700;color:var(--red)}.detail-group-total.is-income{color:var(--green)}.detail-group-count{font-size:.65rem;color:var(--text-muted);background:var(--bg);border-radius:99px;padding:.05rem .45rem;min-width:1.3rem;text-align:center}.detail-group-item{display:flex;align-items:center;gap:.5rem;padding:.35rem 0 .35rem .5rem}.detail-group-item .detail-item-date{flex:1}.install-prompt{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:flex;align-items:center;justify-content:center;background:#00000059;opacity:0;pointer-events:none;transition:opacity .4s ease}.install-prompt.is-open{opacity:1;pointer-events:auto}.install-card{background:var(--surface);border-radius:24px;padding:2rem 1.5rem 1.25rem;width:calc(100% - 3rem);max-width:320px;text-align:center;box-shadow:0 8px 40px #00000026;animation:slideUp .35s ease}.install-icon{color:var(--text);margin-bottom:.75rem}.install-title{font-size:1.1rem;font-weight:700;margin-bottom:.5rem;color:var(--text)}.install-desc{font-size:.8rem;color:var(--text-muted);margin-bottom:1.25rem;line-height:1.5}.install-ios{display:none;margin-bottom:1rem}.install-ios-text{font-size:.75rem;color:var(--text-muted);line-height:1.5;padding:.75rem;background:var(--bg);border-radius:var(--radius-sm)}.install-btn{width:100%;padding:.75rem;border-radius:var(--radius-sm);border:none;background:var(--text);color:var(--bg);font-size:.9rem;font-weight:600;cursor:pointer;font-family:inherit;margin-bottom:.5rem}.install-btn:active{opacity:.7}.install-skip{background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;padding:.25rem;font-family:inherit}.yutori-tour-popover{font-family:var(--font-sans)}.yutori-tour-popover .driver-popover-title{font-size:1rem;font-weight:600;color:var(--text)}.yutori-tour-popover .driver-popover-description{font-size:.85rem;line-height:1.55;color:var(--text-muted)}.yutori-tour-popover .driver-popover-progress-text{font-size:.75rem;color:var(--text-light)}.yutori-tour-popover .driver-popover-footer button{font-size:.8rem;border-radius:8px}.yutori-tour-popover .driver-popover-footer .driver-btn-primary{background:var(--green);border-color:var(--green)}.yutori-tour-popover .driver-popover-footer .driver-btn-primary:hover{filter:brightness(1.1)}[data-theme=dark] .yutori-tour-popover{--driver-popover-bg-color: var(--surface);--driver-popover-border-color: var(--border)}[data-theme=dark] .yutori-tour-popover .driver-popover-title{color:var(--text)}[data-theme=dark] .yutori-tour-popover .driver-popover-description{color:var(--text-muted)}[data-theme=dark] .yutori-tour-popover .driver-popover-footer button{color:var(--text)}
