:root{--bg: #eef3f6;--surface: #ffffff;--surface-soft: #f7fafb;--surface-strong: #edf7f8;--text: #14212b;--muted: #60717e;--line: #d9e3ea;--primary: #075e74;--primary-strong: #04485a;--success: #0d7a4f;--success-soft: #e6f6ef;--warning: #a45f00;--warning-soft: #fff3dc;--danger: #b42318;--danger-soft: #fde8e5;--focus: #8bd2df;color:var(--text);background:var(--bg);font-family:Microsoft YaHei UI,Segoe UI,ui-sans-serif,system-ui,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(180deg,#e7f4f7e6 0,#eef3f600 300px),var(--bg)}h1,h2,h3,p,figure{margin-top:0}button{min-height:44px;border:1px solid var(--primary);border-radius:7px;padding:0 16px;background:var(--primary);color:#fff;font:inherit;font-weight:800;cursor:pointer;transition:background .16s ease,border-color .16s ease,opacity .16s ease}button:hover:not(:disabled){background:var(--primary-strong);border-color:var(--primary-strong)}button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.48}button.secondary{background:#fff;color:var(--primary)}button.danger{border-color:var(--danger);background:var(--danger)}.workspace{width:min(960px,calc(100vw - 32px));margin:22px auto 36px;display:grid;gap:14px}.app-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:4px 2px 8px}.eyebrow{margin:0 0 4px;color:var(--primary);font-size:.76rem;font-weight:800;text-transform:uppercase}h1{margin-bottom:8px;font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.08;letter-spacing:0}h2{margin-bottom:0;font-size:1.05rem}.header-copy{max-width:640px;margin-bottom:0;color:var(--muted);font-size:.98rem}.header-meta{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.header-meta span,.header-meta a{min-height:32px;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:0 11px;background:var(--surface);color:var(--muted);font-size:.83rem;font-weight:700;text-decoration:none;white-space:nowrap}.header-meta a{color:var(--primary)}#devlogLink{min-height:54px;border-color:var(--primary);border-radius:12px;padding:0 24px;background:var(--primary);color:#fff;font-size:1.12rem;font-weight:900;letter-spacing:0;box-shadow:0 12px 26px #075e743d}#devlogLink:hover{border-color:var(--primary-strong);background:var(--primary-strong)}.measurement-shell{display:grid;gap:12px}.primary-action{display:grid}#prepareBtn{min-height:50px;font-size:1rem}.video-stage{position:relative;overflow:hidden;border:1px solid #bfd5dc;border-radius:8px;background:#10171c;box-shadow:0 16px 42px #14212b29}.media-frame{position:relative;margin:0;width:100%;aspect-ratio:var(--camera-aspect-ratio, 4 / 3)}.media-frame figcaption{position:absolute;left:12px;bottom:12px;z-index:4;min-height:28px;display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:0 10px;background:#080e12a3;color:#e8f4f6;font-size:.78rem;font-weight:750}video,.media-frame canvas{display:block;width:100%;height:100%;background:#10171c;object-fit:contain}.media-frame video,.media-frame canvas{transform:scaleX(-1);transform-origin:center}canvas{background:var(--surface-soft)}#overlayCanvas{position:absolute;inset:0;z-index:3;pointer-events:none;background:transparent}#frameCanvas{display:none}.signal-overlay{position:absolute;top:12px;left:12px;z-index:5;width:min(360px,calc(100% - 24px));display:grid;gap:8px}.state{width:fit-content;min-width:104px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:0 12px;background:#e7f4f7eb;color:var(--primary);font-size:.78rem;font-weight:850}.state-collecting,.state-analyzing,.state-initializing,.state-preparing,.state-camera-testing{background:#fff3dcf0;color:var(--warning)}.state-failed,.state-canceled{background:#fde8e5f2;color:var(--danger)}.state-ready,.state-completed{background:#e6f6eff2;color:var(--success)}.quality{min-height:42px;margin:0;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:10px 12px;background:#080e12ad;color:#f3fbfc;font-size:.9rem;font-weight:800;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.readiness-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.readiness-strip #cameraStatus{grid-column:1 / -1}.readiness-strip span{min-height:32px;display:flex;align-items:center;border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:6px 9px;background:#080e1294;color:#dce9ec;font-size:.78rem;font-weight:750;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.readiness-strip .status-good{border-color:#b8e3d0cc;background:#e6f6efeb;color:var(--success)}.readiness-strip .status-warn{border-color:#eed6aadb;background:#fff3dceb;color:var(--warning)}.readiness-strip .status-bad{border-color:#f1b7b0db;background:#fde8e5eb;color:var(--danger)}.countdown-badge{position:absolute;top:12px;right:12px;z-index:5;min-height:36px;display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:0 12px;background:#080e12a8;color:#f3fbfc;font-size:.84rem;font-weight:850;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.star-rating{position:absolute;right:12px;bottom:64px;z-index:5;min-height:34px;display:inline-flex;align-items:center;gap:2px;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:0 10px;background:#080e12a8;color:#ffffff6b;font-size:1.02rem;line-height:1;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}body[data-state=completed] .star-rating{bottom:14px}.star-rating[hidden]{display:none}.live-diagnostic{position:absolute;left:12px;right:12px;bottom:106px;z-index:7;min-height:28px;border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:6px 8px;background:#080e12b8;color:#f3fbfc;font-size:.72rem;font-weight:800;line-height:1.3;overflow-wrap:anywhere}.live-diagnostic[hidden]{display:none}.star-icon{width:16px;text-align:center}.star-icon.filled{color:#f5c84b}.snr-label{margin-left:8px;padding-left:8px;border-left:1px solid rgba(255,255,255,.18);color:#f3fbfc;font-size:.72rem;font-weight:850;letter-spacing:0;white-space:nowrap}.constraint-bar{position:absolute;left:50%;bottom:68px;z-index:6;width:min(92%,620px);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;transform:translate(-50%)}.constraint-bar[hidden]{display:none}.constraint-badge{min-height:30px;display:inline-flex;align-items:center;border:1px solid rgba(241,183,176,.86);border-radius:999px;padding:0 10px;background:#fde8e5f0;color:var(--danger);font-size:.78rem;font-weight:800;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.video-actions{position:absolute;left:50%;bottom:14px;z-index:6;display:flex;gap:10px;transform:translate(-50%)}.video-actions button{min-width:130px;box-shadow:0 8px 24px #0000003d}.meter-block{display:grid;gap:8px}.status-row{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:.86rem;font-weight:750}.meter{height:12px;border-radius:999px;overflow:hidden;background:#dfe8ee}.meter span{display:block;width:0;height:100%;background:var(--success);transition:width .18s ease}.results-panel,.settings-panel,.diagnostics-panel{border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--surface);box-shadow:0 1px 2px #14212b0a}.result-summary{min-height:72px;display:grid;gap:5px;margin-bottom:10px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--surface-soft)}.result-summary strong{font-size:1.08rem}.result-summary span{color:var(--muted)}.summary-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:4px 0}.summary-metrics span{display:grid;gap:2px;border:1px solid rgba(13,122,79,.18);border-radius:8px;padding:10px;background:#ffffffa8}.summary-metrics small{color:var(--muted);font-size:.76rem;font-weight:700}.summary-metrics strong{color:var(--text);font-size:1.08rem;font-variant-numeric:tabular-nums}.result-summary-good{border-color:#b8e3d0;background:var(--success-soft)}.result-summary-pending{border-color:#eed6aa;background:var(--warning-soft)}.result-summary-bad{border-color:#f1b7b0;background:var(--danger-soft)}.result-disclaimer{margin:0 0 12px;color:var(--muted);font-size:.84rem}.metric-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:12px}.metric-tabs[hidden]{display:none}.metric-tabs button{min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--muted);font-weight:800}.metric-tabs button.active{border-color:var(--accent);background:var(--surface-strong);color:var(--accent)}.results{min-height:84px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.results:empty:before{content:"完成分析后会显示详细结果。";color:var(--muted)}.result-card{border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--surface-soft)}.result-metric-card{min-height:112px;display:grid;grid-template-columns:auto 1fr;align-content:center;align-items:center;column-gap:10px;row-gap:4px;background:#fff}.metric-provisional{border-color:#eed6aa;background:var(--warning-soft)}.metric-unavailable,.metric-pending,.metric-unsupported{background:var(--surface-soft)}.result-icon{grid-row:span 3;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(7,94,116,.12);border-radius:8px;background:var(--surface-strong);font-size:1.35rem;line-height:1}.result-label{color:var(--muted);font-size:.8rem;font-weight:800}.result-value{color:var(--text);font-size:1.28rem;font-variant-numeric:tabular-nums;line-height:1.15}.metric-state{color:var(--muted);font-size:.72rem;font-weight:700}.results-empty{grid-column:1 / -1;margin:0;padding:18px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);text-align:center}.report-gate{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.report-gate p{margin:0;color:var(--muted);font-size:.82rem}.report-gate button{flex:0 0 auto}.result-card h3{margin-bottom:8px;font-size:.94rem}.result-card p{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px;color:var(--muted);font-variant-numeric:tabular-nums}body[data-state=collecting] .signal-overlay{width:min(300px,calc(100% - 24px));gap:6px}body[data-state=collecting] .quality{min-height:36px;padding:8px 10px;font-size:.82rem}body[data-state=collecting] .readiness-strip{display:none}.settings-panel{display:grid;gap:12px}.settings-panel summary{cursor:pointer;color:var(--text);font-weight:850}.settings-grid{display:grid;gap:8px;margin-top:10px}.settings-panel label{color:var(--muted);font-size:.84rem;font-weight:700}.settings-panel select{width:100%;min-height:42px;border:1px solid var(--line);border-radius:7px;padding:0 10px;background:#fff;color:var(--text);font:inherit}.check-row{display:flex!important;align-items:center;gap:8px}.check-row input{width:18px;height:18px}.run-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.run-summary div{min-height:66px;border:1px solid var(--line);border-radius:8px;padding:9px;background:var(--surface-soft)}.summary-label{display:block;color:var(--muted);font-size:.76rem;font-weight:700}.run-summary strong{display:block;margin-top:5px;font-size:1.06rem;font-variant-numeric:tabular-nums}.debug-only,.diagnostics-panel{display:none}body[data-debug=true] .debug-only{display:flex;gap:10px}body[data-debug=true] .run-summary.debug-only{display:grid}body[data-debug=true] .diagnostics-panel{display:block}.debug-actions button{flex:1}.events{max-height:260px;overflow:auto;margin:0;padding-left:20px}.events:empty:before{content:"暂无事件。";color:var(--muted)}.events li{margin-bottom:8px;color:var(--muted);font-size:.9rem}.devlog-shell{max-width:900px}.devlog-header{align-items:flex-start}.devlog-header .header-meta a,.devlog-back-link,.devlog-adjacent a{min-height:36px;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:7px;padding:0 12px;background:var(--surface);color:var(--primary);font-weight:800;text-decoration:none}.devlog-list{display:grid;gap:10px}.devlog-card{display:grid;gap:6px;border:1px solid var(--line);border-radius:8px;padding:18px;background:var(--surface);color:inherit;text-decoration:none;transition:border-color .16s ease,transform .16s ease}.devlog-card:hover{border-color:var(--primary);transform:translateY(-1px)}.devlog-card time{color:var(--primary);font-size:.82rem;font-weight:800}.devlog-card strong{font-size:clamp(1.06rem,2vw,1.24rem);font-weight:650;line-height:1.28}.devlog-card span{color:var(--muted)}.devlog-card-author{color:var(--primary)!important;font-family:Cascadia Mono,Consolas,monospace;font-size:.82rem;font-weight:600}.devlog-frontmatter{border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:10px;padding:14px 16px;background:#f9fcfd;box-shadow:0 8px 18px #14212b0a;color:var(--text);font-family:Cascadia Mono,Consolas,monospace}.devlog-frontmatter p{margin:0;font-size:.9rem;line-height:1.65}.devlog-frontmatter span,.frontmatter-fence{color:var(--primary);font-weight:650}.devlog-frontmatter strong{color:var(--text);font-weight:600}.frontmatter-author strong{color:var(--primary-strong)}.devlog-article{border:1px solid var(--line);border-radius:8px;padding:clamp(18px,3vw,30px);background:var(--surface)}.devlog-article>*+*{margin-top:14px}.devlog-article h1{font-size:1.35rem;font-weight:650}.devlog-article h2{margin-top:24px;font-size:1.08rem;font-weight:650}.devlog-article h3{margin-top:20px;font-size:1rem;font-weight:600}.devlog-article p,.devlog-article li,.devlog-article blockquote{color:#263845}.devlog-article ul{margin-bottom:0;padding-left:1.25rem}.devlog-article li+li{margin-top:6px}.devlog-article blockquote{border-left:4px solid var(--focus);margin-left:0;padding:10px 14px;background:var(--surface-soft)}.devlog-article a{color:var(--primary);font-weight:800}.devlog-article code{border-radius:5px;padding:2px 5px;background:var(--surface-strong);font-family:Cascadia Mono,Consolas,monospace;font-size:.9em}.devlog-article pre{overflow-x:auto;border-radius:8px;padding:14px;background:#14212b;color:#f7fafb}.devlog-article pre code{padding:0;background:transparent;color:inherit}.devlog-table-wrap{overflow-x:auto}.devlog-article table{width:100%;border-collapse:collapse;font-size:.92rem}.devlog-article th,.devlog-article td{border:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}.devlog-article th{background:var(--surface-strong);color:var(--text)}.devlog-adjacent{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.devlog-adjacent a{min-height:auto;align-items:flex-start;flex-direction:column;padding:12px}.devlog-adjacent span{color:var(--muted);font-size:.78rem}@media(max-width:720px){.devlog-article{padding:16px}.devlog-adjacent{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:720px){.workspace{width:min(100% - 20px,960px);margin:12px auto 24px}.app-header{align-items:flex-start;flex-direction:column}.header-meta{justify-content:flex-start}.signal-overlay{top:8px;left:8px;width:calc(100% - 118px)}.readiness-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.media-frame figcaption{display:none}.countdown-badge{top:8px;right:8px;bottom:auto;min-height:32px;padding-inline:10px}.star-rating{right:8px;bottom:64px;min-height:30px;padding-inline:8px;font-size:.9rem}body[data-state=completed] .star-rating{bottom:10px}.star-icon{width:14px}.live-diagnostic{left:8px;right:8px;bottom:96px;font-size:.66rem}.snr-label{margin-left:6px;padding-left:6px;font-size:.68rem}.constraint-bar{bottom:58px;gap:4px}.constraint-badge{min-height:26px;max-width:100%;padding-inline:8px;font-size:.72rem}.video-actions{width:calc(100% - 20px);bottom:10px}.video-actions button{min-width:0;flex:1;padding-inline:10px}.run-summary{grid-template-columns:1fr}}:root{--bg: #edf3ff;--surface: #ffffff;--surface-soft: #f8f9ff;--surface-strong: #eff4ff;--text: #0b1c30;--muted: #5f6878;--line: #cbd3e3;--primary: #0058bc;--primary-strong: #00489b;--success: #006952;--success-soft: #e5f7f0;--warning: #9a5c00;--warning-soft: #fff3dc;--danger: #ba1a1a;--danger-soft: #ffdad6;--focus: #adc6ff}html{background:#e8f0ff}body{min-width:320px;min-height:100vh;background:radial-gradient(circle at 50% -15%,rgba(0,88,188,.12),transparent 32rem),#e8f0ff;color:var(--text)}button{border-radius:999px}.workspace{position:relative;width:100%;max-width:390px;height:min(884px,100dvh);min-height:640px;margin:0 auto;padding:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:0;overflow:hidden;background:#f8f9ff;border-inline:1px solid rgba(193,198,215,.65);box-shadow:0 20px 60px #1b376329}.v3-content{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:auto}.measurement-shell{display:block;padding:0 20px 12px}.v3-topbar{position:relative;z-index:2;height:48px;margin-inline:-20px;padding:0 16px;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;border-bottom:1px solid rgba(193,198,215,.72);background:#f8f9fff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .22s ease}.v3-topbar .v3-page-title{text-align:center;font-size:.92rem;white-space:nowrap}.v3-top-action{width:44px;min-height:44px;border:0;padding:0;background:transparent;color:var(--primary);font-size:.82rem;font-weight:800;box-shadow:none}.v3-top-action:hover:not(:disabled){background:#0058bc14;color:var(--primary)}.v3-top-placeholder{color:var(--primary);text-align:right}.v3-more-icon{width:22px;height:22px;fill:currentColor}.v3-intro-stage{position:relative;height:176px;margin-top:14px;overflow:visible}.v3-intro{position:absolute;inset:0;border:1px solid rgba(193,198,215,.78);border-radius:16px;padding:20px;overflow:hidden;background:#eff4ff;box-shadow:0 6px 24px #0058bc14;opacity:1;transform:translateY(0);transition:opacity .24s cubic-bezier(.22,1,.36,1),transform .24s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.v3-intro h2{max-width:330px;margin:8px 0;font-size:1.85rem;line-height:1.08;letter-spacing:-.03em}.v3-intro p{margin-bottom:0;color:#414755;font-size:.92rem;line-height:1.5}.v3-kicker{color:var(--primary)!important;font-size:.74rem!important;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.v3-guidance{min-height:42px;margin-top:14px;display:flex;align-items:center;gap:8px;border:1px solid rgba(0,88,188,.18);border-radius:999px;padding:8px 12px;background:#d8e2ff7a;color:var(--primary);font-size:.8rem}.v3-intro-active{display:flex;align-items:center;background:linear-gradient(90deg,#051c2ff5,#062b44c2 62%,#051c2f4d),url(/anura/v3-banner-source.jpg) center / cover,#0b1c30;opacity:0;transform:translateY(8px);pointer-events:none}.v3-carousel-track{position:relative;width:100%;min-height:156px}.v3-carousel-slide{position:absolute;inset:0;opacity:0;transform:translateY(8px);transition:opacity .26s ease,transform .26s ease;pointer-events:none}.v3-carousel-slide.is-active{opacity:1;transform:translateY(0);pointer-events:auto}.v3-intro-active>.v3-carousel-track{position:relative;z-index:1}.v3-intro-active .v3-kicker{color:#65fbcf!important}.v3-intro-active h2{color:#fff;font-size:1.78rem}.v3-intro-active p{max-width:250px;color:#ffffffd1}.v3-intro-pagination{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:7px}.v3-intro-pagination i{width:6px;height:6px;border-radius:50%;background:#ffffff6b}.v3-intro-pagination i.is-active{background:#fff}@media(prefers-reduced-motion:reduce){.v3-carousel-slide{transition:none;transform:none}}.video-stage{margin-top:14px;overflow:hidden;border:2px solid rgba(0,88,188,.42);border-radius:24px;background:#07111d;box-shadow:0 10px 28px #0027592e}.media-frame{height:365px;max-height:none;aspect-ratio:auto}video,.media-frame canvas{object-fit:cover}.v3-face-mask{position:absolute;z-index:2;top:calc(15% + 20px);left:16%;width:68%;height:70%;border:2px solid rgba(255,255,255,.74);border-radius:52% 52% 42% 42%/45% 45% 55% 55%;box-shadow:0 0 0 999px #0000003d;pointer-events:none}.v3-face-mask i{position:absolute;width:26px;height:26px;border-color:#0070eb;border-style:solid}.v3-face-mask i:nth-child(1){top:-8px;left:-8px;border-width:4px 0 0 4px;border-radius:8px 0 0}.v3-face-mask i:nth-child(2){top:-8px;right:-8px;border-width:4px 4px 0 0;border-radius:0 8px 0 0}.v3-face-mask i:nth-child(3){bottom:-8px;left:-8px;border-width:0 0 4px 4px;border-radius:0 0 0 8px}.v3-face-mask i:nth-child(4){right:-8px;bottom:-8px;border-width:0 4px 4px 0;border-radius:0 0 8px}.signal-overlay{top:16px;left:16px;width:auto;gap:0}.state{min-width:0;min-height:28px;border:1px solid rgba(255,255,255,.18);padding-inline:10px;background:#06121fad;color:#fff;font-size:.68rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.state-ready,.state-completed{background:#006952d1;color:#fff}.quality{min-height:0;border:0;padding:6px 9px;background:#06121f9e;color:#ffffffe6;font-size:.7rem;line-height:1.35;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.countdown-badge{top:16px;right:16px;min-height:30px;padding-inline:10px;font-size:.72rem}.video-actions{position:relative;left:auto;bottom:auto;width:100%;margin-top:8px;transform:none}.video-actions button{min-width:0;min-height:44px;flex:1;font-size:.84rem}body:not([data-state=ready]):not([data-state=collecting]):not([data-state=analyzing]) #startBtn,body[data-state=collecting] #startBtn,body[data-state=analyzing] #startBtn{display:none}body[data-state=ready] #prepareBtn{border-color:#0058bc3d;background:#fff;color:var(--primary);box-shadow:none}body[data-state=collecting] #prepareBtn,body[data-state=analyzing] #prepareBtn,body[data-state=completed] #prepareBtn{display:none}body:not([data-state=collecting]):not([data-state=analyzing]) #cancelBtn{display:none}.constraint-bar{position:relative;left:auto;bottom:auto;width:100%;margin-top:5px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;transform:none}.constraint-badge{min-width:0;max-width:100%;min-height:26px;justify-content:center;padding:4px 7px;font-size:.66rem;line-height:1.25;text-align:center}.constraint-badge:first-child:nth-last-child(3),.constraint-badge:only-child{grid-column:1 / -1}.measurement-feedback{margin-top:6px}.measurement-feedback .quality{height:34px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(193,198,215,.78);border-radius:10px;padding:7px 10px;background:#fff;color:var(--muted);text-align:center;font-size:.68rem;font-weight:750;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-backdrop-filter:none;backdrop-filter:none}.readiness-strip{margin-top:6px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:30px;gap:4px}.readiness-strip span{min-width:0;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid #cbd3e3;border-radius:9px;padding:4px 7px;background:#eff4ff;color:#414755;text-align:center;font-size:.65rem;font-weight:750;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body[data-state=ready] .measurement-feedback{min-height:66px;display:grid;grid-template-rows:34px 28px;gap:4px}.measurement-feedback .constraint-bar{height:28px;min-height:28px;margin-top:0;overflow:hidden}.measurement-feedback .constraint-bar[hidden]{display:grid;visibility:hidden}.readiness-strip #cameraStatus{display:none}.readiness-strip .status-good{border-color:#00695233;background:#e5f7f0e6;color:var(--success)}.readiness-strip .status-warn{border-color:#9a5c002e;background:var(--warning-soft);color:var(--warning)}.readiness-strip .status-bad{border-color:#ba1a1a2e;background:#ffdad6ad;color:var(--danger)}.v3-live-panel{display:none;margin-top:8px;border:1px solid rgba(193,198,215,.72);border-radius:16px;padding:10px 12px;background:#fff;box-shadow:0 5px 20px #0058bc0d}.v3-live-panel>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.v3-live-panel header p{margin:0;color:var(--primary);font-size:.9rem;font-weight:900;line-height:1.2}.v3-live-panel header span{margin-top:2px;display:block;color:var(--muted);font-size:.68rem}.v3-live-readouts{flex:none;display:grid;justify-items:end;gap:3px}.v3-live-readouts>strong{color:var(--primary);font-family:ui-monospace,Cascadia Mono,monospace;font-size:.88rem}.v3-live-quality{display:grid;grid-template-columns:auto auto;justify-content:end;gap:0 5px;color:var(--muted);font-style:normal;line-height:1.2}.v3-live-quality small{font-size:.58rem}.v3-live-quality b{color:var(--text);font-family:ui-monospace,Cascadia Mono,monospace;font-size:.62rem}.v3-live-quality i{grid-column:1 / -1;color:var(--muted);font-size:.54rem;font-style:normal}.v3-live-quality i[data-tone=good]{color:var(--success)}.v3-live-quality i[data-tone=warn]{color:var(--warning)}.v3-live-grid{margin-top:8px;display:block;border:1px solid var(--line);border-radius:14px;overflow:hidden}.v3-live-grid article{min-height:64px;display:grid;grid-template-columns:72px 1fr;align-items:center;gap:2px 12px;padding:8px 10px}.v3-live-grid span{color:var(--muted);font-size:.78rem;font-weight:750}.v3-live-grid article>div{display:flex;align-items:baseline;justify-content:flex-end;gap:6px}.v3-live-grid strong{color:var(--text);font-family:ui-monospace,Cascadia Mono,monospace;font-size:1.8rem;line-height:1}.v3-live-grid small{grid-column:1 / -1;color:var(--muted);font-size:.65rem}.v3-live-grid b{color:var(--primary);font-size:.72rem;font-weight:800}.v3-live-deferred{margin:6px 2px 0;color:var(--muted);font-size:.68rem;line-height:1.45}.v3-live-grid article.live-metric-provisional{animation:v3-metric-arrive .36s ease-out}.v3-live-waiting{grid-column:1 / -1;min-height:38px;margin:0;display:grid;place-items:center;color:var(--muted);font-size:.72rem}@keyframes v3-metric-arrive{0%{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.v3-live-panel .meter-block{margin-top:4px;gap:3px}.v3-live-panel .status-row{gap:8px;font-size:.58rem;line-height:1.2}.v3-live-panel .meter{height:4px;background:#d3e4fe}.v3-live-panel .meter span{background:var(--primary)}.results-panel{display:none;min-height:768px;margin-inline:-8px;border:0;border-radius:0;padding:0;background:transparent;box-shadow:none}.processing-view{min-height:320px;display:grid;place-items:center;align-content:center;gap:14px;padding:36px 24px;text-align:center}.processing-view[hidden]{display:none}.processing-view strong{font-size:24px}.processing-view p,.processing-view span{margin:0}.processing-view span{color:var(--text-muted)}.processing-spinner{width:48px;height:48px;border:4px solid rgba(22,119,255,.18);border-top-color:#1677ff;border-radius:50%;animation:processing-spin .9s linear infinite}@keyframes processing-spin{to{transform:rotate(360deg)}}.v3-results-header{height:48px;margin-inline:-12px;padding-inline:12px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line)}body[data-state=completed] .v3-results-header{display:none}.v3-results-header strong{font-size:.86rem}.v3-results-header>span{color:var(--primary);text-align:right;font-weight:900}.v3-complete-label{width:fit-content;min-height:32px;border:0;padding:0;background:transparent;color:var(--primary);opacity:1!important;font-size:.76rem}.result-summary{min-height:64px;margin:8px 0 6px;border-color:#c1c6d7b8;border-radius:13px;padding:11px 12px;background:#fff;box-shadow:0 4px 18px #0058bc0a}.result-summary>strong{font-size:1.1rem}.result-summary>span:last-child{font-size:.68rem}.summary-metrics{grid-template-columns:repeat(2,1fr);gap:6px}body[data-state=completed] .result-summary .summary-metrics{display:none}.summary-metrics span{padding:7px 8px}.metric-tabs{gap:0;margin:0 0 6px;border-bottom:1px solid var(--line)}.metric-tabs button{min-height:42px;border:0;border-bottom:2px solid transparent;border-radius:0;padding:0;background:transparent;color:#717786;font-size:.72rem}.metric-tabs button.active{border-color:var(--primary);background:transparent;color:var(--primary)}.metric-tabs button:focus-visible{outline:0;outline-offset:0;border-bottom-color:var(--primary);color:var(--primary)}.results{min-height:0;display:grid;grid-template-columns:1fr;align-content:start;gap:6px}.v3-category-intro{min-height:56px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:10px 13px}.v3-category-intro>strong{white-space:nowrap;font-size:1.18rem}.v3-category-intro>span{text-align:right;font-size:.68rem;line-height:1.45}.v3-metric-layout{height:538px;display:grid;gap:6px}.v3-metric-layout-assessment{grid-template-rows:1.2fr .8fr}.v3-metric-layout-physiology{grid-template-rows:1.35fr 1fr}.v3-physiology-core-section,.v3-physiology-recovery-section{min-height:0;overflow:hidden;border:1px solid #c1c6d7;border-radius:12px;background:#fff;box-shadow:0 4px 18px #0058bc0a}.v3-physiology-core-section>header,.v3-physiology-recovery-section>header{height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #c1c6d7;padding:0 12px;background:#eff4ff}.v3-physiology-core-section h3,.v3-physiology-recovery-section h3{margin:0;color:#596579;font-size:.69rem;font-weight:800}.v3-physiology-core-section>header>span{color:#717786;font-size:.62rem}.v3-physiology-core-grid{height:calc(100% - 34px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.v3-vital-gauge-card,.v3-blood-pressure-card{min-width:0;border-right:1px solid #c1c6d7}.v3-physiology-core-grid>:nth-child(2n){border-right:0}.v3-vital-gauge-card{display:flex;align-items:center;gap:10px;padding:12px 10px}.v3-vital-gauge{position:relative;width:90px;height:45px;flex:0 0 90px;overflow:hidden}.v3-vital-gauge svg{width:90px;height:90px;transform:rotate(-180deg)}.v3-vital-gauge-segment{fill:none;stroke-width:24}.v3-vital-gauge-needle{--gauge-angle: 0deg;position:absolute;bottom:0;left:50%;width:2px;height:37px;border-radius:2px 2px 0 0;background:#111c2d;transform:translate(-50%) rotate(var(--gauge-angle));transform-origin:bottom center}.v3-vital-gauge-needle:after{content:"";position:absolute;bottom:-2px;left:50%;width:5px;height:5px;border-radius:50%;background:#111c2d;transform:translate(-50%)}.metric-pending .v3-vital-gauge-needle,.metric-unavailable .v3-vital-gauge-needle,.metric-unsupported .v3-vital-gauge-needle{display:none}.v3-vital-gauge-content{min-width:0;display:flex;flex-direction:column}.v3-physiology-label{color:#717786;font-size:.67rem;font-weight:800;white-space:nowrap}.v3-vital-gauge-content>strong,.v3-blood-pressure-reading>strong{color:#0b1c30;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:1.45rem;line-height:1.2;letter-spacing:-.06em;white-space:nowrap}.v3-vital-gauge-content>small,.v3-blood-pressure-reading small{margin-top:2px;font-size:.61rem;font-weight:700}.v3-blood-pressure-card{display:flex;flex-direction:column;justify-content:center;padding:12px 13px}.v3-blood-pressure-reading{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.v3-blood-pressure-reading>span{min-width:0;display:flex;flex-direction:column}.v3-blood-pressure-track,.v3-rpp-track{--metric-fill: 50%;position:relative;height:10px;margin-top:10px;border-radius:999px;background:linear-gradient(90deg,#70d69a 0 42%,#f7d774 42% 70%,#ef9a9a 70% 100%)}.v3-blood-pressure-track-segmented{background:linear-gradient(90deg,#70d69a 0 19%,transparent 19% 20%,#70d69a 20% 39%,transparent 39% 40%,#f7d774 40% 59%,transparent 59% 60%,#ef9a9a 60% 79%,transparent 79% 80%,#ef9a9a 80% 100%)}.v3-blood-pressure-track:after,.v3-rpp-track:after{content:"";position:absolute;top:-4px;left:var(--metric-fill);width:2px;height:18px;border-radius:1px;background:#0b1c30;transform:translate(-50%)}.metric-pending .v3-blood-pressure-track:after,.metric-unavailable .v3-blood-pressure-track:after,.metric-unsupported .v3-blood-pressure-track:after,.metric-pending .v3-rpp-track:after,.metric-unavailable .v3-rpp-track:after,.metric-unsupported .v3-rpp-track:after{display:none}.v3-blood-pressure-legend{display:flex;justify-content:space-between;margin-top:4px;color:#717786;font-size:.56rem}.v3-physiology-recovery-section>header{height:24px;justify-content:flex-start}.v3-physiology-recovery-section h3{font-size:.62rem}.v3-physiology-recovery-grid{height:calc(100% - 24px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.v3-physiology-recovery-card{min-width:0;display:flex;flex-direction:column;justify-content:center;border-right:1px solid #c1c6d7;border-bottom:1px solid #c1c6d7;padding:6px 12px}.v3-physiology-recovery-grid>:nth-child(2n){border-right:0}.v3-physiology-recovery-grid>:nth-child(n+3){border-bottom:0}.v3-physiology-recovery-card>div:first-child{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:6px}.v3-physiology-recovery-card>div:first-child>span{overflow:hidden;color:#717786;font-size:.61rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.v3-physiology-recovery-card>div:first-child>small{flex:none;font-size:.55rem;font-weight:700;white-space:nowrap}.v3-physiology-recovery-reading{min-width:0;display:flex;align-items:center;gap:8px;margin-top:4px}.v3-physiology-recovery-reading>strong{flex:none;color:#0b1c30;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:1.08rem;line-height:1.1;letter-spacing:-.06em;white-space:nowrap}.v3-physiology-wave{min-width:0;height:20px;flex:1}.v3-physiology-wave path{fill:none;stroke-width:4;stroke-linecap:round}.v3-physiology-wave circle{fill:#111c2d;stroke:#fff;stroke-width:1.5}.v3-ihb-dot-track{position:relative;min-width:0;height:16px;flex:1;display:flex;align-items:center;justify-content:space-between}.v3-ihb-dot-track:before{content:"";position:absolute;right:4px;left:4px;height:1px;background:#c1c6d7}.v3-ihb-dot-track i{position:relative;width:8px;height:8px;border:1px solid #ffffff;border-radius:50%;background:#70d69a}.v3-ihb-dot-track i:nth-child(n+4):nth-child(-n+5){background:#9ddd82}.v3-ihb-dot-track i:nth-child(n+6):nth-child(-n+7){background:#f7d774}.v3-ihb-dot-track i:nth-child(n+8):nth-child(-n+9){background:#f2b280}.v3-ihb-dot-track i:nth-child(n+10){background:#ef9a9a}.v3-ihb-dot-track i.active{outline:0;box-shadow:0 0 0 2px #0b1c30;transform:scale(1.5)}.v3-rpp-track{min-width:0;flex:1;margin-top:0;background:linear-gradient(90deg,#ef9a9a 0 19%,transparent 19% 20%,#f7d774 20% 39%,transparent 39% 40%,#70d69a 40% 59%,transparent 59% 60%,#f7d774 60% 79%,transparent 79% 80%,#ef9a9a 80% 100%)}.physiology-tone-good{color:#006952}.physiology-tone-warn{color:#9a6200}.physiology-tone-bad{color:#ba1a1a}.physiology-tone-muted{color:#717786}.v3-assessment-risk-section,.v3-assessment-score-section{min-height:0;overflow:hidden;border:1px solid #c1c6d7;border-radius:12px;background:#fff;box-shadow:0 4px 18px #0058bc0a}.v3-assessment-risk-section>header{height:34px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #c1c6d7;padding:0 16px;background:#eff4ff}.v3-assessment-risk-section h3{margin:0;color:#717786;font-size:.75rem;font-weight:700}.v3-assessment-risk-section header span{color:var(--success);font-size:.68rem;font-weight:800}.v3-assessment-risk-grid{height:calc(100% - 34px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.v3-assessment-risk-card{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:8px;border-right:1px solid #c1c6d7;border-bottom:1px solid #c1c6d7;padding:12px 13px}.v3-assessment-risk-card:nth-child(2n){border-right:0}.v3-assessment-risk-card:nth-child(n+3){border-bottom:0}.v3-assessment-risk-meta,.v3-assessment-risk-reading{display:flex;align-items:center;justify-content:space-between;gap:8px}.v3-assessment-risk-meta>span{color:#717786;font-size:.625rem;font-weight:700;white-space:nowrap}.v3-assessment-risk-meta>small{font-size:.5625rem;font-weight:700;white-space:nowrap}.v3-assessment-risk-card.metric-provisional .v3-assessment-risk-meta>small{color:var(--primary)}.v3-assessment-risk-card.metric-pending .v3-assessment-risk-meta>small,.v3-assessment-risk-card.metric-unavailable .v3-assessment-risk-meta>small,.v3-assessment-risk-card.metric-unsupported .v3-assessment-risk-meta>small{color:var(--muted)}.v3-assessment-risk-reading>strong{flex:0 0 auto;color:var(--text);font-family:JetBrains Mono,Times New Roman,serif;font-size:1.0625rem;font-weight:400;line-height:1;white-space:nowrap}.v3-assessment-risk-track{--metric-fill: 0%;position:relative;min-width:0;height:10px;flex:1;border-radius:999px;background:linear-gradient(90deg,#70d69a 0 19%,transparent 19% 20%,#70d69a 20% 39%,transparent 39% 40%,#f7d774 40% 59%,transparent 59% 60%,#ef9a9a 60% 79%,transparent 79% 80%,#ef9a9a 80% 100%)}.v3-assessment-risk-track:after{content:"";position:absolute;top:-4px;left:var(--metric-fill);width:3px;height:18px;border-radius:2px;background:#0b1c30;transform:translate(-50%)}.v3-assessment-risk-card.metric-pending .v3-assessment-risk-track:after,.v3-assessment-risk-card.metric-unavailable .v3-assessment-risk-track:after,.v3-assessment-risk-card.metric-unsupported .v3-assessment-risk-track:after{display:none}.v3-assessment-score-section{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.v3-assessment-score-card{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #c1c6d7;padding:14px 7px 11px;text-align:center}.v3-assessment-score-card:last-child{border-right:0}.v3-assessment-score-ring{position:relative;width:61px;height:61px;flex:0 0 61px}.v3-assessment-score-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.v3-assessment-score-ring>strong{position:absolute;inset:0;display:grid;place-items:center;color:var(--text);font-family:JetBrains Mono,Times New Roman,serif;font-size:.625rem;font-weight:700}.v3-assessment-score-label{margin-top:7px;color:#717786;font-size:.625rem;font-weight:700;white-space:nowrap}.v3-assessment-score-card>small{margin-top:3px;font-size:.5625rem;font-weight:700}.assessment-tone-good{color:#006952!important}.assessment-tone-warn,.assessment-tone-bad{color:#ba1a1a!important}.assessment-tone-muted{color:#717786!important}.v3-assessment-score-card.metric-provisional>small{color:var(--primary)}.v3-assessment-score-card.metric-pending>small,.v3-assessment-score-card.metric-unavailable>small,.v3-assessment-score-card.metric-unsupported>small{color:var(--muted)}.v3-metric-layout-body{grid-template-rows:1fr 1fr .72fr .86fr}.v3-body-row,.v3-state-detail-row{min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.v3-body-row>article,.v3-state-score-row,.v3-state-detail-row>article{min-width:0;overflow:hidden;border:1px solid rgba(193,198,215,.78);border-radius:12px;background:#fff;box-shadow:0 4px 18px #0058bc0a}.v3-body-measure-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.v3-body-icon{width:34px;height:34px;fill:none;stroke:#0058bc;stroke-width:2.7;stroke-linecap:round;stroke-linejoin:round}.v3-body-measure-card>span{margin-top:8px;color:#717786;font-size:.75rem;font-weight:800}.v3-body-measure-card>strong{color:#0b1c30;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:1.85rem;font-weight:500;line-height:1.15;letter-spacing:-.06em}.v3-body-measure-unit{margin-top:2px;color:#717786;font-size:.68rem}.v3-body-measure-state{min-height:10px;color:#717786;font-size:.55rem}.v3-body-gauge-card{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px}.v3-body-gauge{position:relative;width:90px;height:45px;flex:0 0 90px;overflow:hidden}.v3-body-gauge svg{width:90px;height:90px;transform:rotate(-180deg)}.v3-body-gauge-needle{--gauge-angle: 0deg;position:absolute;bottom:0;left:50%;width:2px;height:37px;border-radius:2px;background:#111c2d;transform:translate(-50%) rotate(var(--gauge-angle));transform-origin:bottom center}.v3-body-gauge-needle:after{content:"";position:absolute;bottom:-2px;left:50%;width:5px;height:5px;border-radius:50%;background:#111c2d;transform:translate(-50%)}.metric-pending .v3-body-gauge-needle,.metric-unavailable .v3-body-gauge-needle,.metric-unsupported .v3-body-gauge-needle{display:none}.v3-body-gauge-card>span:last-child{min-width:0;display:flex;flex-direction:column}.v3-body-gauge-card>span:last-child>span,.v3-body-range-card>div span:first-child,.v3-skin-age-card>span>span{color:#717786;font-size:.68rem;font-weight:800}.v3-body-gauge-card strong{color:#0b1c30;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:1.45rem;line-height:1.2;letter-spacing:-.06em;white-space:nowrap}.v3-body-gauge-card small,.v3-body-range-card small,.v3-skin-age-card small{font-size:.61rem;font-weight:700}.v3-body-range-card{display:flex;flex-direction:column;justify-content:center;padding:12px 20px}.v3-body-row-3 .v3-body-range-card,.v3-body-row-4 .v3-body-range-card{padding-inline:16px}.v3-body-range-card>div{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.v3-body-range-card>div>span{min-width:0;display:flex;flex-direction:column}.v3-body-range-card>div>strong{color:#0b1c30;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:1.65rem;font-weight:500;line-height:1.1;letter-spacing:-.06em;white-space:nowrap}.v3-body-range-card>div>strong>small{margin-left:3px;color:#0b1c30;font-family:inherit;font-size:.58rem;font-weight:500}.v3-body-range-track{--metric-fill: 50%;position:relative;height:10px;margin-top:13px;border-radius:999px}.v3-body-range-track-symmetric{background:linear-gradient(90deg,#ef9a9a 0 18%,#f7d774 18% 38%,#70d69a 38% 62%,#f7d774 62% 82%,#ef9a9a 82% 100%)}.v3-body-range-track-risk{background:linear-gradient(90deg,#70d69a 0 42%,#f7d774 42% 70%,#ef9a9a 70% 100%)}.v3-body-range-track-segmented{background:linear-gradient(90deg,#70d69a 0 19%,transparent 19% 20%,#70d69a 20% 39%,transparent 39% 40%,#f7d774 40% 59%,transparent 59% 60%,#ef9a9a 60% 79%,transparent 79% 80%,#ef9a9a 80% 100%)}.v3-body-range-track:after{content:"";position:absolute;top:-4px;left:var(--metric-fill);width:2px;height:18px;border-radius:1px;background:#0b1c30;transform:translate(-50%)}.metric-pending .v3-body-range-track:after,.metric-unavailable .v3-body-range-track:after,.metric-unsupported .v3-body-range-track:after{display:none}.v3-body-range-legend,.v3-three-part-legend{display:flex;justify-content:space-between;margin-top:5px;color:#717786;font-size:.56rem}.v3-skin-age-card{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px}.v3-skin-age-card .v3-body-icon{width:30px;height:30px;flex:none}.v3-skin-age-card>span{min-width:0;display:flex;flex-direction:column}.v3-skin-age-card strong{color:#0058bc;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:1.45rem;font-weight:500;line-height:1.2;letter-spacing:-.06em;white-space:nowrap}.v3-skin-age-card strong small{margin-left:3px;color:#0058bc;font-size:.56rem}.v3-skin-age-card>span>small{color:#006952}.body-tone-good,.state-tone-good{color:#006952}.body-tone-warn,.state-tone-warn{color:#9a6200}.body-tone-bad,.state-tone-bad{color:#ba1a1a}.body-tone-muted,.state-tone-muted{color:#717786}.v3-metric-layout-state{grid-template-rows:.72fr 1fr 1fr}.v3-state-score-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.v3-state-score-card{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #c1c6d7;text-align:center}.v3-state-score-card:last-child{border-right:0}.v3-state-score-ring{position:relative;width:61px;height:61px}.v3-state-score-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.v3-state-score-ring>strong{position:absolute;inset:0;display:grid;place-items:center;color:#0b1c30;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:.62rem}.v3-state-score-card>span:nth-child(2){margin-top:3px;color:#717786;font-size:.62rem;font-weight:800}.v3-state-score-card>small{margin-top:2px;font-size:.56rem;font-weight:700}.v3-state-detail-card{display:flex;flex-direction:column;justify-content:center;padding:14px 16px}.v3-state-reading{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.v3-state-reading>span{min-width:0;display:flex;flex-direction:column}.v3-state-reading>span>span{color:#717786;font-size:.72rem;font-weight:800}.v3-state-reading>span>small{font-size:.64rem;font-weight:700;white-space:nowrap}.v3-state-reading>strong{color:#0b1c30;font-family:JetBrains Mono,SFMono-Regular,Consolas,monospace;font-size:1.75rem;font-weight:500;line-height:1.1;letter-spacing:-.06em;white-space:nowrap}.v3-state-range-track{--metric-fill: 50%;position:relative;height:10px;margin-top:20px;border-radius:999px}.v3-state-range-track-risk{background:linear-gradient(90deg,#70d69a 0 42%,#f7d774 42% 70%,#ef9a9a 70% 100%)}.v3-state-range-track-sleep{background:linear-gradient(90deg,#ef9a9a 0 19%,transparent 19% 20%,#ef9a9a 20% 39%,transparent 39% 40%,#f7d774 40% 59%,transparent 59% 60%,#70d69a 60% 79%,transparent 79% 80%,#70d69a 80% 100%)}.v3-state-range-track:after{content:"";position:absolute;top:-4px;left:var(--metric-fill);width:2px;height:18px;border-radius:1px;background:#0b1c30;transform:translate(-50%)}.metric-pending .v3-state-range-track:after,.metric-unavailable .v3-state-range-track:after,.metric-unsupported .v3-state-range-track:after{display:none}.v3-stress-pulse{height:26px;margin-top:17px;display:flex;align-items:center;justify-content:space-between;gap:2px}.v3-stress-pulse i{width:2px;border-radius:999px}.v3-stress-pulse i.active{outline:1px solid #0b1c30;outline-offset:1px}.v3-state-dot-track{position:relative;height:16px;margin-top:21px;display:flex;align-items:center;justify-content:space-between}.v3-state-dot-track:before{content:"";position:absolute;right:4px;left:4px;height:1px;background:#c1c6d7}.v3-state-dot-track i{position:relative;width:8px;height:8px;border:1px solid #ffffff;border-radius:50%;background:#70d69a}.v3-state-dot-track i:nth-child(n+5):nth-child(-n+6){background:#9ddd82}.v3-state-dot-track i:nth-child(n+7):nth-child(-n+8){background:#f7d774}.v3-state-dot-track i:nth-child(n+9):nth-child(-n+10){background:#f2b280}.v3-state-dot-track i:nth-child(11){background:#ef9a9a}.v3-state-dot-track i.active{outline:0;box-shadow:0 0 0 2px #0b1c30;transform:scale(1.5)}.v3-metric-group{overflow:hidden;border:1px solid rgba(193,198,215,.78);border-radius:14px;background:#fff;box-shadow:0 4px 18px #0058bc0a}.v3-metric-group>h3{min-height:32px;margin:0;display:flex;align-items:center;border-bottom:1px solid rgba(193,198,215,.72);padding:6px 12px;background:#eff4ff;color:#596579;font-size:.72rem}.v3-metric-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.v3-metric-group-scores .v3-metric-group-grid,.v3-metric-group-state-scores .v3-metric-group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v3-metric-group-grid .result-metric-card{min-height:132px;border:0;border-right:1px solid rgba(193,198,215,.72);border-bottom:1px solid rgba(193,198,215,.72);border-radius:0;box-shadow:none}.v3-metric-group-grid .result-metric-card:nth-child(2n){border-right:0}.v3-metric-group-scores .result-metric-card,.v3-metric-group-state-scores .result-metric-card{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid rgba(193,198,215,.72);border-bottom:0;text-align:center}.v3-metric-group-scores .result-metric-card:last-child,.v3-metric-group-state-scores .result-metric-card:last-child{border-right:0}.v3-metric-group-body>h3{display:none}.v3-metric-group-body .result-metric-card{min-height:142px}.v3-metric-group-grid .result-metric-card.v3-present-vital,.v3-metric-group-grid .result-metric-card.v3-present-risk,.v3-metric-group-grid .result-metric-card.v3-present-body,.v3-metric-group-grid .result-metric-card.v3-present-state{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;align-content:center;gap:5px 8px;padding:14px 13px}.v3-metric-group-grid .result-metric-card:after{display:none}.v3-metric-group-grid .v3-present-vital .result-icon,.v3-metric-group-grid .v3-present-risk .result-icon,.v3-metric-group-grid .v3-present-body .result-icon,.v3-metric-group-grid .v3-present-state .result-icon,.v3-metric-group-grid .v3-present-score .result-icon{display:none}.v3-metric-group-grid .v3-present-vital .result-label,.v3-metric-group-grid .v3-present-risk .result-label,.v3-metric-group-grid .v3-present-body .result-label,.v3-metric-group-grid .v3-present-state .result-label{align-self:end;color:#667286;font-size:.72rem;font-weight:800;white-space:nowrap}.v3-metric-group-grid .v3-present-vital .result-value,.v3-metric-group-grid .v3-present-risk .result-value,.v3-metric-group-grid .v3-present-body .result-value,.v3-metric-group-grid .v3-present-state .result-value{grid-row:1 / span 2;grid-column:2;align-self:center;font-size:1.55rem;white-space:nowrap}.v3-metric-group-grid .v3-present-vital .metric-state,.v3-metric-group-grid .v3-present-risk .metric-state,.v3-metric-group-grid .v3-present-body .metric-state,.v3-metric-group-grid .v3-present-state .metric-state{font-size:.6rem}.v3-metric-unit{position:absolute;z-index:2;right:13px;top:calc(50% + 18px);color:var(--muted);font-size:.56rem}.v3-present-score .v3-metric-unit{display:none}.v3-metric-track{--metric-fill: 0%;grid-column:1 / -1;height:9px;margin-top:9px;border-radius:999px;background:linear-gradient(90deg,#65cf94 0 38%,#f4d674 38% 68%,#ec9292 68% 100%);position:relative}.v3-metric-track:after{content:"";position:absolute;top:-3px;left:var(--metric-fill);width:3px;height:15px;border-radius:2px;background:#0b1c30;transform:translate(-50%)}.metric-pending .v3-metric-track:after,.metric-unavailable .v3-metric-track:after,.metric-unsupported .v3-metric-track:after{display:none}.v3-metric-group-grid .result-metric-card.v3-present-score{position:relative;display:flex;grid-template-columns:none;padding:12px 8px}.v3-present-score .result-label{order:3;color:#667286;font-size:.68rem;font-weight:800}.v3-present-score .result-value{position:absolute;z-index:2;top:55px;font-size:.82rem}.v3-present-score .metric-state{order:4;margin-top:2px;font-size:.58rem}.v3-metric-ring{--metric-fill: 0%;order:1;width:76px;height:76px;margin-bottom:8px;border-radius:50%;background:conic-gradient(#ef9292 0 18%,#f1b176 18% 36%,#f5d36f 36% 54%,#8edb72 54% var(--metric-fill),#e7efeb var(--metric-fill) 100%);-webkit-mask:radial-gradient(circle,transparent 48%,#000 50%);mask:radial-gradient(circle,transparent 48%,#000 50%)}.result-metric-card{position:relative;min-height:102px;grid-template-columns:34px 1fr;column-gap:7px;row-gap:3px;border-color:#c1c6d7b8;border-radius:13px;padding:10px;overflow:hidden;background:#fff;box-shadow:0 3px 14px #0058bc09}.metric-info-button{position:absolute;z-index:5;top:3px;right:3px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;padding:0;background:transparent;color:#667286;font-family:Georgia,serif;font-size:.82rem;font-style:italic;font-weight:700;line-height:1;box-shadow:none}.metric-info-button:before{content:"";width:18px;height:18px;position:absolute;border:1.5px solid currentColor;border-radius:50%}.metric-info-button:hover,.metric-info-button:focus-visible,.metric-info-button[aria-expanded=true]{background:#0058bc1a;color:var(--primary)}.metric-info-button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.metric-info-popover{position:fixed;z-index:1000;max-width:calc(100vw - 24px);border:1px solid rgba(0,88,188,.18);border-radius:14px;padding:13px;background:#fff;box-shadow:0 14px 34px #051c2f33}.metric-info-popover-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.metric-info-popover-header strong{color:var(--text);font-size:.88rem}.metric-info-popover-close{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:50%;padding:0;background:#0058bc12;color:var(--primary);font-size:1.1rem;line-height:1;box-shadow:none}.metric-info-popover-close:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.metric-info-popover p{margin:9px 0 8px;color:var(--muted);font-size:.76rem;line-height:1.6}.metric-info-popover small{color:var(--primary);font-size:.66rem;font-weight:700}.result-metric-card:after{content:"";position:absolute;right:-22px;bottom:-30px;width:72px;height:72px;border:11px solid rgba(0,88,188,.055);border-radius:50%}.result-icon{width:32px;height:32px;border:0;border-radius:9px;background:#eff4ff;font-size:1rem}.result-label{position:relative;z-index:1;font-size:.66rem}.result-value{position:relative;z-index:1;font-family:ui-monospace,Cascadia Mono,monospace;font-size:1.18rem}.metric-state{position:relative;z-index:1;color:var(--primary);font-size:.6rem}.metric-provisional{border-color:#eed6aa;background:#fffaf0}.metric-pending,.metric-unavailable,.metric-unsupported{background:#f4f6fb}.report-gate{display:grid;gap:5px;margin-top:6px;padding-top:0;border:0}.report-gate button{width:100%;min-height:42px;font-size:.82rem}.report-gate p{text-align:center;font-size:.62rem}.result-disclaimer{min-height:26px;margin:6px 0 0;display:flex;align-items:center;border:1px solid rgba(186,26,26,.14);border-radius:10px;padding:5px 8px;background:#ffdad638;color:#5f6878;font-size:.6rem}.v3-bottom-nav{position:relative;z-index:50;width:100%;height:64px;flex:0 0 64px;display:flex;align-items:center;justify-content:space-around;border-top:1px solid rgba(193,198,215,.78);background:#f8f9ff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:none;transition:opacity .22s ease}.v3-bottom-nav button{position:relative;min-width:70px;min-height:52px;display:grid;place-content:center;gap:4px;border:0;padding:0;background:transparent;color:#717786;opacity:1}.v3-bottom-nav button:before{content:"";position:absolute;top:-6px;left:50%;width:28px;height:3px;border-radius:0 0 999px 999px;background:var(--primary);opacity:0;transform:translate(-50%) scaleX(.65);transition:opacity .16s ease,transform .16s ease}.v3-bottom-nav button.active{color:var(--primary)}.v3-bottom-nav button.active:before{opacity:1;transform:translate(-50%) scaleX(1)}.v3-bottom-nav button:hover:not(:disabled){background:#0058bc0f;color:var(--primary)}.v3-bottom-nav button:focus-visible{border-radius:12px;outline:2px solid var(--focus);outline-offset:-4px}.v3-bottom-nav button span{font-size:1.05rem;line-height:1}.v3-bottom-nav .v3-nav-icon{width:16px;height:16px;margin:0 auto;display:block}.v3-nav-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#navScanBtn .v3-nav-icon svg{fill:currentColor;stroke:none}.v3-bottom-nav button small{font-size:.625rem;font-weight:600}.v3-bottom-nav button.active small{font-weight:800}body[data-state=collecting] .v3-intro-scan,body[data-state=analyzing] .v3-intro-scan{opacity:0;transform:translateY(-8px);pointer-events:none}body[data-state=collecting] .v3-topbar,body[data-state=analyzing] .v3-topbar{opacity:0;pointer-events:none;visibility:hidden}body[data-state=collecting] .v3-bottom-nav,body[data-state=analyzing] .v3-bottom-nav{position:absolute;inset-inline:0;bottom:0;height:0;min-height:0;flex-basis:0;overflow:hidden;border:0;opacity:0;pointer-events:none;visibility:hidden}body[data-state=collecting] .v3-intro-stage,body[data-state=analyzing] .v3-intro-stage{z-index:8}body[data-state=collecting] .v3-intro-active,body[data-state=analyzing] .v3-intro-active{top:-48px;bottom:auto;height:calc(100% + 56px);opacity:1;transform:translateY(0);pointer-events:auto;z-index:10}body[data-state=collecting] .readiness-strip,body[data-state=analyzing] .readiness-strip,body[data-state=collecting] .measurement-feedback,body[data-state=analyzing] .measurement-feedback{display:none}body[data-state=collecting] .v3-live-panel,body[data-state=analyzing] .v3-live-panel{display:block}body[data-state=completed] .v3-intro-stage,body[data-state=completed] .video-stage,body[data-state=completed] .readiness-strip,body[data-state=completed] .measurement-feedback,body[data-state=completed] .v3-live-panel,body[data-state=completed] .video-actions{display:none}body[data-state=completed] .results-panel{display:block;min-height:0;margin-inline:0}body[data-state=completed] .measurement-shell{padding-inline:12px;padding-bottom:0;font-family:Inter,Manrope,Microsoft YaHei UI,sans-serif}body[data-state=completed] .v3-topbar{height:48px;margin-inline:-12px}body[data-state=completed] .v3-topbar .v3-page-title{font-size:.875rem;font-weight:600}body[data-state=completed] .v3-complete-label{font-size:.875rem;font-weight:500}body[data-state=completed] .v3-more-icon{width:14px;height:14px}body[data-state=completed] .result-summary{margin:8px 0 0}body[data-state=completed] .metric-tabs{margin-bottom:6px}body[data-state=completed] .metric-tabs button{min-height:50px}body[data-state=completed] .report-gate{grid-template-columns:minmax(0,1fr);justify-content:stretch}body[data-state=completed] .report-gate button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.94rem;font-weight:700}body[data-state=completed] .report-gate p{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.v3-report-sparkle{width:19px;height:19px}.v3-report-sparkle svg{display:block;width:100%;height:100%;fill:currentColor}body[data-state=completed] .result-disclaimer{min-height:28px;gap:7px;padding:4px 9px;border-color:#ba1a1a3d;border-radius:12px}.v3-warning-icon{width:15px;height:15px;flex:0 0 15px;color:#ba1a1a}.v3-warning-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.v3-warning-icon circle{fill:currentColor;stroke:none}body[data-debug=true] .workspace{width:min(960px,calc(100vw - 32px));height:auto;min-height:884px;overflow:visible}body[data-debug=true] .v3-content{overflow:visible}body[data-debug=true] .measurement-shell{padding-inline:20px}body[data-debug=true] .app-header{padding:18px 20px}@media(max-width:420px){.workspace{height:100dvh;min-height:0;border:0;box-shadow:none}}@media(max-width:340px){.v3-vital-gauge-card{gap:4px;padding:8px 6px}.v3-vital-gauge{width:62px;height:31px;flex-basis:62px}.v3-vital-gauge svg{width:62px;height:62px}.v3-vital-gauge-needle{height:25px}.v3-vital-gauge-content>strong,.v3-blood-pressure-reading>strong{font-size:1.18rem}.v3-physiology-label{font-size:.59rem}.v3-blood-pressure-card{padding:8px}.v3-physiology-recovery-card{padding-inline:8px}}@media(max-height:760px){.measurement-shell{padding-bottom:0}body[data-state=idle] .measurement-feedback{display:none}.v3-intro-stage{height:148px}.v3-intro{padding:13px 14px}.v3-intro h2{margin-block:5px;font-size:1.48rem}.v3-intro p{font-size:.78rem}.v3-guidance{min-height:34px;margin-top:8px;padding:5px 8px;font-size:.7rem}.media-frame{height:285px}}@media(max-height:840px){body[data-state=completed] .v3-metric-layout{height:max(440px,calc(100dvh - 317px))}}[hidden],.v3-screen[hidden]{display:none!important}body[data-state=ready] .measurement-feedback .constraint-bar[hidden]{display:grid!important;visibility:hidden}.v3-page-screen{min-height:100%;padding-bottom:20px;background:var(--surface-soft)}.v3-page-bar{position:sticky;z-index:20;top:0;height:48px;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;border-bottom:1px solid var(--line);padding:0 12px;background:#f8f9fff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.v3-page-bar strong{text-align:center;font-size:1.05rem}.v3-page-bar button{width:44px;height:44px;border:0;padding:0;background:transparent;color:var(--text);font-size:1.7rem;box-shadow:none}.report-preparing-card{width:calc(100% - 32px);margin:132px auto 0;border:1px solid rgba(193,198,215,.7);border-radius:18px;padding:26px 20px;background:#fff;text-align:center;box-shadow:0 8px 28px #0058bc14}.report-spinner{width:64px;height:64px;margin:0 auto 18px;border:5px solid rgba(0,88,188,.14);border-top-color:var(--primary);border-radius:50%;animation:report-spin .9s linear infinite}@keyframes report-spin{to{transform:rotate(360deg)}}.report-preparing-card h2{margin:6px 0;font-size:1.35rem}.report-preparing-card>p:not(.v3-kicker){margin:0;color:var(--muted);font-size:.86rem;line-height:1.55}.report-steps{margin:22px 0 18px;border-block:1px solid var(--line)}.report-steps>div{min-height:50px;display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;border-bottom:1px solid var(--line);text-align:left;color:var(--muted);font-size:.78rem}.report-steps>div:last-child{border-bottom:0}.report-steps strong{color:var(--text)}.report-steps small{font-size:.68rem}.report-steps .done,.report-steps .active{color:var(--success)}.report-steps .active{color:var(--primary)}.report-steps .failed{color:var(--danger)}.report-preparing-card .primary-action{width:100%}.report-content,.v3-list-page{padding:16px 16px 28px}.report-content{position:relative;display:block}.report-share-icon{width:24px;height:24px;display:grid;place-items:center;color:var(--muted)}.report-share-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}body[data-view=report] .v3-content{scroll-padding-top:104px;scroll-behavior:auto;overscroll-behavior-y:contain}.report-tabs{position:sticky;z-index:19;top:48px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;border-bottom:1px solid var(--line);padding:6px 16px 7px;background:#f8f9fff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.report-tabs button{position:relative;min-height:40px;border:0;border-radius:10px;padding:0 12px;background:transparent;color:var(--muted);font-size:.84rem;font-weight:700;box-shadow:none}.report-tabs button:after{content:"";position:absolute;right:18px;bottom:1px;left:18px;height:3px;border-radius:999px;background:var(--primary);opacity:0;transform:scaleX(.6);transition:opacity .16s ease,transform .16s ease}.report-tabs button.active{background:#0058bc12;color:var(--primary)}.report-tabs button.active:after{opacity:1;transform:scaleX(1)}.report-tabs button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.report-main-screen,.today-actions-screen{display:grid;gap:16px;scroll-margin-top:104px}.today-actions-screen{margin:0;padding:0 0 28px}.report-overview-card,.report-card,.today-actions-card,.profile-card,.history-card,.v3-list-intro{border:1px solid rgba(193,198,215,.7);border-radius:16px;background:#fff;box-shadow:0 5px 20px #0058bc0b}.report-overview-card{display:grid;grid-template-columns:112px 1fr;align-items:center;gap:14px;padding:16px}.report-score{width:104px;height:104px;position:relative;display:grid;place-content:center;border-radius:50%;text-align:center}.report-score:before{content:"";position:absolute;inset:0;border-radius:inherit;background:conic-gradient(var(--primary) calc(var(--report-score-progress, 0) * 1%),#d8e2ff 0);-webkit-mask:radial-gradient(circle,transparent 57%,#000 59%);mask:radial-gradient(circle,transparent 57%,#000 59%);transform:rotate(-90deg)}.report-score strong{position:relative;color:var(--primary);font-family:ui-monospace,Cascadia Mono,monospace;font-size:1.65rem;line-height:1;letter-spacing:-.04em}.report-score small{position:relative;margin-top:4px;color:var(--muted);font-size:.68rem}.report-status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;background:var(--success-soft);color:var(--success);font-size:.75rem;font-weight:800}.report-status-pill:before{content:"✓";width:17px;height:17px;display:grid;place-items:center;border:1.5px solid currentColor;border-radius:50%;font-size:.65rem}.report-status-pill[data-tone=attention]{background:#fff4dc;color:#9a6400}.report-overview-card p{margin:8px 0 0;color:var(--muted);font-size:.95rem;line-height:1.6}.report-score-method{margin:-8px 2px 0;color:var(--muted);font-size:.69rem;line-height:1.55}.report-card,.today-actions-card{padding:14px}.report-card>header,.today-actions-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.report-card h2,.today-actions-card h2{margin:0;font-size:1rem}.report-card>header button{min-height:44px;border:0;padding:0 4px;background:transparent;color:var(--primary);font-size:.8rem;box-shadow:none}.report-metric-highlights{margin-top:10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.report-metric-highlights article,.report-categories article,.report-analysis-sections article,.report-observation{border-radius:12px;padding:11px;background:var(--surface-strong)}.report-metric-highlights article{display:grid;align-content:start;justify-items:center;min-width:0;padding:12px 4px;text-align:center}.report-metric-highlights>article>span:not(.report-metric-icon),.report-metric-highlights small{color:var(--muted);font-size:.62rem}.report-metric-highlights strong{margin:5px 0 3px;font-family:ui-monospace,Cascadia Mono,monospace;font-size:1.02rem}.report-metric-icon{width:21px;height:21px;margin-bottom:4px;color:var(--primary)}.report-metric-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.report-analysis-card{border-left:4px solid var(--primary);padding:16px}.report-card>.report-analysis-heading{display:flex;align-items:center;justify-content:flex-start;gap:8px}.report-analysis-heading>span{color:var(--primary);font-size:1.2rem}.report-summary-card{margin-top:14px;border:1px solid rgba(0,88,188,.14);border-radius:12px;padding:13px;background:#0058bc0d}.report-summary-card>strong,.report-analysis-sections strong,.report-observation strong,.report-analysis-card blockquote strong{color:var(--text);font-size:.9rem}.report-summary{margin:7px 0 0;color:var(--muted);font-size:.875rem;line-height:1.7}.report-categories{margin-top:14px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px;border-top:1px solid var(--line);padding-top:14px}.report-categories article,.report-analysis-sections article{border-radius:12px;padding:13px;background:var(--surface-strong);font-size:.875rem;line-height:1.55}.report-categories strong{color:var(--primary);font-size:.75rem}.report-categories p,.report-analysis-sections p,.report-observation p,.report-rich-paragraph{margin:5px 0;color:var(--muted)}.report-rich-paragraph{display:block;line-height:1.75}.report-analysis-sections article:nth-child(2n){border-left:3px solid rgba(0,88,188,.28)}.report-analysis-sections article:nth-child(odd){border-left:3px solid rgba(112,214,154,.65)}.report-rich-paragraph+.report-rich-paragraph{margin-top:12px}.report-rich-paragraph-lead{color:var(--text)}.report-overview-card #reportOverallAssessment .report-rich-paragraph,.report-summary-card .report-rich-paragraph{line-height:1.72}.report-text-strong{color:var(--text);font-weight:800}.report-text-evidence,.report-text-caution{border-radius:5px;padding:1px 4px;font-weight:700}.report-text-evidence{background:#0070eb1a;color:var(--primary)}.report-text-caution{background:#d69e2e29;color:#76520a}.report-text-evidence:before{content:"• ";color:currentColor}.report-text-caution:before{content:"!";display:inline-grid;width:14px;height:14px;margin-right:3px;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:.62rem}.report-categories small,.report-analysis-sections small,.today-actions small{color:var(--primary);font-size:.75rem}.report-analysis-sections{margin-top:14px;display:grid;gap:10px}.report-analysis-sections article{padding:14px}.report-evidence-disclosure{margin-top:12px;border-top:1px solid var(--line);padding-top:10px;color:var(--muted)}.report-evidence-disclosure summary{min-height:36px;display:flex;align-items:center;color:var(--primary);cursor:pointer;font-size:.75rem;font-weight:800}.report-evidence-disclosure p{margin:0 0 8px;color:var(--muted);font-size:.72rem;line-height:1.55}.report-analysis-card blockquote{margin:14px 0 0;border-left:4px solid #d69e2e;border-radius:12px;padding:13px;background:#fff8e6;color:var(--muted);font-size:.875rem;line-height:1.55}.report-analysis-card blockquote p{margin:6px 0 0}.report-observation{margin-top:14px;padding:14px}.today-actions-card{background:var(--surface-strong);padding:16px}.report-page-break{min-height:132px;margin-inline:-16px;display:grid;place-content:center;justify-items:center;gap:8px;border-inline:1px solid rgba(193,198,215,.78);border-bottom:1px solid rgba(193,198,215,.78);border-radius:0 0 28px 28px;padding:18px 18px 26px;background:#eff4ff;color:var(--muted);text-align:center;box-shadow:0 12px 24px #0058bc14}.report-page-break>span{width:42px;height:6px;border-radius:999px;background:#b9c3d8}.report-page-break strong{color:var(--primary);font-size:.82rem}.report-page-break p{max-width:300px;margin:0;font-size:.75rem;line-height:1.55}.today-actions-card header>div{min-width:0}.today-actions-card .v3-kicker{margin:0;font-size:.7rem;letter-spacing:.12em}.today-actions-card h2{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:1.35rem}.today-actions-title-icon{display:inline-grid;place-items:center;width:25px;height:25px;color:var(--primary);line-height:1}.today-actions-title-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.today-actions-card h2 .today-actions-title-icon{margin:0;border-radius:0;padding:0;background:transparent}.today-actions-card header span{border-radius:999px;padding:4px 8px;background:#0058bc1a;color:var(--primary);font-size:.64rem;font-weight:800}.today-action-analysis{margin-top:14px;border:1px solid rgba(193,198,215,.65);border-radius:12px;padding:13px;background:#ffffffd1}.today-action-analysis strong{font-size:.875rem}.today-action-analysis p{margin:9px 0 0;border-top:1px solid var(--line);padding-top:9px;color:var(--muted);font-size:.875rem;line-height:1.65}.today-action-analysis small{color:var(--primary);font-size:.75rem}.today-actions{margin-top:14px;display:grid;gap:10px}.today-actions article{display:grid;grid-template-columns:28px 1fr;gap:10px;border:1px solid rgba(193,198,215,.65);border-radius:12px;padding:13px;background:#fff}.today-actions article>span{display:grid;place-items:center;width:28px;height:28px;border-radius:0;background:transparent;color:var(--success);font-weight:900}.today-actions article[data-category=recovery]>span,.today-actions article[data-category=breathing]>span,.today-actions article[data-category=hydration]>span{background:transparent;color:var(--success)}.today-actions article[data-category=activity]>span{background:transparent;color:var(--success)}.today-actions article[data-category=sleep]>span{background:transparent;color:var(--success)}.today-actions p{margin:5px 0 0;color:var(--muted);font-size:.875rem;line-height:1.55}.report-continuation-note{margin:0;padding:4px 12px 16px;color:var(--muted);text-align:center;font-size:.75rem;line-height:1.55}@media(prefers-reduced-motion:reduce){body[data-view=report] .v3-content{scroll-behavior:auto}.v3-topbar,.v3-bottom-nav,.report-tabs button:after{transition:none}}.report-disclaimer,.profile-notice{color:var(--muted);text-align:center;font-size:.75rem;line-height:1.55}.local-data-clear{width:100%;margin-top:16px}.profile-retry{width:100%;margin-top:12px}.v3-list-intro{margin-bottom:12px;padding:16px;background:var(--surface-strong)}.v3-list-intro h2{margin:4px 0;font-size:1.3rem}.v3-list-intro>p:last-child{margin:0;color:var(--muted);font-size:.78rem}.history-list{display:grid;gap:10px}.history-card{padding:14px}.history-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.history-card>div:first-child span{border-radius:999px;padding:4px 8px;font-size:.62rem;font-weight:800}.history-card .good{background:var(--success-soft);color:var(--success)}.history-card .bad{background:var(--danger-soft);color:var(--danger)}.history-card p{color:var(--muted);font-size:.72rem}.history-card>div:last-child{display:flex;gap:7px}.history-card button{min-height:44px;flex:1;border:1px solid rgba(0,88,188,.22);background:#fff;color:var(--primary);font-size:.7rem;box-shadow:none}.profile-card{padding:4px 14px}.profile-card>div{min-height:58px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.profile-card>div:last-child{border-bottom:0}.profile-card span{color:var(--muted);font-size:.76rem}.profile-card strong{max-width:190px;text-align:right;font-size:.76rem;overflow-wrap:anywhere}#reportOverallEvidence{color:var(--muted);font-size:.64rem;overflow-wrap:anywhere}.v3-empty-state{grid-column:1 / -1;border:1px dashed var(--line);border-radius:14px;padding:22px 14px;background:#fff9;color:var(--muted);text-align:center;font-size:.76rem;line-height:1.55}.v3-recovery-state{display:grid;justify-items:center;gap:14px}.v3-recovery-state p{margin:0}.v3-recovery-state button{min-height:44px;border-color:#0058bc3d;background:#fff;color:var(--primary);box-shadow:none}body[data-view=report-preparing] .v3-bottom-nav{display:none}
