:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#111827;background:#f3f6fb}*{box-sizing:border-box}body{margin:0;padding-bottom:env(safe-area-inset-bottom)}.app-shell{max-width:980px;margin:14px auto;padding:0 12px 98px;display:grid;gap:12px}.card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:14px;box-shadow:0 8px 20px #0f172a0f}.hero h1{margin:6px 0;font-size:1.35rem;line-height:1.25}.eyebrow{margin:0;color:#2563eb;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.subtle{color:#64748b;margin:0}.consent-card p{color:#334155}.card-head,.row-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}label{display:grid;gap:6px;font-size:12px;color:#475569}input{border:1px solid #d1d5db;border-radius:10px;padding:10px;background:#fff;width:100%}.btn{border:0;border-radius:12px;min-height:46px;padding:10px 14px;background:#0f172a;color:#fff;font-weight:600}.btn-soft{background:#eef2ff;color:#1f2937}.btn-primary{background:linear-gradient(135deg,#1d4ed8,#2563eb)}.auth-grid,.scan-grid{display:grid;grid-template-columns:1fr;gap:8px}.auth-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.auth-actions .btn{width:100%}.top-tabs{display:none}.tab-view{display:grid;gap:12px}.flow-note{font-size:12px;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;padding:8px 10px;border-radius:10px}.camera-panel{display:grid;gap:10px}.camera-wrap{position:relative;width:100%;aspect-ratio:3/4;max-width:100%;background:#0f172a;border-radius:16px;overflow:hidden}.camera-video{width:100%;height:100%;object-fit:cover}.mesh-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.face-guide{position:absolute;top:16%;right:25%;bottom:16%;left:25%;border:2px solid rgba(255,255,255,.9);border-radius:46%;box-shadow:0 0 0 9999px #02061740}.progress-ring-wrap{position:absolute;top:10px;right:10px;width:108px;height:108px;display:grid;place-items:center}.progress-ring{transform:rotate(-90deg)}.ring-bg{fill:none;stroke:#ffffff47;stroke-width:8}.ring-fg{fill:none;stroke:#22c55e;stroke-width:8;transition:stroke-dashoffset .1s linear}.progress-label{position:absolute;color:#fff;font-size:22px;font-weight:700;background:#0f172a7a;border-radius:999px;width:58px;height:58px;display:grid;place-items:center}.quality-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.quality-grid>div{border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;padding:8px}.quality-grid small{color:#64748b;display:block}.quality-grid strong{font-size:18px}.vitals-grid{display:grid;grid-template-columns:1fr;gap:10px}.vital-card{border:1px solid #e2e8f0;border-radius:14px;padding:12px;background:#f8fafc}.vital-label{font-size:12px;color:#64748b}.vital-value{font-size:30px;font-weight:700}.vital-value span{font-size:13px;color:#64748b;margin-left:4px}.tone-ok{border-color:#bbf7d0;background:#f0fdf4}.tone-high{border-color:#fecaca;background:#fef2f2}.tone-low{border-color:#fde68a;background:#fffbeb}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:520px}th,td{text-align:left;padding:8px;border-bottom:1px solid #e5e7eb;font-size:12px}th{background:#f8fafc}.console{background:#0b1020;color:#bbf7d0;border-radius:12px;padding:10px;min-height:90px;font-size:12px;white-space:pre-wrap}.error{color:#b91c1c;margin:0;font-size:13px}.mobile-dock{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));display:grid;gap:8px;background:#fffffff2;border:1px solid #e5e7eb;border-radius:14px;padding:8px;box-shadow:0 12px 28px #0f172a24;z-index:50}.mobile-nav{grid-template-columns:repeat(4,1fr)}.mobile-nav .btn{min-height:40px;font-size:12px;padding:8px}@media (min-width: 900px){.app-shell{max-width:1180px}.top-tabs{display:flex;gap:8px;margin-bottom:10px}.tab-btn{border:1px solid #dbe4f0;background:#fff;border-radius:10px;padding:8px 12px}.tab-btn.active{background:#0f172a;color:#fff}.vitals-grid{grid-template-columns:repeat(3,1fr)}.mobile-dock{display:none}.camera-wrap{aspect-ratio:16/9;max-width:720px}}
