*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--bg:#f5f7fa;--surface:#fff;--text:#1a1a2e;--text-light:#555;--primary:#2d6a4f;--primary-light:#40916c;--accent:#d4a373;--border:#e0e0e0;--radius:8px;--shadow:0 2px 8px rgba(0,0,0,.08)}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
.container{max-width:960px;margin:0 auto;padding:0 1.5rem}
.top-bar{background:var(--primary);color:#fff;padding:.75rem 0;position:sticky;top:0;z-index:100;box-shadow:0 2px 4px rgba(0,0,0,.1)}
.top-bar .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:700}
.brand-icon{width:28px;height:28px}
.nav{display:flex;gap:1.25rem}
.nav a{color:rgba(255,255,255,.85);text-decoration:none;font-size:.9rem;transition:color .2s}
.nav a:hover{color:#fff}
.main-content{padding:2rem 1.5rem;display:flex;flex-direction:column;gap:2rem}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;box-shadow:var(--shadow)}
.card h2{font-size:1.35rem;margin-bottom:.25rem}
.helper{color:var(--text-light);margin-bottom:1.25rem;font-size:.95rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.field{display:flex;flex-direction:column;gap:.35rem}
.field-span{grid-column:1/-1}
label{font-size:.9rem;font-weight:600}
select,input[type="text"],input[type="date"]{padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;background:#fff}
select:focus,input:focus{outline:2px solid var(--primary-light);outline-offset:1px}
.checkbox-group{border:1px solid var(--border);border-radius:var(--radius);padding:1rem;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem}
.checkbox-group legend{font-weight:600;padding:0 .25rem}
.checkbox-group label{display:flex;align-items:center;gap:.4rem;font-weight:400;font-size:.9rem}
.actions{display:flex;gap:.75rem;flex-wrap:wrap}
.btn{padding:.65rem 1.25rem;border:none;border-radius:var(--radius);font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--primary);color:#fff}
.btn.primary:hover{background:var(--primary-light)}
.btn.secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}
.btn.secondary:hover{background:#e8ecf1}
.btn.ghost{background:transparent;color:var(--primary);border:1px solid var(--primary)}
.btn.ghost:hover{background:rgba(45,106,79,.06)}
.schedule-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}
.schedule-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.schedule-output{min-height:120px}
.empty-state{text-align:center;padding:2rem;color:var(--text-light)}
.empty-icon{width:48px;height:48px;margin:0 auto .75rem;color:var(--accent)}
.vet-timeline{list-style:none;display:flex;flex-direction:column;gap:1rem}
.vet-visit{display:flex;gap:1rem;align-items:flex-start}
.visit-marker{width:14px;height:14px;border-radius:50%;background:var(--primary);flex-shrink:0;margin-top:.35rem;position:relative}
.visit-marker::after{content:'';position:absolute;top:14px;left:6px;width:2px;bottom:-1rem;background:var(--border)}
.vet-visit:last-child .visit-marker::after{display:none}
.visit-marker.done{background:var(--accent)}.visit-marker.done::after{background:var(--accent);opacity:.4}
.visit-body{flex:1}
.visit-age{font-size:.85rem;color:var(--text-light);margin-bottom:.2rem}
.visit-date{font-size:1.05rem;font-weight:700;margin-bottom:.35rem}
.vaccine-list{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem}
.vaccine-tag{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .7rem;border-radius:20px;font-size:.82rem;font-weight:500}
.vaccine-tag.core{background:#d8f3dc;color:#1b4332}
.vaccine-tag.optional{background:#fefae0;color:#8a5a00}
.vaccine-tag input{margin:0}
.vaccine-tag label{font-weight:500;font-size:.82rem;display:flex;align-items:center;gap:.3rem;cursor:pointer}
.tips-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1rem}
.tips-grid article h3{font-size:1.05rem;margin-bottom:.35rem}
.tips-grid article p{font-size:.92rem;color:var(--text-light)}
.site-footer{background:var(--text);color:rgba(255,255,255,.7);padding:2rem 0;margin-top:2rem;font-size:.85rem}
.site-footer .container{display:flex;flex-direction:column;gap:.75rem}
.footer-links{display:flex;gap:1rem;flex-wrap:wrap}
.footer-links a{color:rgba(255,255,255,.85);text-decoration:none}
.footer-links a:hover{color:#fff}
.last-updated{opacity:.6;font-size:.8rem}
@media(max-width:700px){
.form-grid{grid-template-columns:1fr}
.tips-grid{grid-template-columns:1fr}
.schedule-header{flex-direction:column}
.top-bar .container{flex-direction:column;align-items:flex-start}
.nav{flex-wrap:wrap;gap:.75rem}
.vet-visit{gap:.75rem}
}
@media print{
.top-bar,.site-footer,.schedule-actions,.actions,.tips-card,.builder-card,.brand,.nav{display:none!important}
.card{border:none;box-shadow:none;padding:0}
body{background:#fff}
.visit-marker::after{display:none}
}



/* Factory-injected deployment helpers. The AI owns the site design above this block. */
.ad-unit {
  width: min(100%, 720px);
  min-height: 120px;
  margin: 24px auto;
  display: block;
}

.legal-page {
  width: min(900px, calc(100% - 32px));
  margin: 40px auto;
}

.factory-fallback-nav {
  width: min(900px, calc(100% - 32px));
  margin: 24px auto 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  align-items: center;
  font-size: 0.95rem;
}

.factory-fallback-nav a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}
