.title-link[data-v-6b235e74]{color:inherit;text-decoration:none}.title[data-v-6b235e74]{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:6px;margin:0}.version[data-v-6b235e74]{font-size:11px;color:var(--muted);font-weight:400}.topbar-stats[data-v-6b235e74]{flex:0 0 auto;padding:6px 12px;border-radius:8px;font-size:14px;color:var(--muted);border:1px solid var(--border)}.topbar-stats.on[data-v-6b235e74]{color:var(--accent);border-color:var(--accent)}.admin-badge[data-v-6b235e74]{color:var(--accent-2);font-size:12px}.admin-dot[data-v-6b235e74]{color:var(--accent-2);margin-left:4px;font-size:9px;vertical-align:middle}.demo-pill[data-v-6b235e74]{flex:0 0 auto;font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--color-warn);background:color-mix(in srgb,var(--color-warn) 18%,transparent);border:1px solid color-mix(in srgb,var(--color-warn) 50%,transparent);border-radius:6px;padding:3px 8px;white-space:nowrap}.heatmap[data-v-92bdf3f6]{display:flex;flex-direction:column;gap:8px}.grid-wrap[data-v-92bdf3f6]{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px}.weekday-col[data-v-92bdf3f6]{display:grid;grid-template-rows:repeat(7,1fr);gap:3px;padding-top:0;flex-shrink:0}.weekday[data-v-92bdf3f6]{font-size:9px;color:var(--muted);line-height:1;display:flex;align-items:center;height:14px}.grid[data-v-92bdf3f6]{display:grid;gap:3px;flex:1;min-width:0}.week[data-v-92bdf3f6]{display:grid;grid-template-rows:repeat(7,1fr);gap:3px}.cell[data-v-92bdf3f6]{width:100%;aspect-ratio:1 / 1;min-height:14px;border-radius:3px;border:1px solid var(--border);padding:0;cursor:pointer;background:var(--panel-2)}.cell[data-v-92bdf3f6]:disabled{cursor:default;visibility:hidden;border-color:transparent}.cell.empty[data-v-92bdf3f6]{visibility:hidden}.cell.lvl-0[data-v-92bdf3f6]{background:var(--panel-2)}.cell.lvl-1[data-v-92bdf3f6]{background:#0e4429;border-color:#0e4429}.cell.lvl-2[data-v-92bdf3f6]{background:#006d32;border-color:#006d32}.cell.lvl-3[data-v-92bdf3f6]{background:#26a641;border-color:#26a641}.cell.lvl-4[data-v-92bdf3f6]{background:#39d353;border-color:#39d353}.cell.picked[data-v-92bdf3f6]{outline:2px solid var(--accent);outline-offset:1px}.tooltip[data-v-92bdf3f6]{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 10px;min-height:36px}.tooltip.placeholder[data-v-92bdf3f6]{font-size:12px}.legend[data-v-92bdf3f6]{display:flex;align-items:center;gap:4px;font-size:11px}.legend .cell[data-v-92bdf3f6]{width:12px;height:12px;aspect-ratio:auto;cursor:default}.login-shell[data-v-a7c2e406]{display:flex;flex-direction:column;gap:12px;padding-top:24px}.small[data-v-a7c2e406]{font-size:12px}.showcase[data-v-a7c2e406]{display:flex;flex-direction:column;gap:12px}.show-head[data-v-a7c2e406]{margin:0}.brand[data-v-a7c2e406]{display:flex;align-items:center;gap:12px}.brand img[data-v-a7c2e406]{flex:0 0 auto;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 35%,transparent))}.brand h1[data-v-a7c2e406]{margin:0;font-size:22px;letter-spacing:.4px}.brand p[data-v-a7c2e406]{margin:2px 0 0;line-height:1.3}.counters[data-v-a7c2e406]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.counter[data-v-a7c2e406]{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:8px 6px;text-align:center}.counter .big[data-v-a7c2e406]{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.stage-head[data-v-a7c2e406]{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 4px}.slide-title[data-v-a7c2e406]{font-size:13px;font-weight:600;letter-spacing:.01em}.slide-counter[data-v-a7c2e406]{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.slide-counter .now[data-v-a7c2e406]{color:var(--accent);font-weight:700}.stage-row[data-v-a7c2e406]{display:grid;grid-template-columns:32px 1fr 32px;align-items:stretch;gap:8px}.arrow[data-v-a7c2e406]{display:inline-flex;align-items:center;justify-content:center;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;color:var(--muted);cursor:pointer;padding:0;transition:color .15s,border-color .15s,background .15s}.arrow[data-v-a7c2e406]:hover{color:var(--accent);border-color:var(--accent)}.arrow[data-v-a7c2e406]:active{background:var(--panel)}.arrow[data-v-a7c2e406]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stage[data-v-a7c2e406]{position:relative;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:12px;min-height:200px}.slide[data-v-a7c2e406]{animation:fade-a7c2e406 .4s ease-out}@keyframes fade-a7c2e406{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.slide[data-v-a7c2e406]{animation:none}}.heatmap-wrap[data-v-a7c2e406] .cell{min-height:12px}.heatmap-wrap[data-v-a7c2e406] .btn{display:none}.heatmap-wrap[data-v-a7c2e406] .tooltip{font-size:11px;padding:6px 8px;min-height:28px}.sample-meta[data-v-a7c2e406]{margin-bottom:6px}.masked-label[data-v-a7c2e406]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.02em}.spark[data-v-a7c2e406]{width:100%;height:80px;display:block;margin:4px 0}.spark-axis[data-v-a7c2e406]{font-size:11px}.sample-link[data-v-a7c2e406]{display:inline-block;margin-top:8px;color:var(--accent)}.bars[data-v-a7c2e406]{display:flex;flex-direction:column;gap:6px}.bar-row[data-v-a7c2e406]{display:grid;grid-template-columns:110px 1fr 44px;align-items:center;gap:10px;font-size:13px}.bar-name[data-v-a7c2e406]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar[data-v-a7c2e406]{background:var(--panel);border:1px solid var(--border);border-radius:6px;height:10px;overflow:hidden}.fill[data-v-a7c2e406]{height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent));transition:width .6s ease-out}.bar-val[data-v-a7c2e406]{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.nfc-slide[data-v-a7c2e406]{text-align:center}.nfc-stage[data-v-a7c2e406]{position:relative;height:110px;display:flex;align-items:center;justify-content:center;gap:18px}.tag-area[data-v-a7c2e406]{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center}.ring[data-v-a7c2e406]{position:absolute;inset:50% auto auto 50%;width:44px;height:44px;border-radius:50%;border:2px solid var(--accent);transform:translate(-50%,-50%) scale(.4);opacity:0;animation:pulse-a7c2e406 2.4s ease-out infinite;pointer-events:none}.ring.r2[data-v-a7c2e406]{animation-delay:.8s}.ring.r3[data-v-a7c2e406]{animation-delay:1.6s}@keyframes pulse-a7c2e406{0%{transform:translate(-50%,-50%) scale(.4);opacity:.7}80%{transform:translate(-50%,-50%) scale(2.2);opacity:0}to{transform:translate(-50%,-50%) scale(2.2);opacity:0}}@media (prefers-reduced-motion: reduce){.ring[data-v-a7c2e406]{animation:none;opacity:.4;transform:translate(-50%,-50%) scale(1.4)}}.nfc-copy[data-v-a7c2e406]{margin:4px auto 0;max-width:36ch}.ticker[data-v-a7c2e406]{position:relative;overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--panel-2);margin:0 -16px;height:34px;display:flex;align-items:center;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.ticker-track[data-v-a7c2e406]{display:inline-flex;gap:24px;padding:0 12px;white-space:nowrap;animation:scroll-a7c2e406 60s linear infinite}@keyframes scroll-a7c2e406{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.ticker-track[data-v-a7c2e406]{animation:none}}.ticker-item[data-v-a7c2e406]{display:inline-flex;align-items:center;gap:6px;font-size:12px}.dot-mini[data-v-a7c2e406]{width:6px;height:6px;border-radius:50%;background:var(--accent)}.kind-discharge .dot-mini[data-v-a7c2e406]{background:var(--color-discharge)}.kind-charge .dot-mini[data-v-a7c2e406]{background:var(--color-charge)}.kind-battery_created .dot-mini[data-v-a7c2e406]{background:var(--accent)}.ticker-user[data-v-a7c2e406]{font-weight:600}.ticker-batt[data-v-a7c2e406]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.pulse[data-v-a7c2e406]{text-align:center;margin:0}.pulse strong[data-v-a7c2e406]{color:var(--text);font-variant-numeric:tabular-nums}.login-card[data-v-a7c2e406]{margin:0}.demo-btn[data-v-a7c2e406]{display:flex;flex-direction:column;align-items:center;gap:2px;margin:10px auto 0;background:transparent;color:var(--accent);border:1px dashed color-mix(in srgb,var(--accent) 50%,transparent);border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.demo-btn[data-v-a7c2e406]:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:var(--accent)}.demo-btn[data-v-a7c2e406]:disabled{opacity:.5;cursor:not-allowed}.demo-hint[data-v-a7c2e406]{font-size:11px;font-weight:400;color:var(--muted);letter-spacing:.02em}.footnote[data-v-a7c2e406]{text-align:center;font-size:12px;margin:12px 0 0}.day-group+.day-group[data-v-49c78076]{margin-top:14px}.day-header[data-v-49c78076]{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:6px 4px;border-bottom:1px solid var(--border);margin-bottom:6px}.rows[data-v-49c78076]{display:flex;flex-direction:column;gap:4px}.row-btn[data-v-49c78076]{display:grid;grid-template-columns:4px 28px 1fr auto;align-items:center;gap:10px;width:100%;text-align:left;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px 10px 0;color:inherit;font:inherit;cursor:pointer;position:relative;overflow:hidden}.row-btn[data-v-49c78076]:hover{border-color:var(--accent)}.row-btn[data-v-49c78076]:before{content:"";display:block;width:4px;align-self:stretch;border-radius:2px 0 0 2px}.kind-charge[data-v-49c78076]:before{background:var(--color-charge)}.kind-discharge[data-v-49c78076]:before{background:var(--color-discharge)}.kind-battery_created[data-v-49c78076]:before{background:var(--accent)}.icon[data-v-49c78076]{display:inline-flex;align-items:center;justify-content:center}.kind-charge .icon[data-v-49c78076]{color:var(--color-charge)}.kind-discharge .icon[data-v-49c78076]{color:var(--color-discharge)}.kind-battery_created .icon[data-v-49c78076]{color:var(--accent)}.body[data-v-49c78076]{display:flex;flex-direction:column;gap:2px;min-width:0}.line1[data-v-49c78076]{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.line2[data-v-49c78076]{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user[data-v-49c78076]{font-weight:600}.battery[data-v-49c78076]{color:var(--text)}.time[data-v-49c78076]{font-size:13px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.s-tag[data-v-49c78076]{display:inline-block;padding:1px 6px;border-radius:4px;font-weight:600;font-size:11px}.s-1[data-v-49c78076]{color:#9ed8ff;background:#4cc2ff2e}.s-2[data-v-49c78076]{color:#6cf2c0;background:#6cf2c02e}.s-3[data-v-49c78076]{color:#c9f26c;background:#c9f26c2e}.s-4[data-v-49c78076]{color:#ffd166;background:#ffd1662e}.s-5[data-v-49c78076]{color:#ffa040;background:#ffa0402e}.s-6[data-v-49c78076]{color:#ff7b6b;background:#ff7b6b33}.s-hi[data-v-49c78076]{color:#ff4f8b;background:#ff4f8b38}input[type=checkbox][data-v-1f7102b4]{width:auto;margin:0}.item-link[data-v-1f7102b4]{color:inherit;text-decoration:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.item-link[data-v-1f7102b4]:hover{border-color:var(--accent)}input[type=checkbox][data-v-1d73c959]{width:auto;margin-right:6px}.voltage-num[data-v-1d73c959]{width:6.5em;font-size:22px;font-weight:700;text-align:left;padding:6px 8px}.history-link[data-v-2bccf493]{color:inherit;text-decoration:none}.history-link:hover h2[data-v-2bccf493]{color:var(--accent)}.item-link[data-v-7c9a330a]{color:inherit;text-decoration:none;cursor:pointer}.item-link[data-v-7c9a330a]:hover{border-color:var(--accent)}.event-count[data-v-7c9a330a]{background:var(--panel);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:12px;min-width:24px;text-align:center}.admin-dot[data-v-8616c877]{color:var(--accent-2);margin-left:6px;font-size:9px;vertical-align:middle}.filter[data-v-8616c877]{margin-bottom:8px}.grid[data-v-5a508e2f]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.kpi[data-v-5a508e2f]{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:10px;text-align:center}.kpi .big[data-v-5a508e2f]{font-size:22px}.kpis[data-v-15286164]{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:13px}.kpis div[data-v-15286164]{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:6px 10px}.group-list[data-v-15286164]{list-style:none;margin:0;padding:0}.group-list li[data-v-15286164]{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--panel-2);margin-bottom:8px}.rotate-form[data-v-15286164]{display:flex;gap:8px;align-items:center;margin-top:8px;flex-wrap:wrap}.rotate-form input[data-v-15286164]{flex:1 1 180px}.danger[data-v-15286164]{color:var(--danger, #c0392b)}.tag-battery_created[data-v-69e5899a]{color:var(--accent);background:#4cc2ff26}.tag-discharge[data-v-69e5899a]{color:var(--color-discharge);background:#ff6b6b26}.tag-charge[data-v-69e5899a]{color:var(--color-charge);background:#6cf2c026}.user-name[data-v-69e5899a]{font-weight:600}.signin-cta[data-v-69e5899a]{display:inline-block;margin-top:10px;color:var(--accent);font-size:13px;font-weight:600;text-decoration:none}.signin-cta[data-v-69e5899a]:hover{text-decoration:underline}:root{--bg: #0b1220;--panel: #131c30;--panel-2: #1b253d;--text: #e6ecf5;--muted: #8a97b1;--accent: #4cc2ff;--accent-2: #6cf2c0;--danger: #ff6b6b;--border: #25304a;--color-discharge: #ff6b6b;--color-charge: #6cf2c0;--color-warn: #ffa040;--color-cold: #4cc2ff;--color-hot: #ff6b6b;--color-warm: #ffa040}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:16px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-decoration:none}.app{max-width:560px;margin:0 auto;padding:16px 16px 96px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 4px 16px;position:sticky;top:0;background:var(--bg);z-index:5}.topbar h1{font-size:18px;margin:0}.topbar .who{color:var(--muted);font-size:14px;text-decoration:none}.topbar .who:hover,.topbar .who:focus{color:var(--text)}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:12px}.card h2{margin:0 0 10px;font-size:16px}.row{display:flex;gap:8px;align-items:center}.row+.row{margin-top:8px}.spread{justify-content:space-between}label{display:block;color:var(--muted);font-size:13px;margin-bottom:4px}input,select,textarea{width:100%;background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:12px 14px;border-radius:10px;font-size:16px;font-family:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);border-color:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:#04121d;border:0;border-radius:12px;padding:14px 18px;font-size:16px;font-weight:600;cursor:pointer;width:100%}.btn.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--danger);color:#1a0606}.btn:disabled{opacity:.6;cursor:not-allowed}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;padding:8px env(safe-area-inset-right) calc(8px + env(safe-area-inset-bottom)) env(safe-area-inset-left);background:var(--panel);border-top:1px solid var(--border)}.bottom-nav a{flex:1;text-align:center;padding:8px;color:var(--muted);font-size:13px}.bottom-nav a.router-link-active{color:var(--accent)}.muted{color:var(--muted)}.error{color:var(--danger);margin-top:8px;font-size:14px}.list{display:flex;flex-direction:column;gap:8px}.list .item{background:var(--panel-2);border:1px solid var(--border);padding:12px 14px;border-radius:10px;display:flex;justify-content:space-between;align-items:center}.tag{background:var(--panel-2);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:12px}.big{font-size:28px;font-weight:700}.seg{display:flex;gap:6px;background:var(--panel-2);padding:4px;border-radius:10px;border:1px solid var(--border)}.seg-btn{flex:1;background:transparent;color:var(--muted);border:0;padding:8px 10px;border-radius:7px;font-size:14px;cursor:pointer}.seg-btn.on{background:var(--accent);color:#04121d;font-weight:600}.seg-btn.on.on-discharge{background:var(--color-discharge);color:#1a0606}.seg-btn.on.on-charge{background:var(--color-charge);color:#04121d}.seg-btn.on.on-warn{background:var(--color-warn);color:#1a1106}.seg-btn.on.on-danger{background:var(--color-discharge);color:#1a0606}.seg-btn.on.on-cold{background:var(--color-cold);color:#04121d}.seg-btn.on.on-warm{background:var(--color-warm);color:#1a1106}.seg-btn.on.on-hot{background:var(--color-hot);color:#1a0606}input[type=range].voltage-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:28px;background:transparent;padding:0;border:0}input[type=range].voltage-slider::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:linear-gradient(to right,var(--color-discharge),var(--color-charge));border:1px solid var(--border)}input[type=range].voltage-slider::-moz-range-track{height:8px;border-radius:4px;background:linear-gradient(to right,var(--color-discharge),var(--color-charge));border:1px solid var(--border)}input[type=range].voltage-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--text);border:2px solid var(--bg);margin-top:-8px;cursor:pointer}input[type=range].voltage-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--text);border:2px solid var(--bg);cursor:pointer}.link-btn{background:none;border:0;color:var(--muted);cursor:pointer;padding:0;font:inherit}.link-btn:hover{color:var(--text)}.item-btn{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.item-btn[aria-pressed=true]{border-color:var(--accent)}
