:root{--bg: #fdf6ee;--text: #3a2418;--accent: #f0754f;--muted: #8a6f5e;--line: #ecd9c6;font:17px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.card{max-width:420px;margin:0 auto;padding:32px 16px;display:grid;gap:14px}.card.dark{max-width:none;min-height:100vh;background:#070b14;color:#d9e4ff;align-content:start;padding-inline:max(16px,calc(50% - 210px))}h1{margin:0;font-size:28px}form{display:grid;gap:10px}input{font:inherit;padding:14px;border:2px solid var(--line);border-radius:14px}button{font:inherit;font-weight:600;min-height:52px;border:0;border-radius:999px;background:var(--accent);color:#fff;cursor:pointer}a.button,button.ghost{background:transparent;color:inherit;border:2px solid currentColor}:root{--card: #fffdfa;--ok: #3f9b3a;--warn: #fff3c4;--shadow: 0 8px 24px -14px rgba(122,72,40,.45)}.app{max-width:560px;margin:0 auto;padding:16px 16px 160px}.top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.top h1{font-size:26px}.muted{color:var(--muted);margin:0}h2{font-size:21px;margin:22px 0 10px}h3{font-size:17px;margin:18px 0 8px}.empty{color:var(--muted);text-align:center;padding:24px 8px}.link{background:none;color:var(--muted);min-height:44px;padding:0 8px;font-weight:500;text-decoration:underline}.alert{width:100%;background:#ffe1d6;color:#a23c1a;border-radius:16px;margin:4px 0 6px}.appt{background:var(--card);border-radius:20px;padding:14px;margin-bottom:12px;box-shadow:var(--shadow);border:2px solid transparent}.appt.done{border-color:#bfe3bb;background:#f4fbf3}.appt.cancelled{opacity:.6}.appt-head{display:flex;gap:12px;align-items:baseline}.time{font-size:22px;font-weight:700;color:var(--accent);display:grid}.time small{font-size:12px;font-weight:500;color:var(--muted);text-transform:capitalize}.pet{font-size:20px;font-weight:700}.pet small{font-weight:400;color:var(--muted);font-size:14px}.appt-info,.appt-place{margin:6px 0 0}.appt-place{display:flex;flex-wrap:wrap;gap:8px;align-items:center;color:var(--muted)}.badge{display:inline-block;margin-left:8px;font-size:13px;padding:2px 8px;border-radius:999px}.badge.ok{background:#dff3dc;color:var(--ok)}.badge.no{background:#eee;color:#666}.actions{display:flex;gap:8px;margin-top:12px;align-items:center;flex-wrap:wrap}.actions .ok{flex:1;white-space:nowrap}button.ok{background:var(--ok)}button.small{min-height:48px;padding:0 14px}.icon-btn{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fff;border:2px solid var(--line);text-decoration:none;font-size:22px}.chip{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;background:#fff;border:2px solid var(--line);color:var(--text);text-decoration:none;font-size:14px}.fab{position:fixed;left:50%;transform:translate(-50%);bottom:84px;width:min(528px,calc(100% - 32px));box-shadow:0 12px 28px -10px #f0754fcc;z-index:5;font-size:19px}.tabs{position:fixed;left:0;right:0;bottom:0;display:flex;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:5}.tabs button{flex:1;background:none;color:var(--muted);border-radius:0;min-height:64px;display:grid;place-items:center;gap:0;font-size:13px}.tabs button span{font-size:22px}.tabs button[aria-current=page]{color:var(--accent)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#3a241873;display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet{background:var(--bg);width:100%;max-width:560px;max-height:92vh;overflow-y:auto;border-radius:24px 24px 0 0;padding:16px 16px calc(24px + env(safe-area-inset-bottom));display:grid;gap:12px}.sheet-head{display:flex;justify-content:space-between;align-items:center}.sheet-head h2{margin:0;font-size:20px}.choices{display:flex;flex-wrap:wrap;gap:8px}.choices.col{flex-direction:column}.choices.grid{display:grid;grid-template-columns:repeat(4,1fr)}.choices button{background:#fff;color:var(--text);border:2px solid var(--line);min-height:52px;padding:0 16px;flex:1}.choices.grid button{padding:0}.choices button.chosen{background:var(--accent);color:#fff;border-color:var(--accent)}.field{display:grid;gap:6px;font-weight:600;border:0;padding:0;margin:0}.field legend{margin-bottom:6px}.field-label{display:flex;align-items:center;gap:8px}.tick{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ok);color:#fff;font-size:13px;font-weight:800}.field.ok input,.field.ok select{border-color:var(--ok);background:#f4fbf2}.missing{margin:0;padding:10px 12px;border-radius:12px;background:var(--warn);font-weight:600}.all-ok{margin:0;padding:10px 12px;border-radius:12px;background:#dff3dc;color:var(--ok);font-weight:700}@media (prefers-reduced-motion: no-preference){.tick{animation:tick-pop .35s cubic-bezier(.2,.9,.3,1.5)}@keyframes tick-pop{0%{transform:scale(0)}}}select{font:inherit;padding:14px;border:2px solid var(--line);border-radius:14px;background:#fff}.search{width:100%}.list{display:grid;gap:8px}.row{display:grid;justify-items:start;text-align:left;background:#fff;color:var(--text);border:2px solid var(--line);border-radius:16px;padding:10px 14px;min-height:60px}.row b{font-size:18px}.row-btns{display:flex;gap:8px}.row-btns>*{flex:1}.stepper{display:flex;gap:10px;align-items:center}.stepper>button{width:72px;flex:none}.amount{flex:1;display:flex;align-items:center;gap:6px;font-size:32px;font-weight:700}.amount input{width:100%;font-size:32px;font-weight:700;text-align:center}.summary{background:#fff;padding:12px;border-radius:14px;margin:0}.error{color:#a23c1a}.pet-card{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border-radius:16px;padding:10px 12px;border:2px solid var(--line)}.note{margin:4px 0 0;font-size:14px}.history{list-style:none;padding:0;margin:0;display:grid;gap:6px}.history li{display:grid;background:#fff;border-radius:12px;padding:8px 12px;font-size:14px}.history li span:first-child{font-weight:600;text-transform:capitalize}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:150px;background:var(--text);color:#fff;padding:12px 18px;border-radius:14px;z-index:30;max-width:calc(100% - 32px);text-align:center}.admin-bar{background:#070b14;color:#9fd6ff;padding:8px 16px;font-size:14px;display:flex;justify-content:space-between;align-items:center}button:disabled{opacity:.45;cursor:not-allowed}@media (prefers-reduced-motion: no-preference){.sheet{animation:up .22s ease-out}@keyframes up{0%{transform:translateY(30px);opacity:0}}}.notice{width:100%;background:var(--warn);color:var(--text);border-radius:16px;margin:4px 0 6px}.tabs button{position:relative}.count{position:absolute;top:6px;left:calc(50% + 8px);min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:#fff;font-size:12px;line-height:20px}.msg-group h3 small{font-weight:400}.msg{background:var(--card);border-radius:18px;padding:12px 14px;margin-bottom:10px;box-shadow:var(--shadow);display:grid;gap:6px}.msg.compact{background:none;box-shadow:none;padding:0;margin:0;flex:1}.msg-body{margin:0;white-space:pre-line;color:var(--muted);font-size:15px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.btn-link{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 18px;border-radius:999px;background:#25a244;color:#fff;font-weight:600;text-decoration:none;flex:1;white-space:nowrap}.requests h2{color:#8a5a00}.request{background:var(--warn);border-radius:18px;padding:12px 14px;margin-bottom:10px;display:grid;gap:6px;border:2px solid #f1d98a}.request b{font-size:18px}.admin{gap:12px}.admin .muted{color:#8fa3c7}.admin input,.admin select{background:#0e1424;color:#d9e4ff;border-color:#24304d}.admin .inline{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.admin .inline label{grid-column:1 / -1}.admin .grid-form{display:grid;gap:10px}.admin .grid-form label{display:grid;gap:4px}.admin .warn{color:#ffcf6e;margin:0}.links{width:100%;border-collapse:collapse;font-size:14px}.links th,.links td{text-align:left;padding:8px 6px;border-bottom:1px solid #1c2640;vertical-align:top}.links code{color:#9fd6ff}.qr-box{background:#fff;color:#3a2418;border-radius:18px;padding:16px;display:grid;justify-items:center;gap:8px}.qr-box code{word-break:break-all}.admin.embedded{display:grid;gap:12px;color:#d9e4ff}.onb{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--bg);display:flex;flex-direction:column;padding:16px;overflow-y:auto;animation:onb-in .3s ease}.onb-skip{align-self:flex-end}.onb-body{flex:1;max-width:480px;width:100%;margin:0 auto}.onb-slide{display:grid;align-content:center;justify-items:center;text-align:center;gap:8px;animation:onb-slide .45s ease}.onb-icon{font-size:88px;line-height:1;animation:onb-bounce 1.6s ease-in-out infinite}.onb-slide h2{font-size:26px;margin:8px 0 0}.onb-slide p{margin:0;color:var(--muted);font-size:18px}.onb-dots{display:flex;justify-content:center;gap:8px;margin:16px 0}.onb-dots span{width:9px;height:9px;border-radius:50%;background:var(--line);transition:all .3s}.onb-dots span.on{background:var(--accent);width:24px;border-radius:9px}.onb-nav{display:flex;gap:10px;max-width:480px;width:100%;margin:0 auto;padding-bottom:8px}.onb-nav button{flex:1}.plan-bar{height:12px;background:var(--line);border-radius:999px;overflow:hidden}.plan-bar span{display:block;height:100%;background:var(--ok);border-radius:999px;transition:width .5s ease}.plan-task{display:flex;gap:12px;align-items:flex-start;background:var(--card);padding:12px;border-radius:14px;margin-bottom:8px;box-shadow:var(--shadow);transition:opacity .3s}.plan-task input{width:24px;height:24px;flex:none;accent-color:var(--ok)}.plan-task.done{opacity:.6}.plan-task.done span{text-decoration:line-through}@keyframes onb-in{0%{opacity:0}}@keyframes onb-slide{0%{opacity:0;transform:translate(24px)}}@keyframes onb-bounce{50%{transform:translateY(-10px) rotate(-4deg)}}@media (prefers-reduced-motion: reduce){.onb,.onb-slide,.onb-icon{animation:none}.plan-bar span,.onb-dots span{transition:none}}a.button{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:999px;font-weight:600;text-decoration:none}
