:root{--color-primary:#0256e4;--color-primary-dark:#0b2145;--color-primary-light:#eaf2fe;--color-bg:#fff;--color-surface:#fff;--color-surface-alt:#f7f9fc;--color-border:#e3e8f0;--color-text:#1a1a1a;--color-text-muted:#7a8699;--color-danger:#c0392b;--color-danger-bg:#fbe9e7;--color-success:#2e7d4f;--color-success-bg:#e8f5ec;--color-warning:#b45309;--color-warning-bg:#fff4e6;--brush-stroke:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 48' preserveAspectRatio='none'%3E%3Cpath d='M4,29 C16,15 42,10 72,13 C102,16 130,8 160,12 C186,15 214,11 236,20 C230,33 206,39 178,36 C148,33 118,41 86,38 C56,35 20,40 4,29 Z' fill='%23ffd23f' opacity='.55'/%3E%3Cpath d='M20,32 C44,24 74,28 104,25 C136,22 172,29 210,24 C218,23 228,25 234,23 C228,32 208,37 180,35 C150,32 120,39 90,36 C64,34 34,37 20,32 Z' fill='%23f2b705' opacity='.32'/%3E%3C/svg%3E");--color-income:#2563eb;--color-expense:#c0392b;--color-chip-neutral-bg:#eaeef5;--color-chart-warm:#f97316;--color-chart-warm-bg:#fef0e2;--color-chart-purple:#7c3aed;--color-chart-purple-bg:#f1e9fd;--color-chart-teal:#0d9488;--color-chart-teal-bg:#e1f5f2;--color-input-bg:#fff;--color-overlay:#0f172a73;--color-toggle-track-off:#cbd5e1;--color-toggle-thumb:#fff;--color-scrim:#0000000f;--radius:6px;--radius-sm:4px;--radius-lg:8px;--shadow:0 1px 2px #10182008, 0 3px 8px #10182009;--shadow-hover:0 2px 4px #1018200a, 0 8px 16px #1018200f;--focus-ring:0 0 0 3px #0256e429;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,Helvetica Neue,Arial,sans-serif}[data-theme=light]{--color-primary:#0256e4;--color-primary-dark:#0b2145;--color-primary-light:#eaf2fe;--color-bg:#fff;--color-surface:#fff;--color-surface-alt:#f7f9fc;--color-border:#e3e8f0;--color-text:#1a1a1a;--color-text-muted:#7a8699;--color-danger:#c0392b;--color-danger-bg:#fbe9e7;--color-success:#2e7d4f;--color-success-bg:#e8f5ec;--color-warning:#b45309;--color-warning-bg:#fff4e6;--brush-stroke:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 48' preserveAspectRatio='none'%3E%3Cpath d='M4,29 C16,15 42,10 72,13 C102,16 130,8 160,12 C186,15 214,11 236,20 C230,33 206,39 178,36 C148,33 118,41 86,38 C56,35 20,40 4,29 Z' fill='%23ffd23f' opacity='.55'/%3E%3Cpath d='M20,32 C44,24 74,28 104,25 C136,22 172,29 210,24 C218,23 228,25 234,23 C228,32 208,37 180,35 C150,32 120,39 90,36 C64,34 34,37 20,32 Z' fill='%23f2b705' opacity='.32'/%3E%3C/svg%3E");--color-income:#2563eb;--color-expense:#c0392b;--color-chart-warm:#f97316;--color-chart-warm-bg:#fef0e2;--color-chart-purple:#7c3aed;--color-chart-purple-bg:#f1e9fd;--color-chart-teal:#0d9488;--color-chart-teal-bg:#e1f5f2;--color-chip-neutral-bg:#eaeef5;--color-input-bg:#fff;--color-overlay:#0f172a73;--color-toggle-track-off:#cbd5e1;--color-toggle-thumb:#fff;--color-scrim:#0000000f;--shadow:0 1px 2px #10182008, 0 3px 8px #10182009;--shadow-hover:0 2px 4px #1018200a, 0 8px 16px #1018200f;--focus-ring:0 0 0 3px #0256e429;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--color-primary:#4d8bff;--color-primary-dark:#123a8a;--color-primary-light:#4d8bff29;--color-bg:#0f1420;--color-surface:#171e2c;--color-surface-alt:#1e2636;--color-border:#2b3547;--color-text:#e7ebf3;--color-text-muted:#8d97ab;--color-danger:#ef6a5a;--color-danger-bg:#ef6a5a29;--color-success:#4fbf85;--color-success-bg:#4fbf8529;--color-warning:#f0a742;--color-warning-bg:#f0a74229;--brush-stroke:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 48' preserveAspectRatio='none'%3E%3Cpath d='M4,29 C16,15 42,10 72,13 C102,16 130,8 160,12 C186,15 214,11 236,20 C230,33 206,39 178,36 C148,33 118,41 86,38 C56,35 20,40 4,29 Z' fill='%23ffd23f' opacity='.3'/%3E%3Cpath d='M20,32 C44,24 74,28 104,25 C136,22 172,29 210,24 C218,23 228,25 234,23 C228,32 208,37 180,35 C150,32 120,39 90,36 C64,34 34,37 20,32 Z' fill='%23f0a742' opacity='.22'/%3E%3C/svg%3E");--color-income:#6c9dff;--color-expense:#ef6a5a;--color-chart-warm:#fb923c;--color-chart-warm-bg:#fb923c29;--color-chart-purple:#a78bfa;--color-chart-purple-bg:#a78bfa29;--color-chart-teal:#2dd4bf;--color-chart-teal-bg:#2dd4bf29;--color-chip-neutral-bg:#232c3d;--color-input-bg:#1a2233;--color-overlay:#0009;--color-toggle-track-off:#3a4358;--color-toggle-thumb:#e7ebf3;--color-scrim:#ffffff14;--shadow:0 1px 2px #0003, 0 3px 8px #0000003d;--shadow-hover:0 2px 4px #0000003d, 0 8px 16px #00000052;--focus-ring:0 0 0 3px #4d8bff47;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}html,body,#app{height:100%}html{scrollbar-gutter:stable;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-text);margin:0}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:650}button{font-family:inherit}a{color:var(--color-primary)}a,button,input,select,textarea{transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s}.btn{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.32rem .75rem;font-size:.8rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 1px 2px #1018201f}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 4px 10px #10182038}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #1018201f}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-link{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500}.btn-link:disabled{cursor:not-allowed;opacity:.6}.btn-secondary{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;gap:.4rem;padding:.32rem .75rem;font-size:.8rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.btn-secondary:hover:not(:disabled){background:var(--color-primary-light)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-sm{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;justify-content:center;align-items:center;padding:.32rem .75rem;font-size:.8rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn-sm:hover:not(:disabled){background:var(--color-primary-light)}.btn-sm:disabled{opacity:.6;cursor:not-allowed}.btn-sm.danger{color:var(--color-danger);border-color:var(--color-danger-bg)}.btn-sm.danger:hover:not(:disabled){background:var(--color-danger-bg)}.form-field{text-align:left;flex-direction:column;gap:.35rem;margin-bottom:1.1rem;display:flex}.form-field label{color:var(--color-text-muted);font-size:.85rem;font-weight:600}.form-field input,.form-field textarea{border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-input-bg);color:var(--color-text);padding:.55rem .75rem;font-family:inherit;font-size:.9rem}.form-field select{border-radius:var(--radius);border:1px solid var(--color-border);background-color:var(--color-input-bg);color:var(--color-text);padding:.55rem 2rem .55rem .75rem;font-family:inherit;font-size:.9rem}.form-field input,.form-field select{align-items:center;height:2.5rem;display:flex}.form-field textarea{resize:vertical}.form-field input:focus,.form-field textarea:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring);outline:none}select{appearance:none;border-radius:var(--radius);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' stroke='%236b6b6b' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .7rem center;background-repeat:no-repeat}.alert{border-radius:var(--radius);margin-bottom:1rem;padding:.7rem .9rem;font-size:.9rem}.alert-error{background:var(--color-danger-bg);color:var(--color-danger)}.alert-success{background:var(--color-success-bg);color:var(--color-success)}.alert-info{background:var(--color-primary-light);color:var(--color-text)}.alert-warning{background:var(--color-warning-bg);color:var(--color-warning)}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--color-border)}.modal-heading{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.modal-badge{background:var(--color-primary-light);color:var(--color-primary);letter-spacing:.08em;text-transform:uppercase;border-radius:8px;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.7rem;font-weight:700;line-height:1.2;display:inline-flex}.modal-badge svg{flex-shrink:0;width:14px;height:14px}.modal-title{color:var(--color-text);text-wrap:balance;margin:0;font-size:1.3rem;font-weight:800;line-height:1.2}.modal-heading .modal-title{margin-top:.8rem}.fm-card{width:100%;max-width:var(--fm-max-width,980px);flex-direction:column;max-height:92vh;padding:0;display:flex;overflow:hidden}.fm-scroll{flex:auto;min-height:0;padding:1.75rem 1.75rem 1.4rem;overflow-y:auto}.fm-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem;display:flex}.fm-header-main{align-items:center;gap:1rem;min-width:0;display:flex}.fm-header-icon{background:var(--color-primary-light);width:52px;height:52px;color:var(--color-primary);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.fm-header-icon .action-icon-svg{width:24px;height:24px}.fm-title,.fm-header .modal-title{margin:0;font-size:1.25rem;line-height:1.2}.fm-header .modal-badge+.modal-title{margin-top:1.1rem}.fm-subtitle{color:var(--color-text-muted);margin:.3rem 0 0;font-size:.85rem}.fm-close{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.fm-close:hover{background:var(--color-primary-light);color:var(--color-text)}.fm-tabs{border-bottom:1px solid var(--color-border);gap:.25rem;margin-bottom:1.3rem;display:flex}.fm-tab{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.55rem;margin-bottom:-1px;padding:.75rem 1.1rem;font-size:.92rem;font-weight:600;display:inline-flex}.fm-tab .action-icon-svg{width:18px;height:18px}.fm-tab:hover{color:var(--color-text)}.fm-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.fm-panel,.fm-form{flex-direction:column;gap:1rem;display:flex}.fm-scroll>.fm-section+.fm-section{margin-top:1rem}.fm-section{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-alt);padding:1.25rem 1.4rem 1.4rem}.fm-section-header{align-items:center;gap:.95rem;margin-bottom:1rem;display:flex}.fm-section-icon{background:var(--color-primary-light);width:46px;height:46px;color:var(--color-primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.fm-section-icon .action-icon-svg{width:22px;height:22px}.fm-section-heading{min-width:0}.fm-section-heading h3{margin:0;font-size:1rem;font-weight:700}.fm-section-heading p{color:var(--color-text-muted);margin:.15rem 0 0;font-size:.8rem}.fm-grid{grid-template-columns:repeat(var(--fm-cols,2), minmax(0, 1fr));gap:1rem 1.2rem;display:grid}.fm-grid+.fm-grid{margin-top:1rem}.fm-cols-3{--fm-cols:3}.fm-cols-4{--fm-cols:4}.fm-span-all{grid-column:1/-1}.fm-field{min-width:0}.fm-field>label,.fm-label{color:var(--color-text-muted);margin-bottom:.35rem;font-size:.85rem;font-weight:700;display:block}.fm-required{color:var(--color-danger);margin-left:.2rem}.fm-input-wrap{position:relative}.fm-grid .fm-field .app-date-input,.fm-field>.app-date-input{width:100%;display:block}.fm-field-icon{color:var(--color-text-muted);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.fm-field-icon .action-icon-svg{width:18px;height:18px}.fm-currency{font-size:1rem;font-weight:600}.fm-field-icon.fm-icon-cell{border-radius:calc(var(--radius) - 1px) 0 0 calc(var(--radius) - 1px);width:44px;top:1px;bottom:1px;left:1px;transform:none}.fm-field-icon.is-income{background:var(--color-success-bg);color:var(--color-success)}.fm-field-icon.is-expense{background:var(--color-danger-bg);color:var(--color-danger)}.fm-field-icon.is-expense .action-icon-svg{transform:rotate(180deg)}.fm-input-wrap input,.fm-input-wrap select{box-sizing:border-box;border-radius:var(--radius);border:1px solid var(--color-border);background-color:var(--color-input-bg);width:100%;height:2.5rem;color:var(--color-text);padding:0 .8rem 0 2.6rem;font-family:inherit;font-size:.92rem}.fm-input-wrap select{padding-right:2.2rem}.fm-input-wrap.has-cell input,.fm-input-wrap.has-cell select{padding-left:3.2rem}.fm-input-wrap input:disabled,.fm-input-wrap select:disabled{opacity:.7;cursor:not-allowed}.fm-input-wrap input::placeholder,.fm-textarea-wrap textarea::placeholder{color:var(--color-text-muted);opacity:.8}.fm-textarea-wrap{position:relative}.fm-textarea-wrap textarea{box-sizing:border-box;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-input-bg);width:100%;min-height:84px;color:var(--color-text);resize:vertical;padding:.7rem .9rem 1.7rem;font-family:inherit;font-size:.92rem}.fm-counter{color:var(--color-text-muted);pointer-events:none;font-size:.74rem;position:absolute;bottom:.55rem;right:1.1rem}.fm-check{cursor:pointer;align-items:flex-start;gap:.7rem;margin-top:.9rem;display:flex}.fm-check input{width:20px;height:20px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0;margin:.1rem 0 0}.fm-check strong{font-size:.95rem;display:block}.fm-check small{color:var(--color-text-muted);margin-top:.1rem;font-size:.8rem;display:block}.fm-hint{color:var(--color-text-muted);margin-top:.4rem;font-size:.78rem;display:block}.fm-footer{background:var(--color-surface);border-top:1px solid var(--color-border);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:.75rem;padding:.9rem 1.75rem;display:flex}.fm-footer .action-icon-svg{width:14px;height:14px}.fm-footer .btn-secondary{color:var(--color-primary);border-color:color-mix(in srgb, var(--color-primary) 30%, var(--color-border))}@media (width<=760px){.fm-grid,.fm-cols-3,.fm-cols-4{--fm-cols:1}}@media (width<=640px){.fm-scroll{padding:1.25rem 1.1rem 1rem}.fm-title,.fm-header .modal-title{font-size:1.15rem}.fm-header-icon{border-radius:12px;width:44px;height:44px}.fm-header-icon .action-icon-svg{width:20px;height:20px}.fm-footer{padding:.8rem 1.1rem}}.action-icon-svg[data-v-50488353]{flex-shrink:0;display:block}.modal-overlay[data-v-6edffb04]{background:var(--color-overlay);z-index:1000;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal-card[data-v-6edffb04]{width:100%;max-width:420px;max-height:90vh;padding:1.5rem;overflow-y:auto}.modal-header[data-v-6edffb04]{margin-bottom:1rem}.challenge-hint[data-v-6edffb04]{color:var(--color-text-muted);margin:0 0 1.2rem;font-size:.88rem;line-height:1.5}.challenge-actions[data-v-6edffb04]{justify-content:space-between;align-items:center;gap:1rem;margin-top:1.2rem;display:flex}.modal-overlay[data-v-7a0223c4]{background:var(--color-overlay);z-index:1000;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.link-warning-card[data-v-7a0223c4]{width:100%;max-width:480px;padding:1.5rem}.modal-header[data-v-7a0223c4]{margin-bottom:1.2rem}.modal-warning[data-v-7a0223c4]{margin:0 0 .9rem;font-size:.92rem;line-height:1.5}.link-target[data-v-7a0223c4]{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-alt);color:var(--color-text-muted);overflow-wrap:anywhere;margin:0 0 1.3rem;padding:.6rem .8rem;font-size:.82rem}.modal-actions[data-v-7a0223c4]{justify-content:flex-end;align-items:center;gap:1rem;display:flex}
