*{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,sans-serif;background:#F5F7FA;color:#1a1a2e;min-height:100vh;padding:20px}
.container{max-width:540px;margin:0 auto}

/* Abas */
.tabs{display:flex;gap:8px;margin-bottom:16px}
.tab-btn{flex:1;padding:12px 14px;border:0.5px solid #E8EDF2;background:#fff;font-size:13px;font-weight:500;color:#6b7a99;border-radius:12px;cursor:pointer;transition:all 0.2s;box-shadow:0 1px 4px rgba(0,0,0,0.04)}
.tab-btn.active{background:#0F6E56;color:#fff;border-color:#0F6E56}
.tab-content{display:none}
.tab-content.active{display:block}

/* Elementos Originais */
.aviso{background:#F0FBF8;border:0.5px solid #0F6E56;border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:12px;color:#0F6E56}
.prog-track{height:4px;background:#E8EDF2;border-radius:4px;margin-bottom:16px}
.prog-fill{height:100%;background:#0F6E56;border-radius:4px;transition:width .4s}
.card{background:#fff;border:0.5px solid #E8EDF2;border-radius:14px;padding:20px;margin-bottom:8px;box-shadow:0 1px 4px rgba(0,0,0,0.04);transition:border-color .2s}
.card.ok{border-left:2px solid #0F6E56}
.num-badge{width:24px;height:24px;border-radius:6px;background:#E8F5F3;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:#0F6E56;flex-shrink:0}
.fator-nome{font-size:15px;font-weight:500;color:#1a1a2e;margin:0 0 4px}
.fator-pergunta{font-size:13px;color:#1a1a2e;line-height:1.5;margin:0}
.labels{display:flex;justify-content:space-between;font-size:11px;color:#1a1a2e;margin-bottom:4px;font-weight:500}
input[type=range]{-webkit-appearance:none;width:100%;height:5px;border-radius:5px;background:#E8EDF2;outline:none;cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#0F6E56;cursor:pointer;box-shadow:0 0 6px rgba(15,110,86,.3)}
input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#0F6E56;cursor:pointer;border:none}
.desc-fator{text-align:center;font-size:11px;color:#1a1a2e;font-weight:bold;margin-top:8px;min-height:14px}
.btn-main{width:100%;padding:14px;background:#0F6E56;border:none;border-radius:14px;font-size:14px;font-weight:500;color:#fff;cursor:pointer;margin-top:8px;font-family:inherit;transition:opacity .2s}
.btn-main:disabled{opacity:.35;cursor:not-allowed}
.btn-main:not(:disabled):hover{opacity:.88}
.info-box{background:#fff;border:0.5px solid #E8EDF2;border-radius:14px;padding:1rem;margin-bottom:10px;box-shadow:0 1px 4px rgba(0,0,0,0.04)}
.info-box label{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#1a1a2e;margin-bottom:5px;font-weight:700}
.info-box input{width:100%;background:#F5F7FA;border:0.5px solid #E8EDF2;border-radius:8px;padding:10px 14px;font-size:14px;color:#1a1a2e;outline:none;font-family:inherit;margin-bottom:10px}
.info-box input:last-child{margin-bottom:0}
.info-box input:focus{border-color:#0F6E56}
.obs-box{background:#fff;border:0.5px solid #E8EDF2;border-radius:14px;padding:1rem;margin-bottom:10px;box-shadow:0 1px 4px rgba(0,0,0,0.04)}
.obs-box label{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#1a1a2e;margin-bottom:5px;font-weight:700}
.obs-box textarea{width:100%;background:#F5F7FA;border:0.5px solid #E8EDF2;border-radius:8px;padding:10px 14px;font-size:13px;color:#1a1a2e;outline:none;font-family:inherit;resize:vertical;min-height:70px}
.chart-box{background:#fff;border:0.5px solid #E8EDF2;border-radius:14px;padding:1.5rem 0.5rem;margin-bottom:12px;box-shadow:0 1px 4px rgba(0,0,0,0.04)}
.score-box{background:#fff;border:0.5px solid #E8EDF2;border-radius:14px;padding:1.25rem;text-align:center;margin-bottom:12px;box-shadow:0 1px 4px rgba(0,0,0,0.04)}
.s-max{font-size:11px;color:#9BA5B4;margin-top:4px}
.s-frase{font-size:12px;color:#1a1a2e;margin-top:10px;line-height:1.5}
.fatores-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}
.fator-mini{background:#fff;border:0.5px solid #E8EDF2;border-radius:12px;padding:10px;box-shadow:0 1px 3px rgba(0,0,0,0.04)}
.fm-nome{font-size:11px;color:#1a1a2e;margin-bottom:3px;font-weight:500}
.fm-bar{height:3px;background:#E8EDF2;border-radius:3px;margin-top:5px}
.dest-box{background:#fff;border:0.5px solid #E8EDF2;border-radius:14px;padding:1rem;margin-bottom:12px;box-shadow:0 1px 4px rgba(0,0,0,0.04)}
.dest-item{display:flex;align-items:flex-start;gap:8px;padding:7px 0;border-bottom:0.5px solid #E8EDF2}
.dest-item:last-child{border-bottom:none}
.dest-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:4px}
.alerta{border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:12px;font-weight:500}
.btn-reiniciar{width:100%;padding:12px;background:transparent;border:1px solid #E8EDF2;border-radius:14px;font-size:13px;color:#6b7a99;cursor:pointer;margin-top:6px;font-family:inherit}
.btn-reiniciar:hover{border-color:#0F6E56;color:#0F6E56}
.footer-txt{text-align:center;font-size:10px;color:#9BA5B4;margin-top:16px;padding-top:12px;border-top:0.5px solid #E8EDF2}
.hub-tag{font-size:10px;color:#0F6E56;background:#E8F5F3;padding:2px 10px;border-radius:20px}

/* Elementos Novos Dashboard e Login */
.login-box{background:#fff;border:0.5px solid #E8EDF2;border-radius:14px;padding:1.5rem;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,0.04)}
.logout-btn{padding:6px 12px;font-size:11px;background:#fff;border:0.5px solid #E8EDF2;color:#1a1a2e;border-radius:6px;cursor:pointer;font-weight:500;box-shadow:0 1px 3px rgba(0,0,0,0.02)}
.logout-btn:hover{background:#FEE2E2;color:#DC2626;border-color:#FECACA}
.dashboard-card{background:#fff;border:0.5px solid #E8EDF2;border-radius:14px;padding:1.5rem 0.5rem;margin-bottom:12px;box-shadow:0 1px 4px rgba(0,0,0,0.04)}
.chart-container{position:relative;height:280px;width:100%}

.loader{border:3px solid #f3f3f3;border-top:3px solid #0F6E56;border-radius:50%;width:20px;height:20px;animation:spin 1s linear infinite;display:inline-block;vertical-align:middle}
@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
