@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap");:root{color-scheme:light;--bg:#faf7f4;--card:#ffffff;--text:#1c1917;--muted:#78716c;--accent:#ea580c;--accent-soft:#fff7ed;--warning:#b45309;--danger:#b91c1c;--border:#e7e5e4;--battery-ok:#15803d;--battery-low:#c2410c;--battery-critical:#b91c1c;--battery-unavailable:#c2410c;--nav-height:70px}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:DM Sans,system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100%}a{color:inherit;text-decoration:none}.page{min-height:100dvh}.top-nav{height:var(--nav-height);background:#ffffff;border-bottom:1px solid var(--border)}.top-nav,.top-nav-inner{display:flex;align-items:center}.top-nav-inner{width:100%;max-width:920px;margin:0 auto;padding:0 20px;justify-content:space-between;gap:16px}.brand-kicker{margin:0;font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.brand-kicker.back-nav{text-transform:none;letter-spacing:0;font-weight:600}.page-title-nav{margin:0;font-size:1.1rem;font-weight:700;letter-spacing:-.02em}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.app-shell{max-width:920px;margin:0 auto;padding:20px 20px 40px}.app-content{margin-bottom:16px}.status-block{display:grid;grid-gap:12px;gap:12px}.pet-title{margin:0;font-size:2rem;font-weight:700;letter-spacing:-.03em;line-height:1.15}.stack-tight{display:grid;grid-gap:4px;gap:4px}.meta-row{margin:0;color:var(--muted);font-size:14px;line-height:1.3}.battery-pct{font-weight:600}.battery-pct.presence-ok{color:var(--battery-ok)}.battery-pct.presence-low{color:var(--battery-low)}.battery-pct.presence-critical{color:var(--battery-critical)}.meta,.muted{color:var(--muted);font-size:.875rem}.badge{display:inline-flex;align-items:center;gap:6px;width:-moz-fit-content;width:fit-content;padding:4px 8px;border-radius:6px;font-size:.75rem;background:var(--accent-soft);color:var(--accent)}.badge.warning{background:#fef3c7;color:var(--warning)}.presence-status-row{display:flex;gap:6px;flex-wrap:wrap}.presence-pill{display:inline-flex;align-items:center;font-weight:600}.presence-pill.presence-home{color:var(--battery-ok)}.presence-pill.presence-neighborhood{color:var(--accent)}.presence-pill.presence-beyond{color:var(--danger)}.presence-pill.presence-unknown{color:var(--muted)}.button-link,button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:white;border-radius:8px;padding:8px 14px;cursor:pointer;font:inherit;font-size:.875rem;font-weight:500;color:var(--text)}button:disabled{opacity:.6;cursor:not-allowed}.button-link.primary,button.primary{background:var(--accent);border-color:var(--accent);color:white}.skeleton{background:linear-gradient(90deg,#f5f5f4 25%,#fafaf9 50%,#f5f5f4 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:10px;min-height:160px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.map-section{margin-top:8px}.map-shell{height:420px;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:white}.map-empty{display:grid;place-items:center;height:420px;background:#fafaf9;color:var(--muted);border-radius:12px;border:1px dashed var(--border)}.error-box{border:1px solid #fecaca;background:#fef2f2;color:#991b1b;padding:12px;border-radius:10px}.battery-unavailable{color:var(--battery-unavailable)}.stack{display:grid;grid-gap:16px;gap:16px}label{display:block;font-size:.875rem;font-weight:500;margin-bottom:6px}select{width:100%;font:inherit;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:white}.history-range select,select{max-width:280px}.history-range-label{margin-top:4px;margin-bottom:0;font-size:.875rem;color:var(--muted)}@media (max-width:640px){.top-nav-inner{padding:0 16px}.app-shell{max-width:none;padding:16px 0 0}.app-content{padding:0 16px;margin-bottom:16px}.pet-title{font-size:1.6rem}.map-section{margin-top:0}.map-empty,.map-shell{height:500px;border-radius:0;border-left:none;border-right:none;border-bottom:none}.error-box,.skeleton{margin:0 16px}.history-range select{max-width:none}}