/* Jevity Human Intelligence Twin */
.twn-kicker { font: 500 0.8rem "Inter", sans-serif; letter-spacing: 0.24em; text-transform: uppercase; color: var(--accent, #2dd4a7); margin-bottom: 1rem; }

.twn-signin { padding: 5rem 0; max-width: 640px; }
.twn-signin h1 { font: 400 clamp(2rem, 5vw, 3.2rem) "Fraunces", serif; letter-spacing: -0.02em; line-height: 1.05; margin-bottom: 1.1rem; }
.twn-signin h1 em { font-style: italic; color: var(--accent, #2dd4a7); }
.twn-lead { font-size: 1.08rem; color: var(--text-soft, #d4ccba); line-height: 1.6; margin-bottom: 2rem; }
.twn-signin__form { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.twn-signin__form input { flex: 1; min-width: 220px; font: 400 0.95rem "Inter", sans-serif; color: var(--text, #f3ede0); background: transparent; border: 1px solid var(--border-strong, rgba(243,237,224,0.18)); border-radius: 999px; padding: 0.75rem 1.1rem; }
.twn-signin__form input:focus { outline: none; border-color: var(--accent, #2dd4a7); }
.twn-signin__msg { margin-top: 1rem; font-size: 0.9rem; color: var(--accent, #2dd4a7); }
.twn-signin__msg a { color: var(--accent, #2dd4a7); }

.twn-app { padding: 3.5rem 0 5rem; }
.twn-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 2.5rem; }
.twn-head h1 { font: 400 clamp(1.8rem, 3.5vw, 2.6rem) "Fraunces", serif; letter-spacing: -0.02em; }

.twn-section { margin-bottom: 3rem; }
.twn-section h2 { font: 400 1.5rem "Fraunces", serif; letter-spacing: -0.01em; margin-bottom: 0.5rem; }
.twn-sub { font-size: 0.9rem; color: var(--muted, #9b948a); margin-bottom: 1.2rem; max-width: 65ch; }
.twn-empty { color: var(--muted, #9b948a); font-size: 0.92rem; padding: 1.2rem 0; }

/* daily briefing */
.twn-briefing__row { display: flex; align-items: center; gap: 1.5rem; background: var(--bg-alt, #101116); border: 1px solid var(--border-strong, rgba(243,237,224,0.14)); border-radius: 16px; padding: 1.4rem; flex-wrap: wrap; }
.twn-score { display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 100px; padding: 1rem; border-radius: 14px; border: 1px solid; }
.twn-score--hi { color: #2dd4a7; border-color: rgba(45,212,167,0.4); background: rgba(45,212,167,0.06); }
.twn-score--mid { color: #f4b252; border-color: rgba(244,178,82,0.4); background: rgba(244,178,82,0.06); }
.twn-score--lo { color: #f0917a; border-color: rgba(240,145,122,0.4); background: rgba(240,145,122,0.06); }
.twn-score__n { font: 600 2.4rem "Fraunces", serif; line-height: 1; }
.twn-score__lbl { font: 500 0.68rem "Inter", sans-serif; letter-spacing: 0.1em; text-transform: uppercase; margin-top: 0.4rem; }
.twn-briefing__why { flex: 1; min-width: 220px; }
.twn-explain { font-size: 0.88rem; color: var(--text-soft, #d4ccba); margin-bottom: 0.4rem; }
.twn-drivers { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.twn-driver { display: flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; background: rgba(243,237,224,0.05); border-radius: 8px; padding: 0.3rem 0.6rem; }
.twn-driver__val--pos { color: #48e0b8; } .twn-driver__val--neg { color: #f0917a; }

.twn-checkin { margin-top: 1rem; }
.twn-checkin summary { cursor: pointer; color: var(--accent, #2dd4a7); font-size: 0.9rem; margin-bottom: 0.8rem; }
.twn-checkin__form { display: grid; gap: 0.9rem; max-width: 480px; background: var(--bg-alt, #101116); border: 1px solid var(--border, rgba(243,237,224,0.08)); border-radius: 14px; padding: 1.3rem; }
.twn-checkin__form label { display: grid; gap: 0.3rem; font: 500 0.8rem "Inter", sans-serif; color: var(--text-soft, #d4ccba); }
.twn-checkin__form input[type=range] { accent-color: var(--accent, #2dd4a7); }
.twn-checkin__form input[type=number] { font: 400 0.9rem "Inter", sans-serif; color: var(--text, #f3ede0); background: transparent; border: 1px solid var(--border-strong, rgba(243,237,224,0.18)); border-radius: 8px; padding: 0.5rem 0.7rem; }
.twn-check { flex-direction: row !important; align-items: center; gap: 0.5rem !important; }
.twn-check input { width: 16px; height: 16px; accent-color: var(--accent, #2dd4a7); }

/* biomarker twin */
.twn-addform { display: flex; gap: 0.6rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.twn-addform select, .twn-addform input { font: 400 0.9rem "Inter", sans-serif; color: var(--text, #f3ede0); background: var(--bg-alt, #101116); border: 1px solid var(--border-strong, rgba(243,237,224,0.18)); border-radius: 10px; padding: 0.6rem 0.8rem; }
.twn-markers { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; }
.twn-marker { border-radius: 14px; border: 1px solid var(--border, rgba(243,237,224,0.08)); background: var(--bg-alt, #101116); padding: 1.2rem; border-left: 3px solid; }
.twn-marker--hi { border-left-color: #2dd4a7; }
.twn-marker--mid { border-left-color: #f4b252; }
.twn-marker--lo { border-left-color: #f0917a; }
.twn-marker__hd { display: flex; align-items: baseline; justify-content: space-between; gap: 0.6rem; margin-bottom: 0.5rem; }
.twn-marker__name { font: 500 1rem "Inter", sans-serif; }
.twn-marker__trend { font-size: 0.72rem; color: var(--muted, #9b948a); margin-left: 0.5rem; }
.twn-marker__val { font: 500 1.1rem "Fraunces", serif; color: var(--text, #f3ede0); white-space: nowrap; }
.twn-spark { width: 100%; height: 34px; color: var(--accent, #2dd4a7); margin-bottom: 0.6rem; }
.twn-marker__ranges { display: flex; flex-direction: column; gap: 0.15rem; font-size: 0.74rem; color: var(--muted, #9b948a); margin-bottom: 0.6rem; }
.twn-marker__what { font-size: 0.84rem; color: var(--text-soft, #d4ccba); line-height: 1.5; margin-bottom: 0.4rem; }
.twn-marker__guidance { font-size: 0.82rem; color: var(--text-soft, #d4ccba); line-height: 1.5; border-left: 2px solid rgba(45,212,167,0.3); padding-left: 0.6rem; margin-bottom: 0.5rem; }
.twn-marker__confidence { font-size: 0.7rem; color: var(--muted, #9b948a); line-height: 1.4; }

@media (max-width: 600px) { .twn-addform { flex-direction: column; } .twn-addform select, .twn-addform input { width: 100%; } }

/* Oura connection */
.twn-oura { margin-bottom: 1rem; }
.twn-oura__note { font-size: 0.85rem; color: var(--muted, #9b948a); margin-bottom: 0.6rem; }

/* FeelAge — complementary signal from the legacy dashboard, shown alongside Recovery */
.twn-feelage { margin-top: 0.8rem; padding: 0.8rem 1rem; border-radius: 12px; background: rgba(167,139,250,0.07); border: 1px solid rgba(167,139,250,0.25); }
.twn-feelage__val { font: 500 0.95rem "Fraunces", serif; color: #a78bfa; margin-right: 0.6rem; }
.twn-feelage__meta { font-size: 0.76rem; color: var(--muted, #9b948a); }
