:root{--ink:#102a2a;--muted:#64748b;--line:#dfe8e6;--bg:#f3f7f6;--card:#fff;--green:#0f766e;--green2:#14b8a6;--red:#dc2626;--shadow:0 18px 45px rgba(15,45,42,.10)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}body{margin:0;font-size:16px}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}.auth-body{min-height:100vh;background:radial-gradient(circle at 15% 20%,#d4f3ed 0,transparent 32%),linear-gradient(135deg,#f8fbfa,#edf6f4);display:grid;place-items:center;padding:28px}.auth-shell{width:min(1120px,100%);display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}.auth-intro h1{font-size:clamp(42px,6vw,76px);line-height:1.02;letter-spacing:-.055em;margin:50px 0 22px}.auth-intro h1 em{font-style:normal;color:var(--green)}.auth-intro>p{font-size:20px;line-height:1.6;max-width:600px;color:#49635f}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:18px}.brand-mark{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--green),var(--green2));color:#fff;font-weight:900;box-shadow:0 8px 20px rgba(15,118,110,.25)}.benefits{display:flex;gap:18px;flex-wrap:wrap;color:#31534e;font-weight:650}.auth-card,.install-card{background:#fff;border:1px solid rgba(15,118,110,.12);border-radius:26px;padding:38px;box-shadow:var(--shadow)}.auth-card{max-width:470px;width:100%;justify-self:end}.auth-card h2,.install-card h1{font-size:32px;margin:0 0 8px}.form-grid{display:grid;gap:18px;margin-top:24px}.form-grid h2{font-size:18px;margin:12px 0 -4px}.form-grid label,.modal-form label,.month-filter label{display:grid;gap:8px;font-weight:700;font-size:14px}.form-grid input,.modal-form input,.modal-form select,.modal-form textarea,.month-filter input{width:100%;border:1px solid #cbd8d5;border-radius:12px;padding:14px 15px;background:#fbfdfc;color:var(--ink);outline:none}.form-grid input:focus,.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(15,118,110,.12)}.primary{border:0;border-radius:12px;background:linear-gradient(135deg,var(--green),#0d9488);color:#fff;padding:14px 20px;font-weight:800;cursor:pointer;box-shadow:0 8px 18px rgba(15,118,110,.18)}.primary:hover{filter:brightness(.96)}.wide{width:100%}.muted{color:var(--muted);margin:4px 0}.divider{display:flex;align-items:center;gap:12px;color:#94a3b8;margin:22px 0}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}.social-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.social{border:1px solid var(--line);border-radius:12px;padding:13px;text-align:center;color:var(--ink);text-decoration:none;font-weight:750}.social.disabled{opacity:.55}.switch{text-align:center;color:var(--muted);margin:24px 0 0}.switch a{color:var(--green);font-weight:800}.alert{padding:13px 16px;border-radius:12px;margin:18px 0}.alert.error{background:#fef2f2;color:#991b1b}.alert.success{background:#ecfdf5;color:#166534}.install-card{width:min(680px,100%)}.install-card>.brand-mark{margin-bottom:20px}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1240px)/2));position:sticky;top:0;z-index:10}.topbar nav{display:flex;align-items:center;gap:20px}.topbar nav form{margin:0}.link-btn{border:0;background:none;color:var(--green);font-weight:800;cursor:pointer}.dashboard{width:min(1240px,calc(100% - 40px));margin:0 auto;padding:42px 0 70px}.page-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.page-head h1{font-size:38px;letter-spacing:-.035em;margin:2px 0}.eyebrow{font-size:12px;font-weight:900;color:var(--green);letter-spacing:.14em;margin:0}.month-filter{display:flex;justify-content:flex-end;margin:26px 0 14px}.month-filter input{padding:10px 12px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.summary{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;display:grid;gap:8px;box-shadow:0 8px 25px rgba(15,45,42,.05)}.summary span{color:var(--muted);font-weight:700}.summary strong{font-size:30px;letter-spacing:-.035em}.summary small{color:#94a3b8}.summary.income{border-top:4px solid #16a34a}.summary.expense{border-top:4px solid #dc2626}.summary.balance{border-top:4px solid var(--green)}.panel{background:#fff;border:1px solid var(--line);border-radius:20px;margin-top:22px;overflow:hidden}.panel-head{padding:22px 24px;border-bottom:1px solid var(--line)}.panel-head h2{margin:0;font-size:21px}.transaction-list{display:grid}.transaction{display:grid;grid-template-columns:14px minmax(0,1fr) auto 34px;align-items:center;gap:14px;padding:17px 24px;border-bottom:1px solid #edf2f1}.transaction:last-child{border:0}.cat-dot{width:12px;height:12px;border-radius:50%}.transaction-main{display:grid;gap:4px}.transaction-main small{color:var(--muted)}.amount{white-space:nowrap}.amount.income{color:#15803d}.amount.expense{color:#b91c1c}.delete-btn,.close{border:0;background:none;color:#94a3b8;font-size:24px;cursor:pointer}.empty{text-align:center;padding:55px 20px}.empty>span{display:grid;place-items:center;width:54px;height:54px;margin:auto;border-radius:50%;background:#e7f6f3;color:var(--green);font-size:26px}.empty h3{margin:16px 0 6px}.empty p{color:var(--muted)}dialog{border:0;border-radius:22px;padding:0;width:min(520px,calc(100% - 28px));box-shadow:0 30px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(8,29,27,.55);backdrop-filter:blur(4px)}.modal-form{padding:28px;display:grid;gap:16px}.modal-head{display:flex;justify-content:space-between;align-items:start}.modal-head h2{margin:3px 0 0}.close{font-size:30px}.modal-form textarea{resize:vertical}.empty .primary{margin-top:8px}@media(max-width:820px){.auth-shell{grid-template-columns:1fr;gap:30px}.auth-intro{display:none}.auth-card{justify-self:center}.summary-grid{grid-template-columns:1fr}.dashboard{width:min(100% - 24px,1240px);padding-top:26px}.page-head{align-items:start;flex-direction:column}.page-head .primary{width:100%}.transaction{grid-template-columns:12px minmax(0,1fr) 28px}.transaction .amount{grid-column:2}.topbar{padding:0 16px}.topbar nav>span{display:none}.brand{font-size:16px}.summary strong{font-size:27px}}@media(display-mode:standalone){.topbar{padding-top:env(safe-area-inset-top);height:calc(76px + env(safe-area-inset-top))}}

