*,*:before,*:after{box-sizing:border-box}html{font-size:16px}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;font-weight:400;--surface-bg: #f6f8fb;--surface-card: #ffffff;--surface-elevated: #fbfcfe;--surface-border: #e6e8ec;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--accent-primary: #1e3a8a;--accent-highlight: #2563eb;--accent-soft: #eef2ff;--accent-primary-text: #ffffff;--tone-positive: #ecfdf5;--tone-cautious: #fffbeb;--tone-neutral: #f3f4f6;--tone-negative: #fef2f2;--border-positive: #16a34a;--border-cautious: #d97706;--border-neutral: #9ca3af;--border-negative: #dc2626;--color-error: #b02a37;--color-error-bg: #fdecea;background-color:var(--surface-bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}@media(prefers-color-scheme:dark){:root{--surface-bg: #0b1220;--surface-card: #0f172a;--surface-elevated: #111c2e;--surface-border: #1e293b;--text-primary: rgba(255, 255, 255, .92);--text-secondary: rgba(255, 255, 255, .72);--text-muted: rgba(255, 255, 255, .55);--accent-soft: #1e2d4a;--accent-primary-text: #ffffff;--tone-positive: #052e26;--tone-cautious: #78350f;--tone-neutral: #1f2937;--tone-negative: #7f1d1d;--color-error: #fca5a5;--color-error-bg: #450a0a}}#root{min-height:100vh}body{margin:0;background:var(--surface-bg);color:var(--text-primary)}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:1.8rem;font-weight:700;letter-spacing:-.02em}h2{font-size:1.35rem;font-weight:600}h3{font-size:1.1rem;font-weight:600}p{margin:.4rem 0 .75rem;color:var(--text-secondary);font-size:.95rem}.card{background:var(--surface-card);border:1px solid var(--surface-border);border-radius:18px;padding:2rem;box-shadow:0 12px 40px #0f172a0a;transition:transform .15s ease,box-shadow .2s ease}.card:hover{transform:translateY(-2px);box-shadow:0 16px 50px #0f172a0f}.card-header{margin-bottom:1.5rem}.card-muted{background:var(--surface-elevated)}.csi-display{text-align:center;margin:2rem 0}.csi-value{font-size:4rem;font-weight:800;letter-spacing:-.04em;background:linear-gradient(135deg,var(--accent-primary),var(--accent-highlight));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.csi-label{font-size:.9rem;color:var(--text-muted);margin-top:.5rem}.posture-label{font-size:.7rem;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase}.posture-value{font-size:2.4rem;font-weight:700;margin:.4rem 0 .8rem}.badge{display:inline-flex;align-items:center;font-size:.75rem;padding:.4rem .8rem;border-radius:999px;font-weight:600;border:1px solid transparent}.badge-positive{background:var(--tone-positive);border-color:var(--border-positive)}.badge-cautious{background:var(--tone-cautious);border-color:var(--border-cautious)}.badge-negative{background:var(--tone-negative);border-color:var(--border-negative)}.badge-neutral{background:var(--tone-neutral);border-color:var(--border-neutral)}.signal-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--surface-border)}.signal-row:last-child{border-bottom:none}button{border-radius:10px;border:1px solid var(--surface-border);padding:.6em 1.2em;font-size:.9rem;font-weight:600;background:var(--surface-card);color:var(--text-primary);cursor:pointer;transition:all .2s ease}button:hover{border-color:var(--accent-primary);background:var(--accent-soft)}button.primary{background:var(--accent-primary);color:var(--accent-primary-text);border-color:var(--accent-primary)}button.primary:hover{background:var(--accent-highlight)}input[type=file],input[type=text],select{border-radius:10px;border:1px solid var(--surface-border);padding:.55rem .75rem;background:var(--surface-card);color:var(--text-primary);font-size:.9rem}.spinner{width:26px;height:26px;border:3px solid var(--surface-border);border-top:3px solid var(--accent-primary);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}
