:root{--brand-orange:#ff9a3d;--brand-navy:#031426;--bg:#13275a;--card:#0b1a3c;--card-2:#122448;--ink:#eef2fb;--mute:#a7b6d6;--line:#24396a;--accent:#f2c14e;--accent-ink:#0b1730;--accent-soft:#1a2d5c;--blue:#6b8fe0;--link:#9db8e8;--mint:#2fbf8f;--coral:#f06a6a;--lav:#c9a6ff;--orange:#f28a3c;--radius:14px;--gutter:16px;--tap:44px}:root[data-theme=light]{--bg:#f6f5f1;--card:#ffffff;--card-2:#eef1f7;--ink:#1b1d21;--mute:#6b7078;--line:#e3e1da;--accent:#1f3a5f;--accent-ink:#ffffff;--accent-soft:#e8eef7;--blue:#1f3a5f;--link:#1f3a5f}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}#root{max-width:480px;margin:0 auto}h1{font-size:22px;margin:0 0 8px}h2{font-size:19px;margin:24px 0 8px}h3{font-size:12px;margin:18px 0 8px;color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-weight:700}p{margin:0 0 10px}a{color:var(--link)}.shell-header{position:sticky;top:0;z-index:10;background:var(--card);border-bottom:1px solid var(--line);padding:calc(10px + env(safe-area-inset-top)) var(--gutter) 10px;display:flex;align-items:center;justify-content:space-between}.shell-header .brand{font-weight:700;letter-spacing:.08em;color:var(--mute);font-size:14px}.shell-header .module-tag{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mint)}.support-btn{min-height:var(--tap);min-width:var(--tap);border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:6px 12px;font:inherit}main.screen{padding:calc(14px + env(safe-area-inset-top)) var(--gutter) 24px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin:12px 0}.card.accent{border-left:4px solid var(--accent)}.card.deep{background:var(--card-2)}.big{font-size:44px;font-weight:600;line-height:1.1}.mute{color:var(--mute)}.small{font-size:14px}button.primary,a.primary{display:block;width:100%;min-height:52px;border:0;border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:600;font-size:18px;padding:12px 16px;text-align:center;text-decoration:none;cursor:pointer}button.primary:disabled{opacity:.5}button.secondary{display:block;width:100%;min-height:var(--tap);border:1.5px solid var(--accent);border-radius:var(--radius);background:transparent;color:var(--accent);font-weight:600;font:inherit;padding:10px 14px;margin-top:8px;cursor:pointer}button.link{background:none;border:0;color:var(--link);font:inherit;padding:6px 0;text-decoration:underline;cursor:pointer}.row{display:flex;gap:8px;align-items:center}.choices{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.choices button,.seg button{min-height:52px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:var(--radius);font:inherit;font-size:18px;cursor:pointer}.choices button[aria-pressed=true],.seg button[aria-pressed=true],.chip[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stepper{display:grid;grid-template-columns:56px 1fr 56px;gap:8px;align-items:center}.stepper button{min-height:52px;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:var(--radius);font-size:24px;cursor:pointer}.stepper output{text-align:center;font-size:28px;font-weight:600}.chip{display:inline-block;min-height:var(--tap);border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:10px 14px;margin:4px 6px 4px 0;font:inherit;cursor:pointer}input[type=text],input[type=email],input[type=date],input[type=number],input[type=password],select{width:100%;min-height:var(--tap);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;background:var(--card);color:var(--ink)}label.check{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}label.check input{width:24px;height:24px;margin-top:2px;flex:none}.footer{color:var(--mute);font-size:13px;border-top:1px solid var(--line);padding:14px var(--gutter) 20px;margin-top:24px}.tabbar{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom)}.tabbar a,.tabbar .tab-btn{display:flex;align-items:center;justify-content:center;min-height:58px;color:var(--mute);background:none;border:0;cursor:pointer}.tabbar svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.tabbar a.active{color:var(--accent)}.tabbar a.active svg{stroke-width:2.4}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:10px 0}.day{text-align:center;padding:8px 0;border-radius:10px;border:1px solid var(--line);font-size:13px}.day.today{font-weight:700}.day .ring{display:inline-block;width:28px;height:28px;line-height:26px;border-radius:50%;border:2px solid transparent}.day.done .ring,.day.today{border-color:var(--accent)}.capture{position:fixed;inset:0;background:#fff;color:var(--brand-navy);z-index:50;display:flex;flex-direction:column}.capture canvas,.capture video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.capture canvas.engine-canvas{z-index:0;background:#fff}.capture .notice{position:relative;z-index:2;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:#0000008c;font-weight:600}.capture .bottom{position:absolute;left:0;right:0;bottom:0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#0000008c;z-index:2}.ring-progress{height:6px;background:#ffffff40;border-radius:3px;overflow:hidden}.ring-progress>div{height:100%;background:#fff}.sheet{position:fixed;inset:0;background:#00000073;z-index:60;display:flex;align-items:flex-end}.sheet .panel{background:var(--card);color:var(--ink);width:100%;max-width:480px;margin:0 auto;border-radius:16px 16px 0 0;padding:16px var(--gutter) calc(16px + env(safe-area-inset-bottom));max-height:85vh;overflow:auto}.trend{display:flex;align-items:flex-end;gap:3px;height:64px}.trend span{flex:1;background:var(--accent);opacity:.85;border-radius:2px 2px 0 0}table.plain{width:100%;border-collapse:collapse;font-size:15px}table.plain td{padding:6px 0;border-bottom:1px solid var(--line);vertical-align:top}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media print{.shell-header,.tabbar,.footer,button{display:none!important}body{padding:0;background:#fff;color:#000}.card{border:1px solid #999;break-inside:avoid}}.card.checks{padding:4px 16px}.check-row{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:start;padding:11px 0;border-bottom:1px solid var(--line)}.check-row:last-of-type{border-bottom:0}.check-mark{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;background:var(--accent)}.check-row.fail .check-mark{background:#b23b3b}.check-row.pending .check-mark{background:transparent;border:2px solid var(--accent);border-top-color:transparent;animation:spin .9s linear infinite;box-sizing:border-box}.check-body{display:flex;flex-direction:column;gap:4px;min-width:0}.check-label{font-weight:500}.check-detail{color:var(--mute);font-size:13px}.check-status{color:var(--mute);font-size:14px;padding-top:2px;white-space:nowrap}.check-row.fail .check-status{color:#b23b3b;font-weight:600}.bar{display:block;height:6px;border-radius:3px;background:var(--accent-soft);overflow:hidden;margin-top:4px}.bar-fill{display:block;height:100%;background:var(--accent);border-radius:3px;transition:width .3s ease}.check-footer{padding:10px 0 8px;margin:0}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.check-row.pending .check-mark{animation:none;border-top-color:var(--accent);opacity:.6}}.capture{--navy: #0b1730;--navy-2: #122448;--gold: #f2c14e;--blue: #6b8fe0;--mint: #2fbf8f;--coral: #f06a6a}.camera-notice{font-weight:600}.capture .oval-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.capture .oval-overlay .dim{fill:#fff}.capture .oval-overlay .outline{fill:none;stroke:#b4d2f0;stroke-width:3}.capture .oval-overlay.ok .outline{stroke:var(--mint);stroke-width:4;filter:drop-shadow(0 0 6px rgba(47,191,143,.6))}.capture .oval-overlay.checking .outline{stroke:var(--gold);stroke-width:4;filter:drop-shadow(0 0 6px rgba(242,193,78,.6))}.capture .oval-overlay.warn .outline{stroke:var(--gold);stroke-width:4;stroke-dasharray:10 7}.capture .oval-overlay .ring-track{fill:none;stroke:#e2eefa;stroke-width:5}.capture .oval-overlay .ring{fill:none;stroke:var(--gold);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .25s linear}.capture .bottom{background:#fff;padding-top:14px}.capture .reading-chip{display:flex;gap:12px;align-items:flex-start;background:var(--navy-2);border:1px solid rgba(107,143,224,.35);border-radius:14px;padding:10px 14px;margin-bottom:10px}.capture .reading-chip svg{flex:none}.capture .reading-chip>div{flex:1;min-width:0}.capture .chip-track{fill:none;stroke:#ffffff24;stroke-width:4}.capture .chip-ring{fill:none;stroke:var(--gold);stroke-width:4;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .25s linear}.capture .chip-text{fill:#fff;font-size:12px;font-weight:700}.capture .chip-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700}.capture .cue{font-size:17px;font-weight:600;color:#fff;min-height:22px}.capture .trace{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;background:var(--navy-2);border:1px solid rgba(107,143,224,.35);border-radius:14px;padding:8px 14px}.capture canvas.pulse-wave{position:static;inset:auto;display:block;width:100%;height:48px;object-fit:unset}.capture .pulse{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1;min-width:72px}.capture .pulse-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;color:#fff}.capture button.capture-cancel{margin-top:8px;min-height:44px;background:transparent;color:var(--brand-navy);border-color:#b4d2f0;font-weight:600}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.panel-title{font-size:22px;font-weight:700;margin:0}.panel-sub{color:var(--mute);font-size:14px;margin-bottom:8px}.gauge{position:relative;text-align:center;margin:6px auto 4px;max-width:280px}.gauge svg{display:block}.gauge-track{fill:none;stroke:var(--accent-soft);stroke-linecap:round}.gauge-fill{fill:none;stroke:url(#gauge-grad);stroke-linecap:round}.gauge-marker{stroke:#fff;stroke-width:4;stroke-linecap:round}.gauge-ref{stroke:#ffffff73;stroke-width:2;stroke-dasharray:3 3}.gauge-value{position:absolute;left:0;right:0;top:46%;font-size:56px;font-weight:800;line-height:1;letter-spacing:-.02em}.gauge-ref-label{color:var(--mute);font-size:14px;margin-top:-6px}.gauge-caption{font-weight:700;font-size:15px;margin-top:2px}.gauge-caption.below{color:var(--coral)}.gauge-caption.above{color:var(--mint)}.gauge-caption.near{color:var(--mute)}.delta.below{color:var(--coral);font-weight:700}.delta.above{color:var(--mint);font-weight:700}.delta.near{color:var(--mute);font-weight:600}.pillar{display:grid;grid-template-columns:96px 1fr 48px;gap:10px;align-items:center;padding:5px 0;font-size:14px}.pillar-label{color:var(--ink)}.pillar-track{height:8px;border-radius:4px;background:var(--accent-soft);overflow:hidden}.pillar-fill{display:block;height:100%;border-radius:4px;background:var(--accent)}.pillar-value{text-align:right;color:var(--mute);font-variant-numeric:tabular-nums}.area-chip{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:4px 8px;border-radius:6px;color:var(--accent-ink);white-space:nowrap}.area-chip.mind{background:var(--lav)}.area-chip.movement{background:var(--mint)}.area-chip.nutrition{background:var(--orange)}.routine-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}.routine-row:last-child{border-bottom:0}.routine-row .points{color:var(--mint);font-weight:800;font-variant-numeric:tabular-nums}.routine-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}.routine-card{border-left:4px solid var(--line)}.routine-card.mind{border-left-color:var(--lav)}.routine-card.movement{border-left-color:var(--mint)}.routine-card.nutrition{border-left-color:var(--orange)}.routine-card .title{font-weight:700;font-size:17px;margin:4px 0 2px}.tag{display:inline-block;font-size:12px;font-weight:600;color:var(--ink);background:var(--accent-soft);border-radius:999px;padding:3px 10px;margin:6px 6px 0 0}.goal-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-weight:800;font-size:18px}.goal-from{color:var(--accent)}.goal-to{color:var(--mint)}.goal-track{position:relative;height:10px;border-radius:5px;background:var(--accent-soft);overflow:hidden}.goal-fill{position:absolute;left:0;top:0;bottom:0;background:var(--blue);border-radius:5px}.goal-gain{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(90deg,var(--mint) 0 6px,rgba(47,191,143,.55) 6px 10px)}.hero-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}.hero-tags span{font-size:12px;color:var(--mute);border:1px solid var(--line);border-radius:999px;padding:4px 10px}.brand-hero{text-align:center;padding:18px 0 6px}.brand-hero .brand-logo{width:min(72%,260px);height:auto;display:block;margin:0 auto 10px}.brand-slogan{font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--brand-orange)}.home-brand{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 16px}.home-brand .brand-logo{width:118px;height:auto;display:block}.home-brand .brand-slogan{font-size:15px;text-align:right;line-height:1.2}.shell-header .brand-mark{width:86px;height:auto;display:block}.install-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border-color:var(--accent)}.install-card .install-btn{width:auto;min-height:44px;font-size:16px;padding:8px 18px;flex:none}.capture .stars-row{position:absolute;z-index:2;left:0;right:0;top:calc(6px + env(safe-area-inset-top));display:flex;justify-content:center;pointer-events:none}.signal-stars{display:inline-flex;gap:4px;background:#ffffffd9;border-radius:999px;padding:4px 10px}.signal-stars svg{width:20px;height:20px;fill:#e2eefa;stroke:#b4d2f0;stroke-width:1}.signal-stars svg.on{fill:var(--gold, #f2c14e);stroke:#d99a1e}.capture .live-row{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;background:var(--navy-2);border:1px solid rgba(107,143,224,.35);border-radius:14px;padding:8px 14px;margin-top:8px}.capture .pulse-tile{display:flex;flex-direction:column;line-height:1.1;min-width:74px}.capture .pulse-label{font-size:11px;color:var(--gold);text-transform:uppercase;letter-spacing:.12em;font-weight:700}.capture .pulse-value{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;color:#fff}.capture .pulse-unit{font-size:11px;color:#e8eefcb3}.capture .live-row canvas.pulse-wave{position:static;inset:auto;display:block;width:100%;height:48px;object-fit:unset}
