:root{color-scheme:light;--paper:#f7f6f0;--card:#fffef9;--ink:#27352c;--muted:#687268;--green:#344d3c;--line:#dedfd5;--yellow:#eecc67;--red:#9c3327;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}[hidden]{display:none!important}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #aa802e;outline-offset:4px}button{touch-action:manipulation}.shell{max-width:1100px;margin:auto;padding:0 36px}.header{min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-size:1.65rem;font-weight:720;text-decoration:none;letter-spacing:-1px}.brand-dot{color:#9a7a2a;margin-left:-9px}.text-button{border:0;background:none;padding:10px 0;color:var(--green);font-size:.875rem;font-weight:600;display:inline-flex;align-items:center;gap:12px;min-height:44px}.text-button:hover{color:#172d20;text-decoration:underline}.eyebrow{font-size:.75rem;letter-spacing:2px;font-weight:700;color:var(--muted)}.overview{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding:44px 0 32px}h1{font-weight:580;letter-spacing:-1.6px;font-size:2.4rem;line-height:1.18;margin:14px 0 0}h2{font-size:1.0625rem;font-weight:650;margin:0;letter-spacing:-.25px}h3{font-size:1.1rem;font-weight:600;margin:16px 0 7px}.month-total{text-align:right;display:flex;flex-direction:column;gap:8px}.month-total>span:first-child{font-size:2.75rem;font-weight:600;letter-spacing:-1.8px;white-space:nowrap}.muted{color:var(--muted);line-height:1.65}.small{font-size:.8125rem}.connection-bar{display:flex;justify-content:space-between;align-items:center;gap:15px;border-block:1px solid var(--line);padding:8px 0;margin-bottom:28px}#connection-state{font-size:.875rem;display:flex;align-items:center;gap:9px}.status-dot{height:7px;width:7px;background:#8a928b;display:inline-block;border-radius:50%;flex-shrink:0}.online .status-dot{background:#4c7751}.offline .status-dot,.auth .status-dot{background:#b58a26}.error .status-dot{background:var(--red)}.connection-detail{font-size:.875rem;color:#70511a;padding:12px 16px;background:#faf0d6;border:1px solid #e7dab1;border-radius:10px;line-height:1.55;margin:-12px 0 24px}.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);gap:38px;align-items:start}.entry-panel{padding:26px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 3px 0 #ecece3}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:26px}.plus-symbol{font-size:1.4rem;font-weight:300;color:var(--muted)}label{display:block;font-size:.875rem;font-weight:550;margin:20px 0 9px}.optional{color:var(--muted);font-size:.8125rem;font-weight:400;margin-left:5px}.amount-field{display:flex;align-items:center;gap:12px;border-bottom:1px solid #bfc7bb;padding-bottom:10px}.amount-field>span{font-size:1.75rem;color:#75846f}.amount-field input{border:0;background:transparent;min-width:0;width:100%;font-size:2.4rem;color:var(--ink);letter-spacing:-1px;padding:3px 0}.amount-field input::placeholder{color:#a5ad9f}textarea{resize:vertical;min-height:87px;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:12px;width:100%;line-height:1.5;color:var(--ink);font-size:1rem}textarea::placeholder{color:#838b7f}.primary-button{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;border-radius:10px;background:var(--green);color:#fffef9;font-weight:600;padding:16px 18px;margin-top:22px;min-height:54px}.primary-button:hover{background:#263d2f}.primary-button span{font-size:1.25rem}.save-hint{font-size:.8125rem;color:var(--muted);margin:19px 0 0;display:flex;gap:7px;justify-content:center}.save-hint span{color:#5a7b59}.ledger{padding-top:24px}.count-badge{font-size:.8125rem;background:#e7e9df;border-radius:20px;padding:5px 11px;min-width:30px;text-align:center}.empty-state{text-align:center;padding:40px 10px 55px;border-top:1px solid var(--line)}.empty-state p{font-size:.9375rem}.receipt-mark{margin:auto;border:1px solid #d3d8ca;background:#eeefe6;width:58px;height:64px;border-radius:10px;color:#718369;display:grid;place-items:center;font-size:1.6rem;transform:rotate(-8deg)}.day-label{font-size:.75rem;color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin:24px 0 4px;font-weight:650}.day-label:first-child{margin-top:0}.expense-row{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.expense-icon{display:grid;place-items:center;background:#e8eadf;color:#647657;width:38px;height:38px;border-radius:10px;flex-shrink:0;font-size:1.1rem}.expense-copy{min-width:0;flex:1}.expense-note{font-size:.9375rem;line-height:1.45;overflow-wrap:anywhere;margin:0}.expense-meta{font-size:.75rem;color:var(--muted);margin:5px 0 0}.expense-price{font-size:1rem;font-weight:650;white-space:nowrap;align-self:flex-start;padding-top:3px}.pending-label{color:#89651c}.footer{display:flex;justify-content:space-between;gap:20px;align-items:center;border-top:1px solid var(--line);padding:18px 0;margin-top:44px;font-size:.75rem;color:var(--muted);line-height:1.55}.footer .text-button{font-size:.75rem}.login-panel{max-width:430px;margin:70px auto 60px;background:var(--card);border:1px solid var(--line);padding:34px;border-radius:20px}.login-panel h1{font-size:2rem;letter-spacing:-1px}.login-panel .muted{font-size:.9375rem}.login-panel .small{font-size:.8125rem}.pin-input{border:1px solid #bdc6b8;border-radius:10px;background:var(--paper);padding:15px;width:100%;font-size:1.3rem;letter-spacing:8px;min-height:56px}.field-error{font-size:.8125rem;color:var(--red);line-height:1.5;margin:8px 0 0}.field-error:empty{display:none}.boot{text-align:center;padding:100px 0;color:var(--muted)}.fatal-error{background:#fdebe7;color:var(--red);border-radius:10px;padding:16px;line-height:1.5}.install-help{background:#edf0e6;border:1px solid #ccd5c4;border-radius:14px;margin:25px 0;padding:22px;font-size:.9375rem;line-height:1.6}.toast{position:fixed;bottom:calc(25px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);border-radius:12px;padding:14px 20px;background:var(--green);color:white;max-width:calc(100vw - 32px);width:max-content;box-shadow:0 5px 20px #27352c26;z-index:10;font-size:.875rem}
@media(max-width:800px){.shell{padding:0 24px}.workspace{grid-template-columns:300px minmax(0,1fr);gap:24px}.overview h1{font-size:1.9rem}.month-total>span:first-child{font-size:2.3rem}.entry-panel{padding:22px}}
@media(max-width:650px){.shell{padding:0 20px;padding-bottom:env(safe-area-inset-bottom)}.header{min-height:83px}.brand{font-size:1.45rem}.header .text-button{font-size:.75rem;gap:5px;max-width:150px;text-align:right}.overview{padding:29px 0 25px;gap:15px;align-items:flex-start}.overview h1{font-size:1.4rem;letter-spacing:-.7px;line-height:1.3;margin-top:11px}.month-total{padding-top:26px;gap:4px}.month-total>span:first-child{font-size:1.9rem;letter-spacing:-1px}.month-total .small{font-size:.75rem;max-width:130px}.eyebrow{font-size:.6875rem;letter-spacing:1.5px}.connection-bar{margin-bottom:20px}#connection-state{font-size:.8125rem}.connection-bar .text-button{font-size:.8125rem;gap:6px}.workspace{display:flex;flex-direction:column;gap:16px}.entry-panel{width:100%;padding:21px}.section-heading{margin-bottom:16px}.entry-panel label{margin-top:15px}.amount-field{padding-bottom:5px}.amount-field input{font-size:2.15rem}textarea{min-height:72px}.primary-button{margin-top:18px;padding:14px 16px}.save-hint{margin-top:14px}.ledger{width:100%;padding-top:12px}.footer{margin-top:30px;align-items:flex-start;flex-wrap:wrap;gap:0;padding-bottom:25px}.footer>span{width:100%}.footer .text-button{margin-top:3px}.login-panel{margin:35px auto;padding:26px}.login-panel h1{font-size:1.8rem}.empty-state{padding:28px 0}.expense-row{gap:12px}}
.header-actions{display:flex;align-items:center;gap:18px}.profile-name{font-size:.875rem;font-weight:600;background:#e7e9df;padding:6px 11px;border-radius:20px}@media(max-width:650px){.header-actions{flex-direction:column;align-items:flex-end;gap:0}.header-actions .text-button{min-height:30px;padding:5px 0}.profile-name{font-size:.8125rem;padding:4px 10px}}
@media(prefers-reduced-motion:no-preference){.expense-row{animation:arrive .2s ease-out}@keyframes arrive{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}}
