:root{--bg:#f5f0e8;--surface:#fffdf8;--surface-2:#ede8df;--primary:#8b9d77;--primary-dark:#6e7d5e;--accent:#b39bab;--sand:#c4a882;--text:#5a5248;--text-light:#8c8278;--border:#ddd5c5;--danger:#c4847a;--danger-dark:#a86860;--shadow:0 2px 12px rgba(90,82,72,.1);--radius:16px;--radius-sm:10px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body,html{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}#__next,body,html{height:100%}.app-shell{display:flex;flex-direction:column;height:100dvh;max-width:480px;margin:0 auto;background:var(--bg)}.app-header{padding:16px 20px 8px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.app-header h1{font-size:18px;font-weight:700;color:var(--primary-dark);letter-spacing:.02em}.sheets-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}.sheets-btn:active{opacity:.8}.tab-content{flex:1 1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px}.tab-bar{display:flex;background:var(--surface);border-top:1px solid var(--border);flex-shrink:0;padding-bottom:env(safe-area-inset-bottom)}.tab-item{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px;background:none;border:none;cursor:pointer;color:var(--text-light);font-size:11px;font-weight:500;transition:color .15s}.tab-item.active{color:var(--primary-dark)}.tab-item svg{width:22px;height:22px}.section-title{font-size:14px;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.08em;margin:20px 0 10px}.section-title:first-child{margin-top:4px}.card{background:var(--surface);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}.field-group{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.field-group.single{grid-template-columns:1fr}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:600;color:var(--text-light);letter-spacing:.03em}.field input,.field textarea{background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:16px;color:var(--text);font-family:inherit;outline:none;transition:border-color .15s;width:100%}.field input:focus,.field textarea:focus{border-color:var(--primary)}input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.field textarea{resize:none;min-height:72px}.btn-primary{width:100%;padding:14px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius);font-size:16px;font-weight:700;cursor:pointer;margin-top:8px;transition:background .15s}.btn-primary:active{background:var(--primary-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.record-card{background:var(--surface);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;box-shadow:var(--shadow);cursor:pointer;transition:transform .1s}.record-card:active{transform:scale(.99)}.record-date{font-size:15px;font-weight:700;color:var(--primary-dark);margin-bottom:6px}.record-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}.chip{background:var(--surface-2);border-radius:20px;padding:3px 10px;font-size:12px;color:var(--text);font-weight:500}.chip.bike{background:#e8eee3;color:var(--primary-dark)}.chip.walk{background:#eee8e3;color:#7a6e5e}.chip.jog{background:#ebe3ee;color:#7a5e7a}.chip.km{background:#e3ebe3;color:#4a6e4a}.record-memo{font-size:13px;color:var(--text-light);font-style:italic}.record-actions{display:flex;gap:8px;margin-top:12px;border-top:1px solid var(--border);padding-top:12px}.btn-edit{background:var(--surface-2);color:var(--text)}.btn-delete,.btn-edit{flex:1 1;padding:9px;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer}.btn-delete{background:#f5e8e6;color:var(--danger-dark)}.empty-state{text-align:center;color:var(--text-light);padding:60px 20px;font-size:15px}.chart-card{background:var(--surface);border-radius:var(--radius);padding:16px;margin-bottom:16px;box-shadow:var(--shadow)}.chart-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:12px}.modal-overlay{position:fixed;inset:0;background:rgba(90,82,72,.4);z-index:100;display:flex;align-items:flex-end}.modal-sheet{background:var(--bg);border-radius:var(--radius) var(--radius) 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom));width:100%;max-height:90dvh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-title{font-size:18px;font-weight:700;color:var(--text)}.modal-close{background:var(--surface-2);border:none;border-radius:50%;width:32px;height:32px;cursor:pointer;font-size:18px;color:var(--text-light);display:flex;align-items:center;justify-content:center}.toast{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:var(--text);color:#fff;padding:10px 20px;border-radius:20px;font-size:14px;font-weight:600;z-index:200;white-space:nowrap;animation:fadeInUp .2s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin:60px auto}@keyframes spin{to{transform:rotate(1turn)}}.loading-center{display:flex;justify-content:center;padding:40px}