:root{--bg:#f7f2e8;--bg-accent:#e7dfd1;--ink:#1f1a14;--muted:#6b5f53;--card:#fffaf3;--accent:#c86b3c;--accent-2:#2f7c6e;--danger:#b23a2f;--ok:#2f7c6e;--shadow:0 18px 40px rgba(31,26,20,.12)}*{box-sizing:border-box}body,html{padding:0;margin:0;color:var(--ink);background:radial-gradient(1000px 700px at 15% 10%,#fff6e6,var(--bg)),linear-gradient(140deg,#f4efe5,#e9dfd1 40%,#f6f1e7 70%);font-family:Palatino Linotype,Book Antiqua,Palatino,serif}a{color:inherit;text-decoration:none}main{min-height:100vh;padding:32px 20px 60px;display:grid;grid-gap:28px;gap:28px}.header{display:grid;grid-gap:8px;gap:8px}.filter-row{flex-wrap:wrap}.card-toggle,.filter-row{display:flex;align-items:center;gap:12px}.card-toggle{justify-content:space-between;margin-bottom:8px}.checkbox{display:inline-flex;align-items:center;gap:8px;font-size:.95rem;color:var(--ink);font-family:Trebuchet MS,Gill Sans,Arial,sans-serif}.checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-2)}.title{font-size:clamp(2rem,4vw,3.4rem);letter-spacing:.5px}.subtitle{color:var(--muted);max-width:720px;font-size:1rem}.panel-grid{display:grid;grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.card{background:var(--card);border:1px solid #e6d8c4;border-radius:18px;padding:18px 20px;box-shadow:var(--shadow)}.card h2{margin:0 0 10px;font-size:1.2rem}.upload-area{display:grid;grid-gap:12px;gap:12px}.input-row{display:grid;grid-gap:6px;gap:6px}label{font-size:.9rem;color:var(--muted)}input[type=date],input[type=file],input[type=text],select{width:100%;padding:10px 12px;border-radius:10px;border:1px solid #dccdbb;background:#fffdf9;font-size:.95rem;font-family:Trebuchet MS,Gill Sans,Arial,sans-serif}button{border:none;background:var(--accent);color:#fffaf3;padding:10px 16px;border-radius:999px;font-weight:600;cursor:pointer;font-family:Trebuchet MS,Gill Sans,Arial,sans-serif;transition:transform .12s ease,box-shadow .12s ease}button:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(200,107,60,.25)}.button-secondary{background:var(--accent-2)}.button-secondary:hover{box-shadow:0 10px 20px rgba(47,124,110,.25)}.button-ghost{background:transparent;border:1px solid #dccdbb;color:var(--muted)}.button-ghost:hover{box-shadow:none;transform:translateY(-1px)}.calendar{display:grid;grid-gap:12px;gap:12px}.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));grid-gap:10px;gap:10px}.weekday{font-weight:600;color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.6px}.day-cell{border:1px dashed #decdb8;background:#fff8ee;border-radius:16px;padding:10px;min-height:120px;display:grid;grid-gap:6px;gap:6px;text-align:left;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.day-cell.inactive{opacity:.45}.day-cell.is-clickable{cursor:pointer;border-color:#d1bfa7}.day-cell.is-clickable:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(31,26,20,.14)}.day-cell.is-clickable:focus-visible{outline:3px solid rgba(200,107,60,.35);outline-offset:2px}.day-number{font-weight:700}.amount{font-size:.9rem;font-weight:600}.amount.negative{color:var(--danger)}.amount.positive{color:var(--ok)}.transaction{font-size:.85rem;color:var(--muted);display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:10px;background:hsla(0,0%,100%,.6)}.transaction+.transaction{border-top:1px dashed #e2d2bd;margin-top:6px;padding-top:10px}.list{display:grid;grid-gap:12px;gap:12px;margin:0;padding:0;list-style:none}.list li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #eadfcd;padding:10px 0}.list li:last-child{border-bottom:none;padding-bottom:0}.list .amount{min-width:110px;text-align:right}.tag{font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.notice,.tag{color:var(--muted)}.notice{font-size:.85rem}.subscription-queue{display:grid;grid-gap:12px;gap:12px;margin-top:12px}.subscription-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:12px;background:#fdf6ea;border:1px dashed #e2d2bd}.subscription-name{font-weight:600}.subscription-actions{display:flex;gap:8px;flex-wrap:wrap}.modal-overlay{position:fixed;inset:0;background:rgba(25,20,15,.55);display:grid;place-items:center;padding:20px;z-index:50;animation:fadeIn .16s ease}.modal-card{width:min(560px,94vw);background:#fffaf3;border-radius:20px;border:1px solid #ead9c4;box-shadow:0 30px 60px rgba(31,26,20,.2);padding:20px;display:grid;grid-gap:16px;gap:16px;animation:popIn .2s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-title{font-size:1.25rem;font-weight:700}.modal-summary{display:flex;align-items:center;justify-content:space-between;background:#f7efe3;border-radius:12px;padding:10px 12px;font-weight:600}.modal-list{display:grid;grid-gap:12px;gap:12px}.modal-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid #eadfcd;background:#fffdf9}.modal-row.is-income{border-left:4px solid var(--ok)}.modal-row.is-expense{border-left:4px solid var(--danger)}.modal-label{font-weight:600}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@media (max-width:900px){.calendar-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}@media (max-width:640px){.calendar-grid{grid-template-columns:1fr}}