/* 앱 화면 조각 — INREWARD 실제 화면 구성(화면설계서 v1.1)을 HTML로 재현 */
[data-ui] { font-family: var(--font); color: #16142e; letter-spacing: -0.01em; text-align: left; }
.phone { min-width: 0; background: #0d0b1f; border-radius: 40px; padding: 10px; box-shadow: 0 30px 60px -20px rgba(10, 6, 40, .55); }
.phone .screen { background: #f6f5fb; border-radius: 31px; overflow: hidden; aspect-ratio: 9 / 19; display: flex; flex-direction: column; font-size: 12px; position: relative; }
.phone .sb { height: 30px; display: flex; justify-content: space-between; align-items: center; padding: 0 22px; font-size: 11px; font-weight: 700; background: #fff; flex: none; }
.phone .sb i { width: 64px; height: 18px; background: #0d0b1f; border-radius: 99px; display: block; }
.phone .appbar { background: #fff; padding: 8px 16px 12px; display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 14px; flex: none; }
.phone .appbar .back { color: #8a87a8; font-weight: 600; }
.phone .body { padding: 12px; display: grid; gap: 10px; align-content: start; flex: 1; overflow: hidden; }
.phone .card { background: #fff; border-radius: 14px; padding: 12px; }
.phone .tabbar { display: grid; grid-template-columns: repeat(5, 1fr); background: #fff; padding: 8px 6px 14px; font-size: 9.5px; color: #8a87a8; text-align: center; flex: none; font-weight: 600; }
.phone .tabbar b { color: #5b5bd6; }
.phone .tabbar span::before { content: ""; display: block; width: 16px; height: 16px; margin: 0 auto 3px; border-radius: 5px; background: #dedcf2; }
.phone .tabbar b::before { content: ""; display: block; width: 16px; height: 16px; margin: 0 auto 3px; border-radius: 5px; background: #5b5bd6; }
.phone .cta-fixed { margin: 0 12px 12px; background: #5b5bd6; color: #fff; text-align: center; border-radius: 12px; padding: 12px; font-weight: 800; font-size: 13px; flex: none; }

/* score ring */
.ui-ring { --p: 92; --c: #8b5cf6; width: 128px; height: 128px; border-radius: 50%; display: grid; place-items: center; margin: 4px auto 0; background: conic-gradient(var(--c) calc(var(--p) * 1%), #ebe9f7 0); position: relative; }
.ui-ring::before { content: ""; position: absolute; inset: 11px; background: #fff; border-radius: 50%; }
.ui-ring > div { position: relative; text-align: center; line-height: 1.05; }
.ui-ring strong { font-size: 34px; letter-spacing: -0.04em; display: block; }
.ui-ring span { font-size: 10px; color: #8a87a8; }
.ui-center { text-align: center; }
.ui-amount { font-size: 22px; font-weight: 800; letter-spacing: -0.03em; }
.ui-label { color: #8a87a8; font-size: 10.5px; }
.ui-bars { display: grid; gap: 8px; }
.ui-bars .b { display: grid; grid-template-columns: 1fr auto; gap: 4px; font-size: 11px; font-weight: 700; }
.ui-bars .b i { grid-column: 1 / -1; height: 6px; border-radius: 9px; background: #ebe9f7; display: block; overflow: hidden; }
.ui-bars .b i::after { content: ""; display: block; height: 100%; width: var(--w); background: #5b5bd6; border-radius: 9px; }
.ui-track { display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; font-size: 8.5px; text-align: center; color: #8a87a8; font-weight: 600; }
.ui-track span::before { content: ""; display: block; height: 4px; border-radius: 4px; background: #dedcf2; margin-bottom: 5px; }
.ui-track span.done { color: #16142e; }
.ui-track span.done::before { background: #5b5bd6; }
.ui-track span.now { color: #5b5bd6; }
.ui-track span.now::before { background: #a5a3f0; }
.ui-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 99px; font-size: 10px; font-weight: 700; background: #eceafe; color: #4338ca; }
.ui-badge.ok { background: #e3f7ee; color: #047857; }
.ui-badge.wait { background: #fff4d6; color: #92400e; }
.ui-badge.warn { background: #ffe9dc; color: #c2410c; }
.ui-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ui-camp { display: grid; grid-template-columns: 54px 1fr; gap: 10px; align-items: center; }
.ui-camp img { width: 54px; height: 54px; border-radius: 10px; object-fit: cover; }
.ui-camp b { display: block; font-size: 11.5px; }
.ui-camp small { color: #8a87a8; font-size: 10px; display: block; }
.ui-camp em { font-style: normal; color: #5b5bd6; font-weight: 800; font-size: 11px; }
.ui-seg { display: grid; grid-template-columns: repeat(3, 1fr); background: #ebe9f7; border-radius: 10px; padding: 3px; font-weight: 700; font-size: 11px; text-align: center; }
.ui-seg span { padding: 6px 0; border-radius: 8px; color: #6d6a8c; }
.ui-seg span.on { background: #fff; color: #16142e; }
.ui-chips { display: flex; gap: 5px; font-size: 10px; font-weight: 700; }
.ui-chips span { background: #fff; border-radius: 99px; padding: 4px 9px; color: #6d6a8c; }
.ui-chips span.on { background: #16142e; color: #fff; }
.ui-ladder { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; text-align: center; font-size: 9px; font-weight: 700; }
.ui-ladder div { background: #f1f0f9; border-radius: 8px; padding: 6px 0; display: grid; gap: 3px; justify-items: center; }
.ui-ladder div.dim { opacity: .38; }
.ui-ladder div.me { outline: 2px solid #5b5bd6; background: #fff; }
.ui-ladder .grade { width: 20px; height: 20px; font-size: 10px; border-radius: 6px; }
.ui-coach { background: #16142e; color: #fff; border-radius: 14px; padding: 12px; display: grid; gap: 8px; }
.ui-coach .meter { height: 8px; border-radius: 9px; background: #2e2a5c; overflow: hidden; }
.ui-coach .meter i { display: block; height: 100%; width: 78%; background: #8b5cf6; border-radius: 9px; }
.ui-coach p { color: #cfcbef; font-size: 10.5px; line-height: 1.5; }
.ui-input { background: #fff; border-radius: 10px; padding: 10px; color: #4a4766; font-size: 10.5px; line-height: 1.55; min-height: 74px; }
.ui-photos { display: flex; gap: 6px; }
.ui-photos img { width: 48px; height: 48px; object-fit: cover; border-radius: 8px; }
.ui-photos span { width: 48px; height: 48px; border-radius: 8px; background: #ebe9f7; display: grid; place-items: center; color: #8a87a8; font-weight: 800; font-size: 16px; }
.ui-big { font-size: 28px; font-weight: 800; letter-spacing: -0.04em; }
.ui-list div { display: flex; justify-content: space-between; padding: 7px 0; font-size: 10.5px; }
.ui-list div + div { border-top: 1px solid #efeef6; }
.ui-plus { color: #047857; font-weight: 800; }
.ui-minus { color: #16142e; font-weight: 800; }

/* desktop advertiser window */
.desk { background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 30px 70px -30px rgba(18, 15, 44, .45); font-size: 12.5px; }
.desk .topbar { display: flex; align-items: center; gap: 18px; padding: 12px 18px; background: #16142e; color: #fff; font-weight: 700; font-size: 12px; }
.desk .topbar .mk { width: 22px; height: 22px; border-radius: 6px; background: var(--brand); display: grid; place-items: center; font-size: 9px; }
.desk .topbar nav { display: flex; gap: 14px; color: #a9a5d6; font-weight: 600; }
.desk .topbar nav b { color: #fff; }
.desk .dbody { padding: 18px; display: grid; gap: 14px; background: #f6f5fb; }
.desk .kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.desk .kpi { background: #fff; border-radius: 12px; padding: 12px 14px; }
.desk .kpi .v { font-size: 20px; font-weight: 800; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.desk .kpi .k { color: #8a87a8; font-size: 11px; }
.desk .panel { background: #fff; border-radius: 12px; padding: 14px; }
.desk .panel h4 { font-size: 13px; margin: 0 0 10px; letter-spacing: -0.02em; }
.desk .two { display: grid; grid-template-columns: 1.3fr 1fr; gap: 14px; }
.desk table { width: 100%; border-collapse: collapse; font-size: 11.5px; }
.desk td, .desk th { padding: 8px 6px; border-bottom: 1px solid #efeef6; text-align: left; white-space: nowrap; }
.desk th { color: #8a87a8; font-weight: 600; font-size: 10.5px; }
.desk td.r, .desk th.r { text-align: right; font-variant-numeric: tabular-nums; }
.desk tr:last-child td { border-bottom: 0; }
.desk .dist { display: grid; gap: 7px; }
.desk .dist div { display: grid; grid-template-columns: 22px 1fr 34px; gap: 8px; align-items: center; font-size: 11px; font-weight: 700; }
.desk .dist i { height: 8px; border-radius: 6px; background: #ebe9f7; display: block; overflow: hidden; }
.desk .dist i::after { content: ""; display: block; height: 100%; width: var(--w); background: var(--c); border-radius: 6px; }
.desk .weeks { display: flex; align-items: flex-end; gap: 8px; height: 92px; }
.desk .weeks i { flex: 1; background: #c9c6f5; border-radius: 6px 6px 3px 3px; height: var(--h); display: block; }
.desk .weeks i.on { background: #5b5bd6; }
.desk .wl { display: flex; gap: 8px; font-size: 10px; color: #8a87a8; margin-top: 6px; }
.desk .wl span { flex: 1; text-align: center; }
.desk .review { display: grid; grid-template-columns: 120px 1fr; gap: 14px; }
.desk .review img { width: 120px; height: 150px; object-fit: cover; border-radius: 10px; }
.desk .btns { display: flex; gap: 8px; margin-top: 10px; }
.desk .btns span { padding: 8px 14px; border-radius: 8px; font-weight: 800; font-size: 11.5px; background: #ebe9f7; }
.desk .btns span.go { background: #5b5bd6; color: #fff; }
.desk .warnbox { background: #fff4ec; color: #9a3412; border-radius: 8px; padding: 8px 10px; font-size: 11px; font-weight: 600; }
@media (max-width: 640px) {
  .desk { font-size: 11px; }
  .desk .topbar nav { display: none; }
  .desk .kpis { grid-template-columns: repeat(2, 1fr); }
  .desk .two { grid-template-columns: 1fr; }
  .desk .review { grid-template-columns: 90px 1fr; }
  .desk .review img { width: 90px; height: 112px; }
}
.phone-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 2vw, 28px); align-items: start; max-width: 600px; margin: 0 auto; }
.phone-pair .phone:nth-child(2) { margin-top: 56px; }
.phone-solo { max-width: 300px; margin: 0 auto; }
@media (max-width: 600px) {
  .phone { border-radius: 30px; padding: 8px; }
  .phone .screen { border-radius: 23px; }
  .phone-pair { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0; }
  .phone-pair > :nth-child(1) { grid-column: 1 / 9; grid-row: 1; }
  .phone-pair > :nth-child(2) { grid-column: 5 / 13; grid-row: 1; margin-top: 96px !important; z-index: 2; }
}
