:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#e2e8f0;background-color:#0f172a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#0f172a;color:#e2e8f0;min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:2rem}.app.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;text-align:center;gap:1rem}.app.error-state h1{color:#ef4444}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #334155}header h1{font-size:1.5rem;font-weight:600;color:#f1f5f9}.status{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#94a3b8}.indicator{width:10px;height:10px;border-radius:50%;background:#475569}.indicator.ready{background:#22c55e;box-shadow:0 0 10px #22c55e80}main{display:grid;gap:1.5rem}section{background:#1e293b;border-radius:12px;padding:1.5rem}section h2{font-size:1rem;font-weight:500;color:#94a3b8;margin-bottom:1rem}.video-section{display:flex;flex-direction:column;gap:1rem}.video-capture{position:relative}.video-container{position:relative;width:100%;max-width:640px;margin:0 auto;border-radius:8px;overflow:hidden;background:#0f172a}.video-display{width:100%;height:auto;display:block;transform:scaleX(-1)}.video-overlay{position:absolute;top:0;left:0;width:100%;height:100%;transform:scaleX(-1);pointer-events:none}.no-face-warning{text-align:center;padding:1rem;background:#eab3081a;border:1px solid rgba(234,179,8,.3);border-radius:8px;color:#eab308;margin-top:1rem}.controls{display:flex;justify-content:center;gap:1rem}button{padding:.75rem 2rem;font-size:1rem;font-weight:500;border:none;border-radius:8px;cursor:pointer;transition:all .2s}button:disabled{opacity:.5;cursor:not-allowed}.start-btn{background:#22c55e;color:#0f172a}.start-btn:hover:not(:disabled){background:#16a34a}.stop-btn{background:#ef4444;color:#fff}.stop-btn:hover{background:#dc2626}.progress{display:flex;flex-direction:column;gap:.5rem;align-items:center}.progress-bar{width:100%;max-width:400px;height:8px;background:#334155;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#22c55e);border-radius:4px;transition:width .3s ease}.progress-text{font-size:.875rem;color:#94a3b8}.signal-chart{background:#0f172a;border-radius:8px;padding:1rem}.signal-chart.empty{display:flex;align-items:center;justify-content:center;min-height:200px;color:#64748b}.metrics-display{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.metric{background:#0f172a;border-radius:8px;padding:1rem;text-align:center;border:1px solid #334155}.metric.low{border-color:#3b82f6}.metric.normal{border-color:#22c55e}.metric.high{border-color:#f97316}.metric label{display:block;font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.metric .value{display:block;font-size:2rem;font-weight:700;color:#f1f5f9;line-height:1}.metric .unit{display:block;font-size:.75rem;color:#94a3b8;margin-top:.25rem}.metric .range{display:block;font-size:.625rem;color:#64748b;margin-top:.5rem}.stress-indicator{text-align:center}.stress-indicator h3{font-size:1rem;font-weight:500;color:#94a3b8;margin-bottom:1rem}.stress-gauge{width:100%;max-width:400px;height:24px;background:#334155;border-radius:12px;overflow:hidden;margin:0 auto 1rem}.stress-fill{height:100%;border-radius:12px;transition:width .5s ease,background-color .5s ease}.stress-value{display:flex;justify-content:center;align-items:baseline;gap:.5rem;margin-bottom:.5rem}.stress-value .level{font-size:1.5rem;font-weight:700}.stress-value .value{font-size:1rem;opacity:.8}.stress-indicator .description{font-size:.875rem;color:#64748b}footer{margin-top:2rem;padding-top:1rem;border-top:1px solid #334155;text-align:center}footer p{font-size:.75rem;color:#64748b}@media(max-width:768px){.app{padding:1rem}header{flex-direction:column;gap:.5rem;text-align:center}.metrics-display{grid-template-columns:repeat(2,1fr)}.metric .value{font-size:1.5rem}}
