:root{--bg: #f6f5f2;--card: #ffffff;--ink: #26302b;--muted: #6b7570;--line: #e3e1dc;--brand: #2f6f4f;--brand-weak: #e5efe9;--danger: #b3372f;--danger-weak: #f9e8e6;--estrus: #b3542f;--estrus-weak: #f8ece5;--dry: #2f5cb3;--dry-weak: #e7edf9;--calving: #8a5cb3;--calving-weak: #f0e9f8;--other: #6b7570;--other-weak: #eceded}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{max-width:640px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.content{flex:1;padding:12px 12px calc(76px + env(safe-area-inset-bottom))}.tabbar{position:fixed;bottom:0;left:0;right:0;max-width:640px;margin:0 auto;display:flex;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{flex:1;text-align:center;padding:8px 0 10px;font-size:12px;color:var(--muted);text-decoration:none}.tabbar a.active{color:var(--brand);font-weight:700}.tab-icon{display:block;font-size:22px;line-height:1.2}h1{font-size:20px;margin:8px 4px 12px}h2{font-size:15px;color:var(--muted);margin:20px 4px 8px;font-weight:600}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.row{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none;width:100%;background:none;border-left:none;border-right:none;border-top:none;font:inherit;text-align:left}.row:last-child{border-bottom:none}.row .grow{flex:1;min-width:0}.row .sub{font-size:13px;color:var(--muted)}.empty{padding:28px 14px;text-align:center;color:var(--muted)}.badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 8px;border-radius:8px;white-space:nowrap}.badge.estrus{color:var(--estrus);background:var(--estrus-weak)}.badge.dry_off{color:var(--dry);background:var(--dry-weak)}.badge.calving{color:var(--calving);background:var(--calving-weak)}.badge.other{color:var(--other);background:var(--other-weak)}.badge.state{color:var(--brand);background:var(--brand-weak)}.overdue-text{color:var(--danger);font-weight:700}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 4px 10px;-webkit-overflow-scrolling:touch}.chip{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:6px 14px;font-size:14px;white-space:nowrap}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}input,select,textarea,button{font:inherit}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label{font-size:13px;color:var(--muted)}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--card);font-size:16px}.btn{display:inline-block;border:none;border-radius:10px;padding:12px 16px;font-size:15px;font-weight:700;background:var(--brand);color:#fff}.btn.secondary{background:var(--brand-weak);color:var(--brand)}.btn.danger{background:var(--danger-weak);color:var(--danger)}.btn.small{padding:6px 12px;font-size:13px;font-weight:600}.btn:disabled{opacity:.5}.btn-row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 14px}.type-grid button{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px 4px;font-size:14px;font-weight:600;color:var(--ink)}.type-grid button.on{background:var(--brand);border-color:var(--brand);color:#fff}.inline-form{padding:12px 14px;border-top:1px solid var(--line);background:#fbfaf8}.quarters{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 14px;max-width:220px}.quarters button{border:1px solid var(--line);border-radius:10px;padding:14px 0;font-size:14px;font-weight:600;background:var(--brand-weak);color:var(--brand)}.quarters button.off{background:var(--danger-weak);color:var(--danger);text-decoration:line-through}.hint{font-size:12px;color:var(--muted);padding:0 14px 12px}.search-box{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:16px;background:var(--card);margin-bottom:12px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.tag-full{font-size:12px;color:var(--muted);letter-spacing:.05em}.tag-last4{font-weight:700;font-size:17px}.history-detail{font-size:13px;color:var(--muted)}.msg{padding:10px 14px;border-radius:10px;background:var(--brand-weak);color:var(--brand);font-size:14px;margin:8px 0}.msg.error{background:var(--danger-weak);color:var(--danger)}
