:root{color:#24312d;background:#f7fbf9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,rgba(60,151,136,.11),transparent 28rem),linear-gradient(315deg,rgba(242,129,107,.13),transparent 24rem),#f7fbf9}button,input{font:inherit}button{cursor:pointer}.app-shell{width:min(1120px,100%);min-height:100vh;margin:0 auto;padding:24px 20px 104px}.app-header{display:flex;align-items:center;gap:14px;margin-bottom:18px}.brand-mark{display:grid;width:52px;height:52px;place-items:center;border-radius:16px;color:#0d6f68;background:#dff3ee;box-shadow:inset 0 0 0 1px #0d6f681f}.app-header h1,.section-heading h2,.calendar-header h2,.detail-panel h2,.backup-panel h2{margin:0;letter-spacing:0}.app-header h1{font-size:28px}.app-header p,.backup-panel p{margin:4px 0 0;color:#62706b}.status-message{margin-bottom:16px;padding:10px 12px;border:1px solid #c7e5dc;border-radius:8px;color:#145f58;background:#effaf6}.home-grid,.calendar-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);gap:16px;align-items:start}.summary-panel,.record-panel,.timeline-panel,.calendar-panel,.detail-panel,.stats-panel,.backup-panel{border:1px solid rgba(87,107,99,.15);border-radius:8px;background:#ffffffe0;box-shadow:0 18px 60px #20383214}.summary-panel{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}.summary-panel>div{min-height:96px;padding:16px;border-radius:8px;background:#fff8f3}.summary-panel>div:first-child{background:#eaf7f3}.eyebrow{margin:0 0 8px;color:#64736e;font-size:13px;font-weight:700}.summary-panel strong{font-size:32px}.record-panel,.timeline-panel,.calendar-panel,.detail-panel,.stats-panel,.backup-panel{padding:18px}.section-heading,.calendar-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-heading h2,.calendar-header h2,.detail-panel h2,.backup-panel h2{font-size:20px}.record-form{display:grid;gap:14px}label{display:grid;gap:7px;color:#46534f;font-weight:700}input{width:100%;min-height:46px;border:1px solid #ccd9d4;border-radius:8px;padding:0 12px;color:#1f2c28;background:#fff}input:focus{border-color:#16847b;outline:3px solid rgba(22,132,123,.16)}.amount-input{display:grid;grid-template-columns:1fr auto;align-items:center;border:1px solid #ccd9d4;border-radius:8px;background:#fff}.amount-input:focus-within{border-color:#16847b;outline:3px solid rgba(22,132,123,.16)}.amount-input input{border:0;outline:0}.amount-input span{padding-right:12px;color:#63716c}.quick-amounts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.quick-amounts button,.secondary-button,.tab-button,.icon-button{border:1px solid #d2ded9;color:#2b3a35;background:#fff}.quick-amounts button{min-height:40px;border-radius:8px}.primary-button,.secondary-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:0 16px;font-weight:800}.primary-button{border:0;color:#fff;background:#0f7b72}.secondary-button{background:#fff}.error-text{margin:0;color:#b23b2e;font-weight:700}.empty-state{display:grid;min-height:128px;place-items:center;margin:0;border:1px dashed #c8d7d1;border-radius:8px;color:#687771;background:#ffffffa6}.record-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.record-list li{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #edf2ef;border-radius:8px;background:#fff}.record-list time{display:block;color:#697872;font-size:13px}.record-list strong{font-size:18px}.icon-button{display:inline-grid;width:40px;height:40px;flex:0 0 auto;place-items:center;border-radius:8px}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekday-row{margin-bottom:8px;color:#65746f;font-size:13px;text-align:center}.calendar-day,.calendar-empty{min-height:72px;border-radius:8px}.calendar-day{display:grid;align-content:space-between;border:1px solid #dde7e2;padding:8px;text-align:left;color:#24312d;background:#fff}.calendar-day.selected{border-color:#0f7b72;background:#e6f5f1}.calendar-day strong{min-height:18px;color:#d25f43;font-size:12px}.daily-total{display:flex;align-items:center;justify-content:space-between;margin:14px 0;padding:12px;border-radius:8px;background:#fff8f3}.stats-list{display:grid;gap:12px}.stat-row{display:grid;grid-template-columns:150px minmax(80px,1fr) 86px;gap:12px;align-items:center}.stat-row span{display:block;color:#65746f;font-size:13px}.bar-track{height:12px;overflow:hidden;border-radius:999px;background:#e5eeea}.bar-track span{display:block;height:100%;border-radius:inherit;background:#ef836b}.backup-panel{display:grid;gap:20px}.backup-actions{display:flex;flex-wrap:wrap;gap:10px}.file-input{display:none}.tab-bar{position:fixed;right:20px;bottom:18px;left:20px;z-index:10;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(680px,calc(100% - 40px));margin:0 auto;border:1px solid rgba(122,139,132,.25);border-radius:8px;padding:6px;background:#fffffff0;box-shadow:0 14px 40px #20383229;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.tab-button{display:grid;min-height:54px;place-items:center;gap:2px;border:0;border-radius:8px;color:#66746f;background:transparent;font-size:12px}.tab-button.active{color:#0d6f68;background:#e6f5f1}@media (min-width: 900px){.app-shell{padding-bottom:32px}.tab-bar{position:sticky;top:16px;bottom:auto;width:100%;margin-bottom:18px;order:-1}}@media (max-width: 820px){.app-shell{padding:18px 14px 96px}.home-grid,.calendar-layout{grid-template-columns:1fr}.summary-panel{grid-template-columns:1fr 1fr}.summary-panel strong{font-size:26px}.record-panel,.timeline-panel,.calendar-panel,.detail-panel,.stats-panel,.backup-panel{padding:14px}.calendar-day,.calendar-empty{min-height:58px}.stat-row{grid-template-columns:1fr}}@media (max-width: 380px){.quick-amounts{grid-template-columns:repeat(3,minmax(0,1fr))}.summary-panel{grid-template-columns:1fr}.calendar-grid,.weekday-row{gap:4px}.calendar-day{min-height:54px;padding:6px}}
