/* ===== base-1 ===== */
:root{
    --bg:#0f1115; --card:#171a21; --line:#272c36; --tx:#e8eaee; --dim:#98a0ae;
    --ac:#5b8cff; --ok:#4cc38a; --warn:#f0a202; --bad:#e5534b;
  }
  @media (prefers-color-scheme: light){
    :root{ --bg:#f5f6f8; --card:#fff; --line:#e3e6ec; --tx:#1b1f27; --dim:#6b7280; }
  }
  *{box-sizing:border-box}
  body{margin:0;background:var(--bg);color:var(--tx);
       font:15px/1.5 -apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif}
  header{position:sticky;top:0;background:var(--bg);padding:12px 16px 8px;border-bottom:1px solid var(--line);z-index:5}
  h1{font-size:17px;margin:0 0 10px}
  nav{display:flex;gap:6px}
  nav button{flex:1;padding:9px 0;border:1px solid var(--line);background:transparent;color:var(--dim);
             border-radius:9px;font-size:14px}
  nav button.on{background:var(--ac);border-color:var(--ac);color:#fff}
  main{padding:16px;max-width:820px;margin:0 auto}
  .card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:14px}
  .card h2{font-size:15px;margin:0 0 10px}
  .muted{color:var(--dim);font-size:13px}
  textarea{width:100%;min-height:150px;background:transparent;color:var(--tx);
           border:1px solid var(--line);border-radius:9px;padding:10px;font-size:14px}
  input,select{background:transparent;color:var(--tx);border:1px solid var(--line);
               border-radius:8px;padding:8px;font-size:14px}
  button.act{background:var(--ac);color:#fff;border:0;border-radius:9px;padding:10px 14px;font-size:14px}
  table{width:100%;border-collapse:collapse;font-size:13px}
  th,td{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left}
  th{color:var(--dim);font-weight:500}
  .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
  .up{color:var(--ok)} .down{color:var(--bad)} .same{color:var(--dim)}
  .bar{height:12px;background:var(--line);border-radius:6px;overflow:hidden}
  .bar > i{display:block;height:100%;background:var(--ac)}
  .stack{display:flex;height:22px;border-radius:6px;overflow:hidden;border:1px solid var(--line)}
  .stack > i{display:block}
  .kv{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--line)}
  svg{width:100%;height:170px}

/* ===== ui-v2 ===== */
:root{
  color-scheme:dark;--bg:#080d17;--surface:#111b2d;--surface2:#17243a;--surface3:#1d2d47;
  --line:#293a58;--line2:#405476;--tx:#f7f9fc;--soft:#c4cede;--dim:#8290a7;
  --ac:#6ea8ff;--ac2:#3f82f7;--acSoft:rgba(110,168,255,.14);--lime:#9ee870;
  --ok:#53d69b;--warn:#ffbd59;--bad:#ff6d76;--shadow:0 20px 55px rgba(0,0,0,.24)
}
@media(prefers-color-scheme:light){:root{color-scheme:light;--bg:#eef3f9;--surface:#fff;--surface2:#f6f8fc;--surface3:#edf2f9;--line:#d8e1ee;--line2:#bdcadc;--tx:#142033;--soft:#41516a;--dim:#738096;--ac:#276fe5;--ac2:#135bc9;--acSoft:rgba(39,111,229,.11);--lime:#3c9c45;--ok:#16865b;--warn:#aa6500;--bad:#d5444d;--shadow:0 20px 50px rgba(38,59,91,.12)}}
*{box-sizing:border-box}
html{min-height:100%;background:var(--bg)}
body{min-height:100vh;margin:0;background:radial-gradient(circle at 10% -10%,rgba(63,130,247,.20),transparent 29rem),radial-gradient(circle at 95% 18%,rgba(158,232,112,.08),transparent 24rem),var(--bg);color:var(--tx);font:16px/1.55 -apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard","Noto Sans KR",sans-serif;letter-spacing:-.012em}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(110,168,255,.32);outline-offset:2px}
[hidden]{display:none!important}
header.app-header{position:sticky;top:0;z-index:20;padding:0;border-bottom:1px solid color-mix(in srgb,var(--line) 80%,transparent);background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(18px)}
.header-inner{width:min(1120px,100%);margin:0 auto;padding:14px 22px 12px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,var(--ac),var(--ac2));color:#fff;font-size:21px;font-weight:900;box-shadow:0 10px 28px rgba(63,130,247,.28)}
.brand-copy{display:grid;line-height:1.2}.brand-copy strong{font-size:18px;letter-spacing:-.035em}.brand-copy span{margin-top:4px;color:var(--dim);font-size:12px;font-weight:800;letter-spacing:.08em}
nav{display:flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
nav button{min-width:104px;padding:9px 15px;border:0;border-radius:11px;background:transparent;color:var(--dim);font-size:14px;font-weight:850;transition:.18s}
nav button:hover:not(:disabled){color:var(--tx);background:var(--surface2)}nav button.on{background:var(--acSoft);border-color:transparent;color:var(--ac);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ac) 34%,transparent)}nav button:disabled{opacity:.38;cursor:not-allowed}.nav-icon{margin-right:6px}
main{width:min(1120px,100%);max-width:none;margin:0 auto;padding:34px 22px 56px}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 20px}.page-heading h1{margin:0;font-size:30px;line-height:1.12;letter-spacing:-.055em}.page-heading p{margin:8px 0 0;color:var(--dim);font-size:15px}
.eyebrow{display:inline-flex;align-items:center;gap:7px;margin-bottom:9px;color:var(--ac);font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.eyebrow:before{content:"";width:18px;height:2px;border-radius:2px;background:currentColor}
.status-chip,.badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:28px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface2);color:var(--soft);font-size:12px;font-weight:850;white-space:nowrap}.status-chip:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px color-mix(in srgb,var(--lime) 15%,transparent)}.badge.accent{background:var(--acSoft);border-color:color-mix(in srgb,var(--ac) 35%,transparent);color:var(--ac)}.badge.lime{background:color-mix(in srgb,var(--lime) 13%,transparent);border-color:color-mix(in srgb,var(--lime) 35%,transparent);color:var(--lime)}
.grid{display:grid;gap:18px}.record-grid{grid-template-columns:minmax(0,1.28fr) minmax(320px,.72fr);align-items:start}.side-stack{display:grid;gap:18px}
.card{min-width:0;background:linear-gradient(160deg,color-mix(in srgb,var(--surface) 98%,white 2%),var(--surface));border:1px solid var(--line);border-radius:22px;padding:0;margin:0;box-shadow:var(--shadow);overflow:hidden}.card-pad,.section-card{padding:22px}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:17px}.card-title{display:flex;align-items:center;gap:11px;min-width:0}.card-icon{flex:none;width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:var(--surface3);color:var(--ac);font-size:19px}.card h2{font-size:18px;margin:0;letter-spacing:-.035em}.card h3{font-size:16px;margin:0}.card-head p{margin:4px 0 0;color:var(--dim);font-size:13px}.muted{color:var(--dim);font-size:13px}.divider{height:1px;background:var(--line);margin:18px 0}
.step-row{display:flex;gap:8px;flex-wrap:wrap}.step{display:inline-flex;align-items:center;gap:7px;color:var(--dim);font-size:12px;font-weight:850}.step b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface3);color:var(--soft);font-size:11px}.step.active{color:var(--ac)}.step.active b{background:var(--ac);color:#fff}
label.field{display:grid;gap:7px;color:var(--soft);font-size:13px;font-weight:850}
textarea,input,select{width:100%;background:var(--surface2);color:var(--tx);border:1px solid var(--line2);border-radius:13px;padding:10px 12px;font-size:15px;transition:.18s}textarea{min-height:230px;resize:vertical;padding:16px;line-height:1.62}input,select{min-height:46px}textarea:hover,input:hover,select:hover{border-color:color-mix(in srgb,var(--ac) 45%,var(--line2))}textarea:focus,input:focus,select:focus{border-color:var(--ac);background:var(--surface)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cardio-grid{grid-template-columns:1.25fr repeat(2,minmax(0,1fr))}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.action-row{display:flex;align-items:center;gap:12px;margin-top:14px}
button.act,.btn{min-height:46px;background:linear-gradient(135deg,var(--ac),var(--ac2));color:#fff;border:1px solid transparent;border-radius:13px;padding:10px 16px;font-size:15px;font-weight:900;box-shadow:0 11px 26px rgba(63,130,247,.23);transition:.15s}.btn:hover,button.act:hover{filter:brightness(1.06)}.btn:active,button.act:active{transform:translateY(1px)}.btn-secondary{background:var(--surface2);border-color:var(--line2);color:var(--tx);box-shadow:none}.helper{margin:10px 0 0;color:var(--dim);font-size:13px}.helper strong{color:var(--soft)}
.preview-shell{margin-top:18px}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 22px;border-bottom:1px solid var(--line)}.preview-meta{display:grid;grid-template-columns:1.2fr .8fr;gap:10px;width:min(390px,100%)}.exercise-preview-list{display:grid;gap:13px;padding:18px 22px}.exercise-preview{border:1px solid var(--line);border-radius:16px;background:var(--surface2);overflow:hidden}.exercise-preview-head{display:grid;grid-template-columns:minmax(160px,1fr) minmax(210px,.8fr);align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--line)}.exercise-name{font-weight:900}.mapping{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px}.mapping span{color:var(--dim);font-size:12px;font-weight:850;white-space:nowrap}.mapping select{min-height:40px;padding:7px 10px;font-size:13px}.table-scroll{overflow-x:auto;scrollbar-gutter:stable}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}tr:last-child td{border-bottom:0}th{color:var(--dim);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.045em}td{color:var(--soft);font-variant-numeric:tabular-nums}
.preview-save{position:sticky;bottom:10px;z-index:4;display:flex;align-items:center;gap:12px;margin:0 22px 22px;padding:12px;border:1px solid var(--line2);border-radius:16px;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(14px)}.preview-save button{min-width:160px}#smsg{font-size:13px;font-weight:800}
.record-action{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:15px 18px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:var(--shadow)}.record-action-copy{display:grid;gap:2px}.record-action-copy strong{font-size:15px}.record-action-copy span{color:var(--dim);font-size:13px}.composer{margin-bottom:18px}.history-filter{display:grid;grid-template-columns:minmax(210px,340px) 1fr;align-items:end;gap:14px;margin-bottom:18px;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--surface2)}.session-filter{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.filter-chip{min-height:42px;padding:8px 16px;border:1px solid var(--line2);border-radius:12px;background:var(--surface);color:var(--soft);font-size:14px;font-weight:850}.filter-chip.on{border-color:color-mix(in srgb,var(--ac) 55%,var(--line));background:var(--acSoft);color:var(--ac)}.history-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 13px;color:var(--dim);font-size:13px}.recent-list{display:grid;gap:14px}.session-card{border:1px solid var(--line);border-radius:17px;background:var(--surface2);overflow:hidden}.session-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border-bottom:1px solid var(--line)}.session-date{display:grid;font-weight:900}.session-date small{margin-top:2px;color:var(--dim);font-size:11px;font-weight:750}.session-exercises{display:grid}.session-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:14px 17px;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent)}.session-row:last-child{border-bottom:0}.session-row strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric{display:grid;text-align:right}.metric span{color:var(--dim);font-size:11px;font-weight:700}.metric b{color:var(--soft);font-size:14px}.delta{min-width:62px;text-align:right;font-size:13px;font-weight:900}.up{color:var(--ok)}.down{color:var(--bad)}.same{color:var(--dim)}
.empty{display:grid;place-items:center;text-align:center;min-height:170px;padding:28px;border:1px dashed var(--line2);border-radius:17px;background:var(--surface2);color:var(--dim)}.empty-icon{font-size:32px;margin-bottom:8px}.loading{display:flex;align-items:center;gap:10px;color:var(--soft);font-weight:850}.spinner{width:18px;height:18px;border:2px solid var(--line2);border-top-color:var(--ac);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.auth-wrap{min-height:calc(100vh - 104px);display:grid;place-items:center;padding:36px 0}.auth-card{width:min(470px,100%);padding:28px}.auth-visual{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;margin-bottom:20px;background:linear-gradient(145deg,var(--ac),var(--ac2));color:#fff;font-size:28px;box-shadow:0 15px 35px rgba(63,130,247,.28)}.auth-card h1{margin:0;font-size:29px;letter-spacing:-.055em}.auth-card>p{margin:8px 0 22px;color:var(--dim)}.auth-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.auth-input button{min-width:92px}
.filter-bar{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface2)}.filter-bar label{width:min(390px,100%)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric-card{min-width:0;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface2)}.metric-card span{display:block;color:var(--dim);font-size:12px;font-weight:850}.metric-card strong{display:block;margin-top:5px;font-size:25px;line-height:1.15;letter-spacing:-.04em}.metric-card small{color:var(--dim);font-size:12px}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.chart-card{padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface2)}.chart-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.chart-label span{color:var(--dim);font-size:12px;font-weight:850}.chart-label strong{font-size:18px}svg.trend{display:block;width:100%;height:180px;overflow:visible}.record-list{display:grid;gap:8px;margin-top:16px}.record-row{display:grid;grid-template-columns:110px 72px minmax(0,1fr);gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:var(--surface2);font-size:14px}.record-row .date{font-weight:900}.record-row .sets{color:var(--dim)}.record-row .detail{color:var(--soft)}
.inbody-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--surface2);margin-bottom:14px}.inbody-score{display:flex;align-items:baseline;gap:5px}.inbody-score strong{font-size:46px;line-height:1;letter-spacing:-.06em}.inbody-score span{color:var(--dim);font-weight:850}.composition{margin:18px 0}.stack{display:flex;height:18px;border-radius:99px;overflow:hidden;background:var(--surface3);box-shadow:inset 0 0 0 1px var(--line)}.stack>i{display:block;height:100%}.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;color:var(--dim);font-size:12px;font-weight:850}.legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:3px;margin-right:6px;background:var(--dot)}.bar-block{margin-bottom:13px}.bar-label{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:13px}.bar-label span{color:var(--soft)}.bar{height:9px;border-radius:99px;overflow:hidden;background:var(--surface3)}.bar>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ac2),var(--ac))}.kv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kv{display:flex;justify-content:space-between;gap:12px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface2)}.kv span{color:var(--dim);font-size:13px}.kv b{font-size:14px}
.toast{position:fixed;left:50%;bottom:24px;z-index:50;transform:translate(-50%,18px);opacity:0;pointer-events:none;max-width:min(520px,calc(100% - 32px));padding:12px 16px;border:1px solid var(--line2);border-radius:13px;background:var(--surface);color:var(--tx);box-shadow:var(--shadow);font-size:14px;font-weight:850;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 55%,var(--line))}
@media(max-width:900px){.record-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){body{padding-bottom:82px}.header-inner{padding:11px 16px}.brand-mark{width:38px;height:38px;border-radius:12px}.brand-copy strong{font-size:17px}.brand-copy span{display:none}nav{position:fixed;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));z-index:30;padding:6px;border-radius:18px;background:color-mix(in srgb,var(--surface) 93%,transparent);box-shadow:0 18px 45px rgba(0,0,0,.34);backdrop-filter:blur(18px)}nav button{min-width:0;padding:9px 5px;font-size:12px}.nav-icon{display:block;margin:0 0 2px;font-size:16px}main{padding:24px 14px 30px}.page-heading{align-items:flex-start;margin-bottom:16px}.page-heading h1{font-size:25px}.page-heading .status-chip{display:none}.card{border-radius:18px}.card-pad,.section-card{padding:17px}.card-icon{width:36px;height:36px}.record-action{align-items:stretch;flex-direction:column;padding:15px}.record-action button{width:100%}.history-filter{grid-template-columns:1fr;padding:13px}.session-filter{display:grid;grid-template-columns:repeat(4,1fr)}.filter-chip{padding:8px 5px}.history-summary{align-items:flex-start;flex-direction:column}.composer{margin-bottom:14px}textarea{min-height:200px}.preview-toolbar{padding:16px}.preview-meta{grid-template-columns:1fr 110px}.exercise-preview-list{padding:14px}.exercise-preview-head{grid-template-columns:1fr}.mapping{grid-template-columns:1fr}.preview-save{bottom:84px;margin:0 14px 14px;display:grid}.preview-save button{width:100%}.session-row{grid-template-columns:minmax(0,1fr) auto}.session-row .delta{grid-column:2;grid-row:1/3}.chart-grid{grid-template-columns:1fr}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar label{width:100%}.record-row{grid-template-columns:1fr auto}.record-row .detail{grid-column:1/-1}.inbody-hero{align-items:flex-start;flex-direction:column}.kv-grid{grid-template-columns:1fr}.auth-wrap{min-height:calc(100vh - 70px);padding:18px 0}.auth-card{padding:22px 18px}}
@media(max-width:430px){.form-grid,.auth-input{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important}}
.composer{display:grid;gap:18px}.exercise-copy{display:grid;min-width:0;gap:3px}.exercise-copy strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exercise-detail{overflow:hidden;color:var(--dim);font-size:12px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}
.preview-note{padding:0 16px 16px}.preview-guide{padding:0 16px 14px}.exercise-note{margin-top:7px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--surface) 58%,transparent);overflow:hidden}.exercise-note summary{cursor:pointer;list-style:none;padding:8px 10px;color:var(--ac);font-size:12px;font-weight:900;line-height:1.4}.exercise-note summary::-webkit-details-marker{display:none}.exercise-note summary:before{content:"＋";display:inline-block;width:16px;color:var(--dim)}.exercise-note[open] summary:before{content:"－"}.exercise-note p{margin:0;padding:0 10px 10px;color:var(--soft);font-size:12px;line-height:1.6;white-space:normal}.record-note summary{color:var(--lime)}.exercise-guide{margin:0 0 16px}

/* ===== teacher-density-v4 ===== */
html,body{height:100%}
body{background:var(--bg);font-size:14px}
.page-heading{display:none}
.card{border-radius:15px;box-shadow:0 7px 24px rgba(0,0,0,.07)}
.card-pad,.section-card{padding:12px}
.card-head{align-items:center;margin-bottom:9px}
.card-head p,.card-icon{display:none}
.card h2{font-size:15px}.card h3{font-size:14px}
.badge,.status-chip{min-height:22px;padding:3px 7px;font-size:10px}
.record-action{margin:0;padding:8px 10px;border-radius:10px;box-shadow:none}
.record-action-copy{display:flex;align-items:center;gap:8px}
.record-action-copy strong{font-size:13px}.record-action-copy span{font-size:11px}
button.act,.btn{min-height:34px;padding:6px 11px;border-radius:8px;font-size:12px;box-shadow:none}
.composer{gap:9px;margin:0}
.step-row,.divider{display:none}
label.field{gap:4px;font-size:11px}
textarea,input,select{border-radius:8px;padding:6px 8px;font-size:12px}
textarea{min-height:105px;line-height:1.45}
input,select{min-height:34px}
.form-grid{gap:7px}.cardio-grid{grid-template-columns:1.15fr repeat(4,minmax(76px,1fr))}
.action-row{gap:8px;margin-top:7px}.helper{margin-top:5px;font-size:11px}
.preview-shell{margin-top:0}
.preview-toolbar{padding:8px 10px}
.preview-toolbar h2{font-size:13px}
.preview-toolbar .eyebrow{display:none}
.preview-meta{grid-template-columns:135px 76px;width:auto;gap:6px}
.exercise-preview-list{gap:7px;padding:8px 9px}
.exercise-preview{border-radius:9px}
.exercise-preview-head{grid-template-columns:minmax(125px,1fr) minmax(180px,.7fr);gap:8px;padding:7px 9px}
.exercise-name{font-size:12px}
.mapping{gap:6px}.mapping span{font-size:10px}
.preview-guide{padding:0 9px 6px}.preview-note{padding:0 9px 7px}
table{font-size:11px}th,td{padding:5px 7px}th{font-size:10px}
.preview-save{position:static;margin:0 9px 9px;padding:6px 0;border:0;background:none;backdrop-filter:none}
.preview-save button{min-width:118px}
.history-filter{grid-template-columns:200px 1fr;gap:7px;margin-bottom:7px;padding:7px;border-radius:9px}
.session-filter{gap:5px}
.filter-chip{min-height:32px;padding:5px 9px;border-radius:7px;font-size:11px}
.history-summary{margin:0 0 6px;font-size:11px}
.history-actions{display:flex;align-items:center;gap:7px}
.mini-btn{min-height:27px;padding:3px 8px;border:1px solid var(--line2);border-radius:7px;background:var(--surface2);color:var(--soft);font-size:10px;font-weight:850}
.recent-list{gap:7px}
.session-card{border-radius:10px;box-shadow:none}
.session-head{padding:7px 9px}
.session-date{font-size:12px}.session-date small{font-size:9px}
.session-row{grid-template-columns:minmax(0,1fr) auto auto;gap:9px;padding:7px 9px}
.exercise-copy{gap:1px}.exercise-copy strong{font-size:12px}
.exercise-detail{font-size:10px;line-height:1.35}
.metric span{font-size:9px}.metric b{font-size:11px}
.delta{min-width:47px;font-size:11px}
.exercise-note{margin-top:3px;border:0;border-radius:0;background:transparent}
.exercise-note summary{padding:2px 0;font-size:10px}
.exercise-note summary:before{width:13px}
.exercise-note p{padding:2px 0 3px;font-size:10px;line-height:1.4}
.filter-bar{margin-bottom:8px;padding:7px 9px;border-radius:9px}
.metric-grid{gap:7px;margin-bottom:8px}
.metric-card{padding:8px;border-radius:8px}
.metric-card span{font-size:10px}.metric-card strong{margin-top:2px;font-size:18px}
.chart-grid{gap:7px}.chart-card{padding:9px;border-radius:9px}
.chart-label{margin-bottom:3px}.chart-label span{font-size:10px}.chart-label strong{font-size:14px}
svg.trend{height:125px}
.record-list{gap:5px;margin-top:8px}
.record-row{grid-template-columns:95px 60px minmax(0,1fr);gap:8px;padding:6px 8px;border-radius:7px;font-size:11px}
.inbody-hero{padding:9px 10px;margin-bottom:7px;border-radius:9px}
.inbody-score strong{font-size:30px}
.composition{margin:9px 0}.composition h3{font-size:13px}
.legend{margin-top:6px;font-size:10px}
.bar-block{margin-bottom:8px}
.kv-grid{gap:5px}.kv{padding:6px 8px;border-radius:7px}
.kv span{font-size:10px}.kv b{font-size:11px}
.empty{min-height:92px;padding:14px;border-radius:9px}
.empty-icon{font-size:22px}
.auth-wrap{min-height:calc(100vh - 65px);padding:18px}
.auth-card{padding:18px}
.auth-visual{width:44px;height:44px;border-radius:12px;margin-bottom:12px;font-size:19px}
.auth-card h1{font-size:23px}.auth-card>p{margin:5px 0 14px}
.invalid{border-color:var(--bad)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--bad) 18%,transparent)!important}

@media(min-width:681px){
  body{overflow:hidden;display:flex;flex-direction:column;min-height:100vh}
  header.app-header{position:relative;flex:0 0 auto;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px)}
  .header-inner{width:98vw;max-width:none;margin:0 auto;padding:7px 14px 0;display:grid;grid-template-columns:1fr;gap:2px}
  .brand{gap:8px;min-height:32px}
  .brand-mark{width:29px;height:29px;border-radius:8px;font-size:14px;box-shadow:none}
  .brand-copy strong{font-size:14px}.brand-copy span{display:none}
  nav{display:flex;justify-content:flex-start;gap:19px;padding:0;border:0;border-radius:0;background:transparent;overflow-x:auto}
  nav button{flex:0 0 auto;min-width:auto;padding:7px 3px 8px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--dim);font-size:12px;box-shadow:none}
  nav button:hover:not(:disabled){background:transparent;color:var(--tx)}
  nav button.on{background:transparent;color:var(--ac);border-bottom-color:var(--ac);box-shadow:none}
  main{flex:1 1 auto;min-height:0;overflow:hidden;width:98vw;max-width:none;margin:0 auto;padding:10px 14px 12px}
  main>section:not([hidden]){height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:3px}
  #today{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(350px,.55fr);grid-template-rows:auto minmax(0,1fr);gap:10px;overflow:hidden!important}
  #today>.record-action{grid-column:1/-1;grid-row:1}
  #today>.section-card{grid-column:1/-1;grid-row:2;min-height:0;height:100%;display:flex;flex-direction:column;overflow:hidden}
  #today>.section-card>.card-head{flex:0 0 auto}
  #today>.section-card>#recent{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  #today>.section-card>#recent>.recent-list{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:2px}
  #today>.composer{grid-column:2;grid-row:2;min-height:0;height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:2px}
  #today:has(>.composer:not([hidden]))>.section-card{grid-column:1}
  #exercise,#inbody{overflow:auto}
}

@media(max-width:680px){
  html,body{height:auto}
  body{display:block;overflow:auto;padding-bottom:67px}
  header.app-header{position:sticky;top:0}
  .header-inner{width:100%;padding:7px 10px;display:flex;align-items:center;gap:8px}
  .brand{gap:7px}.brand-mark{width:29px;height:29px;border-radius:8px;font-size:14px;box-shadow:none}
  .brand-copy strong{font-size:14px}.brand-copy span{display:none}
  nav{position:fixed;left:8px;right:8px;bottom:max(7px,env(safe-area-inset-bottom));z-index:30;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;padding:4px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px)}
  nav button{min-width:0;padding:6px 3px;border:0;border-radius:8px;font-size:11px}
  nav button.on{background:var(--acSoft);color:var(--ac);box-shadow:none}
  main{width:100%;padding:8px 8px 20px}
  #today{display:block}
  .record-action{margin-bottom:8px}
  .record-action button{width:auto}
  .composer{margin-bottom:8px}
  .card-pad,.section-card{padding:10px}
  .cardio-grid{grid-template-columns:1.2fr 1fr}
  .preview-meta{grid-template-columns:1fr 76px}
  .exercise-preview-head{grid-template-columns:1fr}
  .history-filter{grid-template-columns:1fr;padding:6px}
  .session-filter{display:grid;grid-template-columns:repeat(4,1fr)}
  .session-row{grid-template-columns:minmax(0,1fr) auto}
  .session-row .delta{grid-column:2;grid-row:1/3}
  .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .record-row{grid-template-columns:1fr auto}
  .record-row .detail{grid-column:1/-1}
}

/* ===== record-analysis-v5 ===== */
body{font-size:16px}
.card h2{font-size:18px}
.record-action-copy strong{font-size:16px}.record-action-copy span{font-size:14px}
button.act,.btn{font-size:14px}
label.field{font-size:14px}
textarea,input,select{font-size:15px}
nav button{font-size:15px}
#recent{min-height:0}
.analysis-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface2)}
.analysis-tabs{display:flex;gap:5px;flex-wrap:wrap}
.analysis-tabs button{min-height:37px;padding:6px 12px;border:1px solid var(--line2);border-radius:8px;background:var(--surface);color:var(--soft);font-size:14px;font-weight:850}
.analysis-tabs button.on{border-color:color-mix(in srgb,var(--ac) 55%,var(--line));background:var(--acSoft);color:var(--ac)}
.analysis-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:var(--dim);font-size:12px;font-weight:750}
.analysis-tools select{width:auto;min-width:170px}
.analysis-body{min-height:0}
.analysis-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 9px}
.analysis-title>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.analysis-title strong{font-size:19px;color:var(--tx)}
.analysis-title span{font-size:14px;color:var(--dim);font-weight:750}
.analysis-scroll{overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--surface2)}
.analysis-table{min-width:760px;font-size:15px}
.analysis-table th{padding:9px 11px;background:color-mix(in srgb,var(--surface3) 72%,var(--surface));font-size:13px;color:var(--dim);letter-spacing:0;text-transform:none;position:sticky;top:0;z-index:1}
.analysis-table th small{display:block;margin-top:2px;font-size:10px;font-weight:700;color:var(--dim)}
.analysis-table td{padding:10px 11px;vertical-align:top;color:var(--soft);white-space:normal}
.analysis-table tbody tr:hover{background:color-mix(in srgb,var(--acSoft) 52%,transparent)}
.analysis-table td:first-child strong{font-size:15px;color:var(--tx)}
.exercise-cell{min-width:160px}
.exercise-cell small,.record-main small{display:block;margin-top:4px;color:var(--dim);font-size:11px;line-height:1.4}
.record-main{min-width:245px;font-size:14px;line-height:1.55;font-variant-numeric:tabular-nums}
.record-main.previous,.value-cell.previous{color:var(--dim)}
.change-cell{min-width:90px;text-align:center;vertical-align:middle!important;font-weight:900}
.change-cell span{display:block;font-size:15px}
.change-cell small{display:block;margin-top:2px;color:var(--dim);font-size:10px;font-weight:750}
.value-cell{font-size:17px;font-weight:850;font-variant-numeric:tabular-nums}
.table-badge{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:4px 7px;border-radius:7px;background:var(--surface3);color:var(--soft);font-size:11px;font-weight:900}
.table-badge.a{background:var(--acSoft);color:var(--ac)}.table-badge.b{background:color-mix(in srgb,var(--lime) 14%,transparent);color:var(--lime)}.table-badge.cardio{background:color-mix(in srgb,var(--warn) 14%,transparent);color:var(--warn)}
@media(min-width:681px){
  #today>.section-card>#recent{overflow:hidden}
  #today>.section-card>#recent>.analysis-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
}
@media(max-width:680px){
  body{font-size:15px}
  nav button{font-size:13px}
  .record-action-copy strong{font-size:14px}.record-action-copy span{font-size:12px}
  .analysis-toolbar{align-items:stretch;flex-direction:column;padding:8px}
  .analysis-tabs{display:grid;grid-template-columns:repeat(3,1fr)}
  .analysis-tabs button{padding:6px 5px;font-size:12px}
  .analysis-tools{justify-content:space-between}
  .analysis-tools select{min-width:0;flex:1}
  .analysis-title strong{font-size:16px}.analysis-title span{font-size:12px}
  .analysis-table{min-width:700px;font-size:13px}
}

/* ===== friendly-light-v6 ===== */
:root{
  color-scheme:light!important;
  --bg:#f4f7fb!important;
  --surface:#ffffff!important;
  --surface2:#f8fafc!important;
  --surface3:#edf3f9!important;
  --line:#d8e0ea!important;
  --line2:#b9c6d6!important;
  --tx:#16202d!important;
  --soft:#344357!important;
  --dim:#68778a!important;
  --ac:#2368c4!important;
  --ac2:#17549f!important;
  --acSoft:rgba(35,104,196,.10)!important;
  --lime:#2d8a52!important;
  --ok:#177f4e!important;
  --warn:#9a6500!important;
  --bad:#c23f48!important;
  --shadow:0 5px 18px rgba(35,58,85,.08)!important
}
html,body{background:#f4f7fb!important}
body{background:#f4f7fb!important;color:var(--tx)!important}
header.app-header{background:rgba(255,255,255,.96)!important;border-bottom-color:var(--line)!important}
.card,.session-card,.analysis-scroll,.chart-card,.metric-card,.record-action,.history-filter,.filter-bar,.exercise-preview{background:#fff!important}
nav,.analysis-toolbar{background:#f8fafc!important}
nav button,.analysis-tabs button,.filter-chip,.mini-btn,.date-arrow{color:var(--soft)!important}
nav button.on,.analysis-tabs button.on,.filter-chip.on{color:var(--ac)!important}
.analysis-table th{background:#eef3f8!important;color:#506176!important}
.analysis-table td{color:#2d3b4c!important}
.record-main.previous,.value-cell.previous{color:#66768a!important}
.chart-card{overflow:hidden}
.linechart-scroll{overflow-x:auto;overflow-y:hidden;padding:6px 2px 2px;scrollbar-gutter:stable}
.labeled-trend{display:block;height:230px;min-width:100%}
.chart-line{fill:none;stroke:var(--ac);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.chart-dot{fill:#fff;stroke:var(--ac);stroke-width:3}
.chart-value-label{fill:#172536;font-size:12px;font-weight:900}
.chart-date-label{fill:#53657a;font-size:11px;font-weight:800}
.chart-axis-label{fill:#7a8796;font-size:10px;font-weight:700}
.chart-empty{min-height:120px!important}
.date-stepper{display:grid;grid-template-columns:36px minmax(170px,1fr) 36px;align-items:center;gap:5px}
.date-stepper select{min-width:0}
.date-arrow{width:36px;height:36px;padding:0;border:1px solid var(--line2);border-radius:8px;background:#fff;font-size:22px;font-weight:900;line-height:1}
.date-arrow:hover:not(:disabled){border-color:var(--ac);color:var(--ac)!important;background:var(--acSoft)}
.date-arrow:disabled{opacity:.3;cursor:default}
.exercise-context{margin-top:6px;max-width:290px}
.exercise-tags{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:5px}
.exercise-tags span{display:inline-flex;padding:2px 6px;border:1px solid #cfd9e5;border-radius:999px;background:#f4f7fb;color:#4c6077;font-size:10px;font-weight:850}
.exercise-context p{margin:0;color:#64758a;font-size:11px;line-height:1.45;white-space:normal}
.exercise-cell{min-width:210px}
.analysis-table td.exercise-cell{background:#fbfcfe}
@media(max-width:680px){
  .analysis-tools{align-items:stretch;flex-wrap:wrap}
  .date-stepper{width:100%;grid-template-columns:38px minmax(0,1fr) 38px}
  .chart-value-label{font-size:11px}.chart-date-label{font-size:10px}
  .exercise-cell{min-width:190px}
}

/* ===== inbody-clean-v11 ===== */
/* Record set tables */
.record-exercise-list{display:grid;gap:10px}
.record-exercise-card{border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}
.record-exercise-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line);background:#f8fafc}
.record-exercise-head>div:first-child{display:flex;align-items:center;gap:8px;min-width:0}
.record-exercise-head strong{font-size:15px;color:var(--tx)}
.record-summary{font-size:12px;color:var(--dim);font-weight:800;white-space:nowrap}
.record-exercise-card>.exercise-context{max-width:none;margin:0;padding:8px 12px;border-bottom:1px solid #e7ebf0;background:#fff}
.record-compare-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;font-size:11px;color:var(--dim)}
.record-compare-summary>span{padding:3px 6px;border-radius:6px;background:#eef3f8}
.record-compare-summary>b{display:flex;align-items:center;gap:3px;font-size:12px}
.set-table-wrap{overflow-x:auto}
.set-detail-table{width:100%;min-width:540px;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.set-detail-table th,.set-detail-table td{padding:8px 10px;border-bottom:1px solid #e1e6ec;text-align:center;white-space:nowrap}
.set-detail-table th{background:#f3f6f9;color:#596b80;font-size:12px;font-weight:900}
.set-detail-table th small{display:block;margin-top:2px;color:#8793a1;font-size:10px}
.set-detail-table td:first-child{width:54px;color:#617286;font-weight:900;background:#fafbfd}
.set-detail-table tbody tr:last-child td{border-bottom:0}
.set-detail-table .prev{background:#fbfcfd;color:#69798b}
.set-note{text-align:left!important;white-space:normal!important;min-width:160px;color:#59697c}
.set-empty{padding:12px;color:var(--dim);font-size:12px}
.cardio-record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.cardio-record-grid>div{padding:9px 11px;border-right:1px solid #e3e8ed}.cardio-record-grid>div:last-child{border-right:0}
.cardio-record-grid span{display:block;font-size:11px;color:var(--dim);font-weight:800}.cardio-record-grid strong{display:block;margin-top:2px;font-size:13px;color:var(--tx);line-height:1.4}

/* InBody: single clean layer */
#inbody{height:100%;overflow:auto;background:#f4f7fb}
.ib-shell{max-width:1240px;margin:0 auto;padding-bottom:8px}
.ib-tabs{position:sticky;top:0;z-index:10;display:flex;gap:6px;margin:0 0 10px;padding:5px;border:1px solid #d7e0e9;border-radius:10px;background:rgba(244,247,251,.97);backdrop-filter:blur(10px)}
.ib-tabs button{min-width:100px;min-height:40px;border:1px solid transparent;border-radius:8px;background:transparent;color:#607286;font-size:15px;font-weight:900}
.ib-tabs button.on{border-color:#bfcbd8;background:#fff;color:#2368c4;box-shadow:0 2px 7px rgba(34,52,73,.07)}
.ib-content{min-width:0}
.ib-detail-top{margin:0 0 9px}.ib-detail-top .date-stepper{max-width:440px}
.ibx-trend-hero{display:grid;grid-template-columns:1fr auto;gap:6px 18px;align-items:center;padding:15px 16px;margin-bottom:9px;border:1px solid #d8e0e9;border-radius:11px;background:#fff}
.ibx-trend-hero>div:first-child{display:grid;gap:2px}.ibx-trend-hero>div:first-child span{font-size:12px;color:#748398;font-weight:850}.ibx-trend-hero>div:first-child strong{font-size:22px;color:#172332}.ibx-trend-hero>div:first-child small{font-size:12px;color:#6f7f92}
.ibx-trend-hero p{grid-column:1/-1;margin:3px 0 0;color:#536478;font-size:12px;line-height:1.45}
.ibx-score{display:grid;grid-template-columns:auto auto auto;align-items:baseline;gap:4px}.ibx-score span{font-size:12px;color:#6b7b8e;font-weight:850}.ibx-score strong{font-size:33px;color:#182432;line-height:1}.ibx-score small{font-size:12px;color:#6b7b8e}
.ibx-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-bottom:10px}
.ibx-overview>div{padding:9px 10px;border:1px solid #dbe2ea;border-radius:9px;background:#fff}.ibx-overview span{display:block;font-size:11px;color:#718197;font-weight:850}.ibx-overview strong{display:block;margin-top:2px;font-size:18px;color:#1d2937}.ibx-overview small{display:block;margin-top:3px;font-size:10px;color:#6b7c91;font-weight:750}
.ibx-trend-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 9px;flex-wrap:wrap}.ibx-trend-toolbar>div:first-child{display:flex;align-items:baseline;gap:8px}.ibx-trend-toolbar>div:first-child strong{font-size:16px;color:#1c2937}.ibx-trend-toolbar>div:first-child span{font-size:11px;color:#748397}.ibx-range-tabs{display:flex;gap:4px;padding:3px;border:1px solid #d8e0e9;border-radius:9px;background:#eef3f8}.ibx-range-tabs button{min-height:32px;padding:5px 11px;border:1px solid transparent;border-radius:7px;background:transparent;color:#607286;font-size:11px;font-weight:900}.ibx-range-tabs button.on{border-color:#c2ceda;background:#fff;color:#2368c4}
.ib-trend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ib-trend-card{min-width:0;padding:10px 11px 8px;border:1px solid #d8e0e9;border-radius:10px;background:#fff;box-shadow:none;overflow:hidden}
.ib-trend-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:4px}.ibx-card-metric{display:grid;gap:1px}.ib-trend-title{font-size:13px;color:#405166;font-weight:900}.ibx-card-metric>strong{font-size:21px;color:#182432;line-height:1.15}.ibx-card-metric>small{font-size:10px;color:#76869a;font-weight:750}.ibx-card-delta{display:grid;justify-items:end;gap:1px;padding-top:1px}.ibx-card-delta span{font-size:9px;color:#8290a0;font-weight:800}.ibx-card-delta strong{font-size:14px;color:#314f70}
.ibx-chart-fit{width:100%;max-width:100%;overflow:hidden;margin-top:2px}.ibx-trend-svg{display:block;width:100%;height:auto;min-height:184px}.ibx-grid-line{stroke:#dfe6ee;stroke-width:1}.ibx-y-label{fill:#6f7f91;font-size:10px;font-weight:750}.ibx-line{fill:none;stroke:#2368c4;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.ibx-point{fill:#fff;stroke:#2368c4;stroke-width:3;vector-effect:non-scaling-stroke}.ibx-point.latest{fill:#2368c4;stroke:#fff;stroke-width:2.5}.ibx-latest-value{fill:#0f4f98;font-size:12px;font-weight:900}.ibx-x-date{fill:#52657a;font-size:10px;font-weight:800}
.ibx-sheet{border:1px solid #cbd2da;border-top:5px solid #a92d18;border-radius:3px;background:#fff;overflow:hidden;box-shadow:none}
.ibx-header{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:4px 18px;padding:12px 15px 9px;border-bottom:2px solid #a92d18}
.ibx-logo{font-size:36px;font-weight:950;letter-spacing:-.06em;line-height:1;color:#a92d18}.ibx-device{justify-self:end;font-size:13px;font-weight:900;color:#252b32}
.ibx-profile{grid-column:1/-1;display:grid;grid-template-columns:110px 80px 80px 1fr;margin-top:6px;border-top:1px solid #d5dbe1}
.ibx-profile>div{display:grid;grid-template-columns:auto 1fr;gap:7px;padding:6px 8px;border-right:1px solid #d5dbe1}.ibx-profile>div:last-child{border-right:0}.ibx-profile span{font-size:10px;color:#778493;font-weight:800}.ibx-profile strong{font-size:12px;color:#283541}
.ibx-columns{display:block;padding:10px}.ibx-columns>main,.ibx-columns>aside{min-width:0}.ibx-columns>aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-items:start}.ibx-columns>aside>.ibx-score-panel{grid-column:1/-1;margin-bottom:0}.ibx-columns>aside>.ibx-section{margin-bottom:0}
.ibx-section{margin:0 0 9px;border:1px solid #d1d7de;border-radius:2px;background:#fff;overflow:hidden}
.ibx-section>h3{display:flex;align-items:baseline;gap:5px;margin:0;padding:6px 9px;border-bottom:1px solid #d1d7de;background:#edf0f3;color:#2f3944;font-size:14px;font-weight:950}.ibx-section>h3 small{font-size:10px;color:#7d8791;font-weight:700}
.ibx-analysis-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(90px,.55fr) minmax(180px,1.15fr);gap:8px;align-items:center;min-height:52px;padding:6px 9px;border-bottom:1px solid #e3e7eb}.ibx-analysis-row:last-child{border-bottom:0}
.ibx-name{display:grid;gap:1px}.ibx-name strong{font-size:12px;color:#36424f}.ibx-name small{font-size:10px;color:#8a949f}.ibx-reading{display:grid;justify-items:end;gap:1px}.ibx-reading strong{font-size:16px;color:#171e26}.ibx-reading small{font-size:10px;color:#7b8897}
.ibx-range{min-width:0;max-width:100%;overflow:hidden}.ibx-track{--fill:0%;--normal-start:75%;position:relative;width:100%;max-width:100%;height:10px;overflow:hidden;border-radius:3px;background:linear-gradient(90deg,#e4e9ef 0 var(--normal-start),#bec9d4 var(--normal-start) 100%)}.ibx-track .ibx-fill{position:absolute;inset:0 auto 0 0;width:var(--fill);max-width:100%;background:rgba(35,104,196,.18)}.ibx-track i{position:absolute;left:var(--fill);top:0;width:3px;height:100%;background:#111;transform:translateX(-50%)}.ibx-range-label{display:grid;grid-template-columns:1fr auto 1fr;margin-top:3px;font-size:10px;color:#84909d}.ibx-range-label span:last-child{text-align:right}.ibx-range-label b{font-size:10px;color:#58687a}
.ibx-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.ibx-metrics.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.ibx-metric{padding:9px 10px;border-right:1px solid #e1e5e9}.ibx-metric:last-child{border-right:0}.ibx-metric>span{display:block;font-size:11px;color:#6f7f91;font-weight:850}.ibx-metric>strong{display:block;margin-top:2px;font-size:18px;color:#19222d}.ibx-metric>div{display:flex;align-items:center;gap:4px;min-height:19px;margin-top:3px}.ibx-metric small{font-size:10px;color:#7b8998}
.ibx-eval{display:inline-flex;padding:2px 5px;border-radius:999px;background:#edf6ef;color:#3d7850;font-size:10px;font-weight:900}.ibx-eval.high{background:#fff0e4;color:#9d571d}.ibx-eval.low{background:#fff8d9;color:#7f6a19}
.ibx-score-panel{display:grid;justify-items:center;gap:3px;padding:15px 9px;margin-bottom:9px;border:1px solid #d1d7de;background:#fff}.ibx-score-panel>span{font-size:12px;font-weight:900;color:#34404c}.ibx-score-panel>strong{font-size:34px;color:#111;line-height:1}.ibx-score-panel strong small{font-size:13px;color:#5d6670;font-weight:700}.ibx-score-panel p{margin:2px 0 0;font-size:10px;color:#7f8995}
.ibx-control{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ibx-control .ibx-metric:nth-child(2n){border-right:0}.ibx-control .ibx-metric:nth-child(n+3){border-top:1px solid #e1e5e9}
.ibx-body-pair{display:grid;grid-template-columns:1fr;gap:9px}.ibx-body-pair>.ibx-section{min-width:0;width:100%}.ibx-body-map{position:relative;height:285px;background:#eef1f4;overflow:hidden}.ibx-body-map svg{position:absolute;left:50%;top:22px;width:138px;height:222px;transform:translateX(-50%);fill:#fff;stroke:#fff}
.ibx-body-label{position:absolute;display:grid;justify-items:center;gap:1px;min-width:60px;padding:4px 5px;border-radius:5px;background:rgba(255,255,255,.92);box-shadow:0 1px 4px rgba(36,49,64,.07)}.ibx-body-label span{font-size:10px;color:#708094;font-weight:800}.ibx-body-label strong{font-size:11px;color:#314152}.ibx-body-label small{font-size:10px;color:#617286}.ibx-body-label.high strong{color:#9b551b}.ibx-body-label.la{left:7px;top:57px}.ibx-body-label.ra{right:7px;top:57px}.ibx-body-label.tr{left:50%;top:119px;transform:translateX(-50%)}.ibx-body-label.ll{left:12px;bottom:30px}.ibx-body-label.rl{right:12px;bottom:30px}
.ibx-cal-basis{padding:6px 8px;border-bottom:1px solid #e1e5e9;font-size:10px;color:#7d8996}.ibx-cal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ibx-cal-grid>div{display:flex;justify-content:space-between;gap:7px;padding:5px 8px;border-bottom:1px solid #edf0f3}.ibx-cal-grid span,.ibx-cal-grid strong{font-size:10px}.ibx-cal-grid span{color:#526274}.ibx-cal-grid strong{color:#202a34}
.ibx-table-scroll{overflow-x:auto}.ibx-imp{width:100%;min-width:430px;font-size:10px}.ibx-imp th,.ibx-imp td{padding:5px 6px;text-align:center;border-bottom:1px solid #e1e5e9}.ibx-imp th:first-child{text-align:left;background:#f2f4f6}.ibx-simple{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px;border-top:1px solid #e1e5e9}.ibx-simple span{font-size:11px;color:#697a8e;font-weight:850}.ibx-simple strong{font-size:14px;color:#222c36}
.ibx-extra{margin:0 10px 9px}.ibx-extra-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.ibx-extra-grid .ibx-metric:nth-child(4n){border-right:0}
.ibx-history{margin:0 10px 9px}.ibx-history-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:7px}.ibx-history-grid article{min-width:0;padding:7px;border:1px solid #dde3e9;border-radius:5px}.ibx-history-grid article>div:first-child{display:flex;justify-content:space-between;gap:7px}.ibx-history-grid span{font-size:11px;color:#67798d;font-weight:850}.ibx-history-grid strong{font-size:13px;color:#202b36}.ibx-history-grid .labeled-trend{height:175px}
.ibx-foot{display:grid;gap:4px;padding:8px 10px;border-top:1px solid #d6dce2;background:#fafbfc}.ibx-foot>div{display:grid;grid-template-columns:68px 1fr;gap:8px}.ibx-foot span{font-size:10px;color:#7c8997;font-weight:900}.ibx-foot strong{font-size:10px;color:#455467;line-height:1.4;font-weight:700}
@media(max-width:1180px){.ib-trend-grid{grid-template-columns:1fr}.ibx-history-grid{grid-template-columns:1fr}.ibx-extra-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.record-exercise-head{align-items:flex-start;flex-direction:column}.record-summary,.record-compare-summary{white-space:normal;justify-content:flex-start}.cardio-record-grid{grid-template-columns:1fr}.cardio-record-grid>div{border-right:0;border-bottom:1px solid #e3e8ed}.ibx-trend-toolbar{align-items:stretch;flex-direction:column}.ibx-trend-toolbar>div:first-child{align-items:flex-start;flex-direction:column;gap:2px}.ibx-range-tabs{align-self:flex-start}.ibx-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.ibx-profile{grid-template-columns:repeat(2,minmax(0,1fr))}.ibx-analysis-row{grid-template-columns:minmax(0,1fr) auto}.ibx-analysis-row .ibx-range{grid-column:1/-1}.ibx-body-pair{grid-template-columns:1fr}.ibx-columns>aside{grid-template-columns:1fr}.ibx-columns>aside>.ibx-score-panel{grid-column:auto}.ibx-trend-svg{min-height:170px}}
@media(max-width:520px){.ibx-header{padding:9px}.ibx-logo{font-size:29px}.ibx-device{font-size:11px}.ibx-columns{padding:6px;gap:6px}.ibx-profile{grid-template-columns:1fr 1fr}.ibx-profile>div{grid-template-columns:1fr;gap:2px}.ibx-overview{grid-template-columns:1fr 1fr}.ibx-metrics,.ibx-metrics.two{grid-template-columns:1fr}.ibx-metric{border-right:0;border-bottom:1px solid #e1e5e9}.ibx-control{grid-template-columns:1fr}.ibx-extra-grid{grid-template-columns:1fr}.ibx-cal-grid{grid-template-columns:1fr}.set-detail-table{min-width:620px}}


/* ===== overflow-safety ===== */
.ibx-sheet,.ibx-columns,.ibx-section,.ibx-analysis-row,.ibx-range,.ibx-track{max-width:100%}
.ibx-sheet,.ibx-section{overflow:hidden}
.ibx-table-scroll,.set-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.ibx-analysis-row>*{min-width:0}
