:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s}#app{height:100vh;min-height:0;overflow:hidden}body.obs-transparent-body{background:0 0}body.obs-blue-body{background:#061a3a}.obs-overlay{--obs-accent:#ff224f;width:360px;height:150px;color:var(--obs-accent);grid-template-rows:62px 1fr;padding:10px 14px;display:grid;overflow:hidden}.obs-overlay.tone-green{--obs-accent:#35e38b}.obs-overlay.bg-transparent{background:0 0}.obs-overlay.bg-blue{background-color:#061a3a;background-image:linear-gradient(#ffffff14 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.obs-bpm-row{min-width:0;text-shadow:0 0 8px color-mix(in srgb, var(--obs-accent) 82%, transparent), 0 0 18px color-mix(in srgb, var(--obs-accent) 44%, transparent);align-items:baseline;gap:8px;display:flex}.obs-bpm{font-size:54px;font-weight:900;line-height:1}.obs-unit{letter-spacing:0;font-size:18px;font-weight:900}.obs-line-chart{width:100%;height:78px;overflow:visible}.obs-line-chart polyline{stroke:var(--obs-accent);stroke-width:2px;stroke-linecap:square;stroke-linejoin:miter;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 8px color-mix(in srgb, var(--obs-accent) 75%, transparent))}.dashboard{--accent:#ff4d6d;--accent-soft:#ff4d6d2e;--secondary:#21c9a7;--ink:#f8fbff;--muted:#f8fbffad;--panel:#0c121ebd;--panel-strong:#121c2fe0;height:100vh;min-height:0;color:var(--ink);background:radial-gradient(circle at 14% 18%,#ff4d6d2e,#0000 28%),radial-gradient(circle at 86% 12%,#21c9a729,#0000 30%),linear-gradient(135deg,#090b12 0%,#111827 48%,#10151c 100%);grid-template-rows:50px minmax(108px,.26fr) minmax(0,1fr);grid-template-columns:minmax(320px,.95fr) minmax(360px,1.15fr);gap:clamp(10px,1.7vh,18px);padding:clamp(12px,2.6vw,30px);display:grid;overflow:hidden}.dashboard.theme-lava{--accent:#ff174d;--accent-soft:#ff174d3d;--secondary:#ff6b81;--panel:#12080cc7;--panel-strong:#1c0a10e6;background:linear-gradient(#ff174d14 1px,#0000 1px) 0 0/42px 42px,linear-gradient(90deg,#ff174d14 1px,#0000 1px) 0 0/42px 42px,radial-gradient(circle at 50% 16%,#ff174d33,#0000 30%),linear-gradient(135deg,#070304 0%,#16070b 46%,#050608 100%)}.dashboard.theme-forest{--accent:#35e38b;--accent-soft:#35e38b33;--secondary:#a6ffcb;--panel:#081510c7;--panel-strong:#091f16e6;background:radial-gradient(circle at 16% 18%,#35e38b29,#0000 28%),radial-gradient(circle at 82% 18%,#a6ffcb1f,#0000 28%),linear-gradient(135deg,#03100b 0%,#0a2017 48%,#04120d 100%)}.dashboard.theme-aurora{--secondary:#5df6d5;background:radial-gradient(circle at 16% 18%,#5df6d533,#0000 28%),radial-gradient(circle at 84% 20%,#59a7ff2e,#0000 32%),linear-gradient(135deg,#060d13 0%,#101827 48%,#061315 100%)}.dashboard.warm{--accent:#ffb020;--accent-soft:#ffb02033}.dashboard.active{--accent:#21c9a7;--accent-soft:#21c9a72e}.dashboard.calm{--accent:#59a7ff;--accent-soft:#59a7ff2e}.dashboard.idle{--accent:#8a94a6;--accent-soft:#8a94a624}.dashboard.danger{--accent:#ff4d6d;--accent-soft:#ff4d6d3d}.dashboard.theme-lava.danger,.dashboard.theme-lava.warm,.dashboard.theme-lava.active,.dashboard.theme-lava.calm,.dashboard.theme-lava.idle{--accent:#ff174d;--accent-soft:#ff174d42}.dashboard.theme-forest.danger,.dashboard.theme-forest.warm,.dashboard.theme-forest.active,.dashboard.theme-forest.calm,.dashboard.theme-forest.idle{--accent:#35e38b;--accent-soft:#35e38b38}.hero-panel,.metrics-panel,.chart-panel{background:var(--panel);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border:1px solid #ffffff1a;box-shadow:0 24px 90px #00000057}.app-chrome{z-index:5;grid-column:1/-1;justify-content:space-between;align-items:center;gap:16px;min-height:50px;display:flex;position:relative}.app-title{min-width:0;color:var(--ink);align-items:center;gap:10px;font-size:clamp(1.2rem,3vw,1.8rem);font-weight:900;display:inline-flex}.title-mark{background:var(--accent);width:12px;height:28px;box-shadow:0 0 24px var(--accent-soft);border-radius:999px}.toolbar{flex-shrink:0;align-items:center;gap:10px;display:inline-flex;position:relative}.icon-button{background:#ffffff12;border:1px solid #ffffff1f;place-items:center;width:44px;height:44px;min-height:44px;padding:0;display:inline-grid}.icon-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.theme-picker,.obs-picker{position:relative}.obs-button{border:1px solid color-mix(in srgb, var(--accent) 30%, #ffffff1f);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 20%, transparent), #ffffff0f);min-width:58px;height:44px;min-height:44px;color:var(--ink);border-radius:8px;padding:0 12px;font-size:.82rem;font-weight:900}.theme-menu,.obs-menu{z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0e18f0;border:1px solid #ffffff21;border-radius:8px;gap:6px;width:158px;padding:8px;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 18px 42px #0000005c}.obs-menu{width:178px}.theme-option{width:100%;min-height:36px;color:var(--ink);text-align:left;background:0 0;border-radius:6px;align-items:center;gap:10px;padding:0 8px;font-size:.92rem;display:flex}.obs-option{width:100%;min-height:38px;color:var(--ink);text-align:left;background:0 0;border-radius:6px;align-items:center;gap:10px;padding:0 8px;font-size:.9rem;display:flex}.obs-option:hover{background:#ffffff17}.obs-swatch{background:0 0;border:1px solid #ffffff38;border-radius:4px;width:22px;height:16px;box-shadow:inset 0 -6px #ff224f}.obs-swatch.obs-blue{background:#061a3a}.obs-swatch.obs-green{box-shadow:inset 0 -6px #35e38b}.theme-option.selected,.theme-option:hover{background:#ffffff17}.theme-swatch{border-radius:999px;width:18px;height:18px;box-shadow:inset 0 0 0 1px #ffffff47}.swatch-lava{background:linear-gradient(135deg,#ff174d,#5b070f)}.swatch-aurora{background:linear-gradient(135deg,#5df6d5,#59a7ff)}.swatch-forest{background:linear-gradient(135deg,#35e38b,#083d26)}.hero-panel{border-radius:8px;grid-row:2/span 2;align-content:space-between;gap:clamp(10px,1.8vh,22px);min-height:0;padding:clamp(16px,2.8vw,34px);display:grid;position:relative;overflow:hidden}.hero-panel:before{content:"";pointer-events:none;background-color:#0000;background-image:linear-gradient(90deg,#0000 49%,#ffffff0f 50%,#0000 51%),linear-gradient(#0000 49%,#ffffff0d 50%,#0000 51%);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:46px 46px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:12%;-webkit-mask-image:radial-gradient(circle,#000,#0000 68%);mask-image:radial-gradient(circle,#000,#0000 68%)}.status-row{z-index:1;color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.92rem;display:flex;position:relative}.status-row strong{color:var(--ink);font-weight:700}.live-dot{background:var(--secondary);border-radius:999px;width:10px;height:10px;animation:1.6s ease-in-out infinite blink;box-shadow:0 0 0 8px #21c9a71f}.pulse-stage{z-index:1;aspect-ratio:1;place-items:center;width:min(72vw,42vh,400px);margin:8px auto;display:grid;position:relative}.orbit{transform:scale(var(--pulse-scale));animation:orbitPulse var(--beat-duration) ease-out infinite;border:1px solid #ffffff21;border-radius:50%;position:absolute;inset:7%}.orbit-two{border-color:color-mix(in srgb, var(--accent) 46%, transparent);animation-delay:calc(var(--beat-duration) * -.32);inset:20%}.heart-core{aspect-ratio:1;background:radial-gradient(circle at 50% 38%, #ffffff3d, transparent 18%), radial-gradient(circle, var(--accent-soft), #ffffff0d 58%, #ffffff05);width:58%;box-shadow:0 0 52px var(--accent-soft), inset 0 0 44px #ffffff14;animation:heartBeat var(--beat-duration) ease-in-out infinite;border:1px solid #ffffff29;border-radius:50%;place-items:center;display:grid;position:relative}.dashboard.idle .heart-core,.dashboard.idle .orbit,.dashboard.idle .live-dot{animation-play-state:paused}.dashboard.idle .live-dot{background:#8a94a6;box-shadow:0 0 0 8px #8a94a61a}.heart-symbol{color:var(--accent);text-shadow:0 0 28px var(--accent-soft);font-size:clamp(2.8rem,8vh,5.2rem);line-height:.8}.bpm-value{color:var(--ink);margin-top:-8px;font-size:clamp(3rem,10vh,6.2rem);font-weight:900;line-height:.82}.bpm-label{color:var(--muted);font-size:.86rem;font-weight:800}.hero-copy{z-index:1;position:relative}.hero-copy p,.panel-heading p{color:var(--secondary);margin-bottom:4px;font-size:.84rem;font-weight:800}.hero-copy h1{margin:0;font-size:clamp(2.3rem,8vh,5.6rem);font-weight:900;line-height:.95}.hero-copy span{color:var(--muted);margin-top:12px;display:block}.hero-actions{z-index:1;flex-wrap:wrap;gap:12px;display:flex;position:relative}button{min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border:0;border-radius:8px;padding:0 18px;font-weight:800;transition:transform .2s,opacity .2s,background .2s}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.45}.primary-action{background:linear-gradient(135deg, var(--accent), #ff7a59);box-shadow:0 14px 32px var(--accent-soft)}.ghost-action{background:#ffffff12;border:1px solid #ffffff24}.error-text{z-index:1;color:#ffd1dc;font-size:.9rem;position:relative}.metrics-panel{border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;min-height:0;display:grid;overflow:hidden}.metric{background:#ffffff09;align-content:center;min-width:0;padding:clamp(12px,2.2vw,24px);display:grid}.metric span,.metric small{color:var(--muted);font-size:.84rem}.metric strong{color:var(--ink);font-size:clamp(2rem,5.8vh,4rem);font-weight:900;line-height:1}.chart-panel{border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:18px;min-height:0;padding:clamp(14px,2.4vw,26px);display:grid}.panel-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.panel-heading h2{color:var(--ink);font-size:clamp(1.6rem,4vw,2.6rem);font-weight:900;line-height:1}.range-control{min-width:min(220px,42vw);color:var(--muted);justify-items:end;gap:8px;font-size:.9rem;font-weight:800;display:grid}.range-control input{width:100%;accent-color:var(--accent)}.chart-shell{background:linear-gradient(180deg, #ffffff0f, transparent), var(--panel-strong);border-radius:8px;min-height:0;position:relative;overflow:hidden}.chart-scroll{scrollbar-color:var(--accent) #ffffff14;scrollbar-width:thin;position:absolute;inset:0;overflow:auto hidden}.chart-scroll::-webkit-scrollbar{height:8px}.chart-scroll::-webkit-scrollbar-track{background:#ffffff14}.chart-scroll::-webkit-scrollbar-thumb{background:var(--accent);border-radius:999px}.heart-chart,.chart-grid{width:100%;height:calc(100% - 34px);position:absolute;top:0;left:0}.chart-grid{pointer-events:none;background-image:linear-gradient(#ffffff12 1px,#0000 1px),linear-gradient(90deg,#ffffff12 1px,#0000 1px),linear-gradient(#ffffff21 1px,#0000 1px),linear-gradient(90deg,#ffffff21 1px,#0000 1px);background-size:100% 20%,52px 100%,100% 50%,260px 100%}.heart-chart{z-index:2}.ecg-line{stroke:var(--accent);stroke-width:1.45px;stroke-linecap:square;stroke-linejoin:miter;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 6px var(--accent-soft))}.chart-marker{outline:none}.marker-hit{fill:#0000;pointer-events:all}.marker-dot{fill:var(--accent);stroke:var(--accent);stroke-width:1px;vector-effect:non-scaling-stroke;opacity:0}.chart-marker:focus .marker-dot,.chart-marker:hover .marker-dot{fill:var(--accent);opacity:1}.chart-axis{z-index:3;border-top:1px solid #ffffff14;min-width:100%;height:34px;position:absolute;bottom:0;left:0}.axis-tick{color:var(--muted);white-space:nowrap;font-size:.74rem;font-weight:700;position:absolute;top:9px;transform:translate(-50%)}.chart-tooltip{z-index:4;border:1px solid color-mix(in srgb, var(--accent) 46%, #ffffff29);min-width:106px;color:var(--ink);pointer-events:none;background:#05090eeb;border-radius:6px;gap:2px;padding:8px 10px;display:grid;position:absolute;transform:translate(-50%,calc(-100% - 16px));box-shadow:0 14px 28px #0000005c}.chart-tooltip strong{color:var(--accent);font-size:.96rem;font-weight:900}.chart-tooltip span{color:var(--muted);font-size:.76rem;font-weight:700}.empty-chart{z-index:2;color:var(--muted);place-items:center;font-weight:800;display:grid;position:absolute;inset:0}@keyframes heartBeat{0%,to{transform:scale(1)}18%{transform:scale(1.08)}34%{transform:scale(.98)}50%{transform:scale(1.04)}}@keyframes orbitPulse{0%{opacity:.84;transform:scale(.86)}to{opacity:0;transform:scale(1.18)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.45}}@media (width<=900px){.dashboard{grid-template-rows:44px minmax(0,1fr) minmax(76px,.22fr) minmax(0,.78fr);grid-template-columns:1fr;gap:10px;overflow:hidden}.hero-panel{grid-row:auto;min-height:0}.metrics-panel{min-height:0}}@media (width<=560px){.dashboard{grid-template-rows:42px minmax(0,1fr) minmax(72px,.2fr) minmax(0,.72fr);padding:10px}.app-chrome{gap:8px;min-height:42px}.app-title{font-size:1rem}.toolbar{gap:6px}.icon-button{width:38px;height:38px;min-height:38px}.obs-button{min-width:48px;height:38px;min-height:38px;padding:0 8px;font-size:.72rem}.metrics-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.panel-heading{flex-direction:column;align-items:flex-start}.range-control{justify-items:start;width:100%}.chart-shell{min-height:0}}
