/* KAYN — in-page product mocks */
.ui{background:#191C20;border:1px solid var(--edge);color:var(--offwhite);font-family:var(--sans);font-size:14px;line-height:1.5;overflow:hidden}
.ui__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--edge);font-family:var(--mono);font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--offwhite-dim)}
.ui__bar b{font-weight:400;color:var(--terra)}
.ui__body{padding:20px}
.ui-label{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--offwhite-dim)}
.ui-label--terra{color:var(--terra)}
.ui-card{background:#1E2126;border:1px solid var(--edge);padding:16px}
.ui-chip{display:inline-block;white-space:nowrap;font-family:var(--mono);font-size:9.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--offwhite-dim);border:1px solid var(--edge);padding:4px 8px}
.ui-chip--on{color:var(--terra);border-color:var(--hair)}
.ui-chip--steel{color:var(--steel);border-color:rgba(122,173,189,0.35)}

/* engine loader */
.eng{max-width:430px}
.eng__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--edge)}
.eng__mark{font-family:var(--mono);font-size:17px;letter-spacing:0.42em;color:var(--offwhite)}
.eng__state{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:9.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--steel)}
.eng__state em{width:5px;height:5px;background:var(--steel);font-style:normal;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.25}}
.eng__rows{display:grid;gap:2px;padding:16px 0}
.eng__row{display:grid;grid-template-columns:14px 1fr auto;gap:12px;align-items:baseline;padding:9px 0;opacity:0.4;transition:opacity .4s}
.eng__row[data-state="done"],.eng__row[data-state="active"]{opacity:1}
.eng__dia{width:8px;height:8px;background:transparent;border:1px solid var(--offwhite-dim);transform:rotate(45deg);align-self:center}
.eng__row[data-state="active"] .eng__dia{background:var(--steel);border-color:var(--steel)}
.eng__row[data-state="done"] .eng__dia{background:var(--terra);border-color:var(--terra)}
.eng__name{font-family:var(--mono);font-size:13px;letter-spacing:0.02em;color:var(--offwhite)}
.eng__sub{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--offwhite-dim);margin-top:4px}
.eng__tag{font-family:var(--mono);font-size:9.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--offwhite-dim)}
.eng__foot{border-top:1px solid var(--edge);padding-top:16px;display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.eng__now{font-size:17px;letter-spacing:-0.01em}
.eng__now b{font-weight:500}
.eng__count{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;color:var(--offwhite-dim)}
.eng__bars{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:14px}
.eng__bars i{height:2px;background:rgba(237,234,228,0.14);display:block}
.eng__bars i.on{background:var(--terra)}

/* phone-scale screens */
.ui--phone{max-width:330px;margin-inline:auto}
.daystrip{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--edge)}
.daystrip div{padding:10px 4px;text-align:center;font-family:var(--mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--offwhite-dim);border-right:1px solid var(--edge)}
.daystrip div:last-child{border-right:0}
.daystrip b{display:block;font-size:13px;font-weight:400;color:var(--offwhite);margin:3px 0}
.daystrip .on{background:#22252A;color:var(--terra)}
.daystrip .on b{color:var(--terra)}
.focusline{padding:12px 16px;border-bottom:1px solid var(--edge);font-family:var(--mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--terra)}
.reason{display:grid;gap:10px}
.reason__row{display:grid;grid-template-columns:16px 1fr;gap:10px;color:var(--offwhite);font-size:13.5px}
.reason__row span{color:var(--terra);font-family:var(--mono);font-size:12px}
.kmark{width:22px;height:22px;background:var(--terra);color:#17191D;display:grid;place-items:center;font-family:var(--mono);font-size:11px;margin-bottom:12px}
.shaped{border-left:2px solid var(--steel);background:#1E2126;padding:16px;margin-top:16px}
.shaped ul{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:12px}
.shaped li{font-size:13px;color:var(--offwhite);position:relative;padding-left:14px}
.shaped li::before{content:"";position:absolute;left:0;top:8px;width:4px;height:4px;background:var(--steel)}
.shaped em{display:block;font-style:normal;font-family:var(--mono);font-size:9.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--offwhite-dim);margin-top:5px}
.ready{margin-top:16px;padding:16px;border:1px solid var(--hair)}
.ready h4{margin:0;font-size:18px;font-weight:500;letter-spacing:-0.015em}
.ready p{font-size:13px;color:var(--offwhite-dim);margin-top:8px}

/* athlete home */
.greet{font-size:22px;font-weight:500;letter-spacing:-0.02em;margin:6px 0 16px}
.greet b{color:var(--terra);font-weight:500}
.today{border:1px solid var(--hair);padding:16px;background:#1E2126}
.today__focus{font-size:24px;font-weight:500;letter-spacing:-0.02em;margin:8px 0 16px}
.today__btn{display:block;width:100%;text-align:center;background:var(--terra);color:#17191D;font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;padding:14px;border:0}
.team{margin-top:16px;border:1px solid var(--edge);padding:16px;display:grid;gap:12px}
.team__row{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:center}
.team__av{width:32px;height:32px;background:#2A2D33;border:1px solid var(--edge);display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:var(--terra)}
.team__name{font-size:14px}
.team__role{font-family:var(--mono);font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--offwhite-dim);margin-top:2px}
.team__msg{border-top:1px solid var(--edge);padding-top:12px;display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--offwhite-dim)}
.phase{margin-top:16px;border:1px solid var(--edge);padding:16px}
.phase__bar{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:12px 0}
.phase__bar i{height:3px;background:rgba(237,234,228,0.14);display:block}
.phase__bar i.on{background:var(--terra)}
.phase__bar i.done{background:var(--steel)}
.phase__labels{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;font-family:var(--mono);font-size:8.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--offwhite-dim)}
.phase__labels b{font-weight:400;color:var(--terra)}

/* coach roster */
.roster__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}
.roster__title{font-size:19px;font-weight:500;letter-spacing:-0.015em}
.roster__meta{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--offwhite-dim);margin-top:6px}
.roster__meta b{font-weight:400;color:var(--terra)}
.roster__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px}
.athlete{background:#1E2126;border:1px solid var(--edge);padding:14px;display:grid;gap:10px}
.athlete--flag{border-color:var(--hair)}
.athlete__top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.athlete__top>div{min-width:0}
.athlete__name{font-size:15px}
.athlete__mail{font-family:var(--mono);font-size:10px;color:var(--offwhite-dim);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.athlete__stats{font-family:var(--mono);font-size:10px;letter-spacing:0.08em;color:var(--offwhite-dim);display:flex;gap:14px;flex-wrap:wrap}
.roster__team{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px;margin-top:12px}
.coachcard{background:#1E2126;border:1px solid var(--edge);padding:14px;display:grid;gap:10px}
.coachcard__id{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:center}
.coachcard__av{width:30px;height:30px;background:#2A2D33;border:1px solid var(--edge);display:grid;place-items:center;font-family:var(--mono);font-size:10px;color:var(--terra)}
.coachcard__chips{display:flex;flex-wrap:wrap;gap:6px}

/* athlete profile */
.profile{display:grid;grid-template-columns:0.62fr 1fr;gap:1px;background:var(--edge)}
.profile>div{background:#17191D;padding:20px}
.profile__id{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;margin-bottom:16px}
.profile__av{width:44px;height:44px;background:#2A2D33;border:1px solid var(--hair);display:grid;place-items:center;font-family:var(--mono);font-size:15px;color:var(--terra)}
.profile__name{font-size:19px;font-weight:500;letter-spacing:-0.015em}
.profile__sub{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--offwhite-dim);margin-top:4px}
.profile__glance{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid var(--edge);padding-top:16px}
.profile__glance b{display:block;font-size:26px;font-weight:400;letter-spacing:-0.02em;font-family:var(--mono)}
.profile__glance span{font-family:var(--mono);font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--offwhite-dim)}
.profile__prose p{font-size:13.5px;color:var(--offwhite-dim);max-width:none}
.profile__prose p+p{margin-top:10px}
.profile__prose b{color:var(--offwhite);font-weight:500}
.snapshot{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;border-top:1px solid var(--edge);margin-top:16px;padding-top:16px}
.snapshot div span{display:block;font-family:var(--mono);font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--offwhite-dim);margin-bottom:5px}
.snapshot div b{font-weight:400;font-size:13.5px}

@media (max-width:900px){
.roster__grid,.roster__team,.snapshot{grid-template-columns:1fr 1fr}
.profile{grid-template-columns:1fr}
}
@media (max-width:600px){
.roster__grid,.roster__team,.snapshot{grid-template-columns:1fr}
.eng__foot{flex-direction:column;gap:8px}
}
