:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0e1116;--card: #171c23;--elev: #1f2530;--field: #12161c;--text: #e9edf2;--muted: #8b94a1;--border: #2a313b;--accent: #e9b44c;--accent-2: #f2c66d;--on-accent: #21180a;--pos: #4fd1a0;--neg: #f0746f;--hero-a: #212a36;--hero-b: #141a22;--hero-fg: #f1f4f8;--hero-accent: #f2c66d;--hero-glow: rgba(233, 180, 76, .18);--hero-shadow: 0 16px 34px -20px rgba(233, 180, 76, .45);--ok-bg: #123221;--ok-fg: #7ee3ad;--warn-bg: #33280f;--warn-fg: #eac36a;--ko-bg: #371a1a;--ko-fg: #f3a6a2;--shadow: 0 14px 30px -20px rgba(0, 0, 0, .8);--teal: var(--accent);--teal-dark: var(--accent-2)}:root[data-theme=light]{color-scheme:light;--bg: #f4f5f7;--card: #ffffff;--elev: #eef1f5;--field: #f5f6f8;--text: #1a1d22;--muted: #6b7280;--border: #e4e7ec;--accent: #b9791b;--accent-2: #9c6614;--on-accent: #ffffff;--pos: #16a34a;--neg: #dc2626;--hero-a: #212a36;--hero-b: #141a22;--hero-fg: #f1f4f8;--hero-accent: #f2c66d;--hero-glow: rgba(233, 180, 76, .16);--hero-shadow: 0 14px 30px -18px rgba(20, 25, 40, .28);--ok-bg: #dcfce7;--ok-fg: #14532d;--warn-bg: #fef3c7;--warn-fg: #78350f;--ko-bg: #fee2e2;--ko-fg: #7f1d1d;--shadow: 0 12px 28px -20px rgba(20, 25, 40, .22)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}input,select,textarea{color:var(--text);background:var(--field);border-color:var(--border)}.app{max-width:560px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.app-header{background:var(--card);color:var(--text);padding:1.1rem 1rem .9rem;position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.logout-btn{background:var(--elev);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.45rem .7rem;font-size:.8rem;font-weight:600;cursor:pointer;white-space:nowrap}.app-header h1{margin:0;font-size:1.4rem;letter-spacing:-.02em}.tagline{margin:.15rem 0 0;font-size:.8rem;color:var(--muted)}.app-main{flex:1;padding:1rem 1rem 5rem}.page h2{margin-top:0;font-size:1.15rem}.hint{color:var(--muted);font-size:.85rem}.error{color:var(--neg);font-weight:600}.import-form{display:flex;flex-direction:column;gap:.9rem;margin-top:1rem}.file-drop{display:flex;align-items:center;justify-content:center;padding:1.6rem 1rem;border:2px dashed var(--accent);border-radius:12px;background:var(--field);color:var(--accent);font-weight:600;cursor:pointer;text-align:center}.file-drop input{display:none}.btn-primary{background:var(--accent);color:var(--on-accent);border:none;border-radius:10px;padding:.85rem;font-size:1rem;font-weight:700;cursor:pointer}.btn-primary:disabled{opacity:.5}.result-card{margin-top:1rem;background:var(--ok-bg);color:var(--ok-fg);border:1px solid transparent;border-radius:10px;padding:.9rem}.month-bar{margin-bottom:.8rem}.month-bar select{width:100%;padding:.6rem;border-radius:10px;border:1px solid var(--border);background:var(--field);font-size:1rem;text-transform:capitalize}.totals{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}.totals .total{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.6rem;text-align:center}.totals .total span{display:block;font-size:.7rem;color:var(--muted)}.totals .total strong{font-size:.95rem}.totals .total.income strong{color:var(--pos)}.totals .total.expense strong{color:var(--neg)}.pos{color:var(--pos)}.neg{color:var(--neg)}.tx-day{margin-bottom:1rem}.tx-day-title{font-size:.75rem;text-transform:uppercase;color:var(--muted);margin:0 0 .4rem;letter-spacing:.03em}.tx-row{display:flex;align-items:center;gap:.6rem;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.6rem .7rem;margin-bottom:.45rem}.tx-icon{font-size:1.3rem;width:1.6rem;text-align:center}.tx-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.tx-label{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-cat{border:none;background:transparent;color:var(--muted);font-size:.78rem;padding:0;max-width:100%}.tx-cat.auto{font-style:italic}.tx-amount{font-weight:700;font-size:.95rem;white-space:nowrap}.empty{text-align:center;margin-top:3rem}.tabbar{position:fixed;bottom:0;left:0;right:0;max-width:560px;margin:0 auto;display:flex;background:var(--card);border-top:1px solid var(--border)}.tabbar button{flex:1;padding:.85rem .2rem;border:none;background:none;font-size:.8rem;font-weight:600;color:var(--muted);cursor:pointer}.tabbar button.active{color:var(--accent)}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--bg)}.auth-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1.6rem 1.4rem;box-shadow:var(--shadow)}.auth-card h1{margin:0 0 .3rem;color:var(--accent);text-align:center}.auth-form{display:flex;flex-direction:column;gap:.9rem;margin-top:1rem}.auth-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:600;color:var(--muted)}.auth-form input{padding:.7rem;border:1px solid var(--border);border-radius:10px;font-size:1rem;background:var(--field);color:var(--text)}.auth-setup{margin-top:1rem}.auth-code{background:#0f172a;color:#e2e8f0;padding:.8rem;border-radius:10px;font-size:.8rem;overflow-x:auto;white-space:pre}.statements{margin-top:1.6rem}.statements-title{font-size:.8rem;text-transform:uppercase;color:var(--muted);letter-spacing:.03em;margin:0 0 .5rem}.statement-row{display:flex;align-items:center;gap:.6rem;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.6rem .7rem;margin-bottom:.45rem}.statement-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.statement-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.statement-meta{font-size:.75rem;color:var(--muted)}.statement-del{border:none;background:none;font-size:1.1rem;cursor:pointer;padding:.3rem;border-radius:8px}.statement-del:hover{background:var(--ko-bg)}.btn-secondary{background:var(--card);color:var(--accent);border:1px solid var(--accent);border-radius:10px;padding:.7rem;font-size:.9rem;font-weight:600;cursor:pointer}.btn-secondary:disabled{opacity:.5}.btn-copy{background:var(--accent);color:var(--on-accent);border:none;border-radius:8px;padding:.4rem .7rem;font-size:.8rem;font-weight:700;cursor:pointer;white-space:nowrap}.rec-meta{font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.rec-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.03em;background:var(--warn-bg);color:var(--warn-fg);border-radius:6px;padding:.05rem .35rem;font-weight:700}.rec-badge.ok{background:var(--ok-bg);color:var(--ok-fg)}.review-list{margin-top:.5rem}.review-list .tx-row{gap:.5rem}.review-list input[type=checkbox]{width:1.1rem;height:1.1rem;flex:none}.tx-row.doubtful{border-color:var(--accent);background:var(--warn-bg)}.tx-row.excluded{opacity:.45}.review-actions{display:flex;gap:.6rem;margin-top:1rem}.review-actions .btn-primary{flex:1}.review-actions .btn-secondary{flex:none}.month-bar{display:flex;align-items:center;gap:.5rem}.month-bar select{flex:1}.csv-link{flex:none;font-size:.8rem;font-weight:600;color:var(--accent);text-decoration:none;border:1px solid var(--border);border-radius:8px;padding:.55rem .6rem;white-space:nowrap}.cat-add{display:flex;gap:.4rem;margin:.8rem 0 1rem}.cat-add input{min-width:0;flex:1;padding:.55rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem}.cat-add select{border:1px solid var(--border);border-radius:8px;padding:0 .3rem;font-size:.8rem}.cat-icon-input{flex:none!important;width:2.6rem;text-align:center}.cat-row{display:flex;align-items:center;gap:.5rem;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.5rem .6rem;margin-bottom:.4rem}.cat-row input{flex:1;min-width:0;padding:.45rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem}.cat-name{flex:1;font-weight:600;font-size:.9rem}.cat-x{border:none;background:none;cursor:pointer;font-size:1rem;padding:.2rem .35rem;border-radius:6px}.cat-x:hover{background:var(--elev)}.reste-hero{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1rem;text-align:center;margin-bottom:1rem}.reste-hero span{display:block;font-size:.8rem;color:var(--muted)}.reste-hero strong{display:block;font-size:2rem;letter-spacing:-.02em;margin:.15rem 0}.reste-hero small{color:var(--muted);font-size:.72rem}.reste-hero .pos{color:var(--pos)}.reste-hero .neg{color:var(--neg)}.month-bar input[type=month]{width:100%;padding:.6rem;border-radius:10px;border:1px solid var(--border);background:var(--field);font-size:1rem}.section-head{display:flex;align-items:center;justify-content:space-between;margin-top:.4rem}.section-head .tx-day-title{margin:0}.plan-form{display:flex;flex-direction:column;gap:.5rem;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.8rem;margin:.5rem 0 .8rem}.plan-form input,.plan-form select{padding:.55rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem;min-width:0;background:var(--field)}.plan-row{display:flex;gap:.4rem}.plan-row>*{flex:1}.rule-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .2rem;border-bottom:1px solid var(--border);font-size:.82rem}.rule-pattern{font-weight:600;white-space:nowrap}.rule-arrow{flex:1;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-row.seed{opacity:.75}.rules-seed{margin-top:.6rem}.rules-seed summary{font-size:.8rem;color:var(--muted);cursor:pointer;padding:.3rem 0}.seg{display:flex;background:var(--field);border:1px solid var(--border);border-radius:12px;padding:4px;gap:4px;margin-bottom:1rem}.seg button{flex:1;border:0;background:transparent;color:var(--muted);cursor:pointer;padding:.55rem;border-radius:9px;font-size:.9rem;font-weight:600}.seg button.on{background:var(--card);color:var(--text);box-shadow:var(--shadow)}.home-eyebrow{text-align:center;text-transform:capitalize;color:var(--muted);font-size:.85rem;margin:.2rem 0 .6rem}.daily-hero{background:radial-gradient(120% 90% at 50% 0%,var(--hero-glow),transparent 62%),linear-gradient(160deg,var(--hero-a),var(--hero-b));color:var(--hero-fg);border-radius:18px;padding:1.6rem 1rem 1.4rem;text-align:center;box-shadow:var(--hero-shadow)}.daily-hero.ko{background:linear-gradient(160deg,#7f2222,#4c1414);box-shadow:none}.daily-hero .lbl{display:block;font-size:.82rem;opacity:.8;text-transform:uppercase;letter-spacing:.08em}.daily-hero strong{display:block;font-size:3rem;font-weight:750;letter-spacing:-.03em;margin:.2rem 0;color:var(--hero-accent);font-variant-numeric:tabular-nums}.daily-hero.ko strong{color:#fff}.daily-hero strong em{font-size:1.1rem;font-weight:600;font-style:normal;opacity:.85;color:var(--hero-fg)}.daily-hero .sub{font-size:.85rem;opacity:.85}.est{display:inline-block;font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;background:#fff3;padding:1px 7px;border-radius:20px;margin-left:6px;vertical-align:middle}.home-details .est,.home-subhead .est{background:var(--elev);color:var(--muted)}.cta-big{display:block;width:100%;margin-top:1rem;border:0;cursor:pointer;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:1.05rem;padding:1rem;border-radius:14px}.cta-big:active{transform:translateY(1px)}.link-toggle{display:block;margin:1rem auto 0;background:none;border:0;color:var(--muted);font-size:.85rem;font-weight:600;cursor:pointer}.sim-panel{margin-top:1rem;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1rem;display:flex;flex-direction:column;gap:.6rem}.sim-amount{display:flex;align-items:center;gap:.5rem;background:var(--field);border:1px solid var(--border);border-radius:12px;padding:.4rem .8rem}.sim-amount span{font-size:.8rem;color:var(--muted)}.sim-amount input{flex:1;border:0;background:transparent;font-size:1.8rem;font-weight:700;text-align:right;color:var(--text);font-variant-numeric:tabular-nums;outline:none;min-width:0}.sim-amount b{font-size:1.3rem;color:var(--muted)}.sim-panel .sim-label,.sim-panel select{width:100%;padding:.6rem;border:1px solid var(--border);border-radius:10px;font-size:.9rem;background:var(--field)}.verdict{border-radius:12px;padding:.7rem .9rem;display:flex;flex-direction:column;gap:2px}.verdict b{font-size:.95rem}.verdict span{font-size:.82rem;opacity:.9}.verdict.ok{background:var(--ok-bg);color:var(--ok-fg)}.verdict.tight{background:var(--warn-bg);color:var(--warn-fg)}.verdict.ko{background:var(--ko-bg);color:var(--ko-fg)}.sim-actions{display:flex;gap:.5rem}.sim-actions .btn-primary,.sim-actions .btn-secondary{flex:1}.home-details{margin-top:1rem}.home-subhead{font-size:.85rem;color:var(--muted);font-weight:600;margin:1rem 0 .4rem}.brk{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:0 .9rem}.brk .row{display:flex;justify-content:space-between;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--border);font-size:.92rem}.brk .row:last-child{border-bottom:0}.brk .row span{color:var(--muted)}.brk .row b{font-weight:650;font-variant-numeric:tabular-nums}.brk .row.total b{color:var(--text);font-size:1.02rem}.num-pos{color:var(--pos)}.num-neg{color:var(--neg)}.set-title{margin:.2rem 0 .9rem;font-size:1.2rem}.grouphead{font-size:.74rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin:1.1rem .3rem .5rem}.setlist{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden}.setrow{display:flex;align-items:center;gap:.8rem;padding:.9rem 1rem;width:100%;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.setrow+.setrow{border-top:1px solid var(--border)}.set-ic{width:32px;height:32px;border-radius:9px;background:var(--elev);display:grid;place-items:center;font-size:1rem;flex:none}.set-m{flex:1;min-width:0}.set-t{display:block;font-size:.95rem}.set-s{display:block;font-size:.76rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.set-chev{color:var(--muted);font-size:1.2rem}.backrow{background:none;border:0;color:var(--accent);font-weight:600;font-size:.9rem;cursor:pointer;padding:.2rem 0 .6rem}.compte-email{font-weight:600;margin:.2rem 0 .9rem}.theme-choice{display:flex;gap:.5rem}.theme-opt{flex:1;padding:.8rem;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--muted);font-size:.92rem;font-weight:600;cursor:pointer}.theme-opt.on{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--card))}.goalbar{height:8px;background:var(--elev);border-radius:20px;overflow:hidden}.goalbar>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:20px;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.goalbar>span{transition:none}}.goals-strip{display:flex;flex-direction:column;gap:.6rem;margin-bottom:.8rem}.goal-mini{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.6rem .8rem;display:flex;flex-direction:column;gap:.4rem}.goal-mini-top{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.goal-mini-label{font-weight:600;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goal-mini-val{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.goal-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:.9rem;margin-bottom:.7rem}.goal-card.done{opacity:.75}.goal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.goal-label{font-weight:700;font-size:.98rem}.goal-meta{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-top:.35rem;font-variant-numeric:tabular-nums}.goal-hint{font-size:.78rem;color:var(--muted);margin:.5rem 0 .2rem}.goal-advice{font-size:.85rem;margin:.4rem 0 .6rem;padding:.55rem .7rem;background:var(--ok-bg);color:var(--ok-fg);border-radius:10px}.goal-contrib{display:flex;gap:.4rem}.goal-contrib input{flex:1;min-width:0;padding:.55rem;border:1px solid var(--border);border-radius:8px;font-size:.9rem;background:var(--field)}.goal-contrib .btn-primary{flex:none;padding:.55rem .7rem;font-size:.85rem}.seg-4 button{padding:.5rem .2rem;font-size:.82rem}
