:root{--primary: #6750a4;--on-primary: #ffffff;--primary-container: #eaddff;--on-primary-container: #21005d;--surface: #ffffff;--surface-variant: #f3eefa;--on-surface: #1c1b1f;--on-surface-variant: #625b71;--outline: #cac4d0;--bg: #fdfbff;--error: #b3261e;--error-container: #f9dedc;--success: #2e7d32;--warning: #f9a825;--radius: 16px;--gap: 12px;--maxw: 640px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--on-surface);-webkit-font-smoothing:antialiased}#root{min-height:100vh}.app{max-width:var(--maxw);margin:0 auto;padding:16px 16px calc(72px + env(safe-area-inset-bottom)) 16px}.app-title{font-size:1.6rem;font-weight:700;margin:4px 0 12px}.section-title{font-size:1.1rem;font-weight:600;margin:0 0 8px}.card{background:var(--surface);border:1px solid var(--outline);border-radius:var(--radius);padding:16px;margin-bottom:var(--gap)}.card.primary{background:var(--primary-container);border-color:transparent;color:var(--on-primary-container)}.card-title{font-size:1rem;font-weight:600;margin:0 0 8px}.muted{color:var(--on-surface-variant);font-size:.875rem}.row{display:flex;gap:8px;align-items:center}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.metrics{display:flex;justify-content:space-between;gap:8px}.metric{text-align:center;flex:1}.metric .value{font-size:1.6rem;font-weight:700;line-height:1.1}.metric .label{font-size:.75rem;color:var(--on-surface-variant)}button{font-family:inherit;font-size:.95rem;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:999px;padding:11px 18px;background:var(--primary);color:var(--on-primary);font-weight:600}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.block{width:100%}.btn.outline{background:transparent;color:var(--primary);border:1px solid var(--outline)}.btn.danger{background:transparent;color:var(--error);border:1px solid var(--error)}.btn.small{padding:7px 12px;font-size:.85rem}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--outline);background:var(--surface);border-radius:999px;padding:7px 14px;font-size:.875rem;color:var(--on-surface)}.chip.selected{background:var(--primary-container);border-color:var(--primary);color:var(--on-primary-container);font-weight:600}.badge{display:inline-block;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:600}.badge.ok{background:var(--primary-container);color:var(--on-primary-container)}.badge.neutral{background:var(--surface-variant);color:var(--on-surface-variant)}.badge.error{background:var(--error-container);color:var(--error)}.emoji-row{display:flex;justify-content:space-between}.emoji-btn{background:none;border:none;font-size:1.9rem;padding:4px 8px;border-radius:12px}.emoji-btn:hover{background:var(--surface-variant)}.progress{height:8px;border-radius:999px;background:var(--surface-variant);overflow:hidden}.progress>span{display:block;height:100%;background:var(--primary)}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label{font-size:.8rem;color:var(--on-surface-variant)}input[type=text],input[type=password],input[type=time],input[type=date],textarea,select{font-family:inherit;font-size:1rem;padding:11px 12px;border:1px solid var(--outline);border-radius:12px;background:var(--surface);color:var(--on-surface);width:100%}input[type=range]{width:100%}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--surface);border-top:1px solid var(--outline);padding-bottom:env(safe-area-inset-bottom);z-index:10}.bottom-nav button{flex:1;background:none;border:none;padding:8px 0 10px;color:var(--on-surface-variant);display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.72rem}.bottom-nav button.active{color:var(--primary);font-weight:700}.bottom-nav .nav-icon{font-size:1.25rem}.center{text-align:center;padding:32px 0;color:var(--on-surface-variant)}.error-text{color:var(--error);font-size:.875rem}.spinner{width:28px;height:28px;border:3px solid var(--surface-variant);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin:24px auto}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:460px;max-height:90vh;overflow-y:auto;padding:20px}.modal h2{margin:0 0 12px;font-size:1.2rem}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.choice{width:100%;text-align:left;border:1px solid var(--outline);background:var(--surface);border-radius:12px;padding:12px 14px;margin-bottom:8px;font-size:1rem;color:var(--on-surface)}.choice.selected{background:var(--primary-container);border-color:var(--primary);color:var(--on-primary-container);font-weight:600}.score-circle{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.6rem;font-weight:700;flex-shrink:0}.chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}.legend-item{display:flex;align-items:center;gap:5px;font-size:.75rem;color:var(--on-surface-variant)}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.onboarding{max-width:420px;margin:0 auto;padding:48px 24px;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.onboarding .logo{font-size:3rem;text-align:center}.onboarding h1{text-align:center;margin:8px 0 4px}
