:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans",Meiryo,sans-serif;color:#eaf0f3;background:#111b25;--muted:#95a6b4;--line:#30404c;--green:#c3ef83;--panel:#1b2834;--blue:#6ed2f0}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;min-height:44px;border:1px solid var(--line);background:#23323f;border-radius:10px;color:inherit;padding:10px 14px;font-weight:600;touch-action:manipulation}button:hover{border-color:#7d9baf}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:3px}[hidden]{display:none!important}a{color:inherit}small{font-size:12px;color:var(--muted)}.app{max-width:1550px;margin:auto;display:grid;grid-template-columns:260px 1fr}.rail{padding:40px 28px;border-right:1px solid var(--line);min-height:100vh;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:22px;font-weight:850;letter-spacing:2px}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:5px}.brand-mark{width:42px;height:48px;font-size:40px;line-height:45px;position:relative;color:var(--green);letter-spacing:-8px}.brand-mark span{font-size:36px;color:var(--green)}.rail-body{margin-top:70px}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:750;color:var(--muted);margin:0 0 10px}.rail .eyebrow{font-size:8px;letter-spacing:1.2px}.rail h1{font-size:28px;line-height:1.6;letter-spacing:1px;margin:12px 0}.rail-note{font-size:10px;color:var(--muted);margin-bottom:40px}.part-nav{display:grid;gap:8px}.part-nav button{display:grid;grid-template-columns:25px 1fr;text-align:left;background:transparent;border-color:transparent;gap:6px;align-items:center;padding:14px 10px;border-radius:9px}.part-nav button>span{grid-row:span 2;font:11px ui-monospace,monospace;color:var(--muted)}.part-nav button b{font-size:13px}.part-nav button small{font-size:10px;font-weight:400}.part-nav button[aria-pressed=true]{background:var(--green);color:#152318}.part-nav button[aria-pressed=true] span,.part-nav button[aria-pressed=true] small{color:#3f5735}.rail-footer{margin-top:70px;font-size:10px;color:var(--muted);line-height:2.5}.rail-footer small{font-size:8px;letter-spacing:1px}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--green);margin-right:4px}main{min-width:0;padding:40px 48px 20px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:15px}.topbar h2{font-size:27px;letter-spacing:1px;margin:0}.quiet{background:transparent;font-size:12px}.topbar button span{background:#324552;padding:3px 7px;border-radius:4px;margin-left:8px}.heart-strip{background:#192632;border:1px solid var(--line);border-radius:12px;padding:16px 20px;display:flex;gap:22px;align-items:center}.heart-number{display:flex;align-items:baseline;gap:8px;min-width:100px}.heart-number strong{font-size:30px;font-variant-numeric:tabular-nums}.heart{color:#e7a4a0;font-size:28px;align-self:center}.heart-status{flex:1}.heart-status b{display:block;font-size:12px;font-weight:500}.heart-status small{font-size:10px;display:block;margin-top:5px}.heart-strip button{background:transparent;font-size:11px;white-space:nowrap}.subtle{font-size:12px;line-height:1.8;color:var(--muted);margin:10px 0}.workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr);gap:24px;margin-top:24px;align-items:start}.entry{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px;min-width:0}.entry-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.entry-top .eyebrow{margin:0}.motion{display:flex!important;gap:6px;align-items:center;font-size:10px!important;margin:0!important;color:var(--muted)!important}.motion input,.check input{accent-color:var(--green);width:17px;height:17px}.steps{display:flex;gap:8px;margin:24px 0 28px;padding:0;list-style:none}.steps li{flex:1;font-size:10px;color:var(--muted);border-bottom:2px solid var(--line);padding-bottom:10px}.steps li[aria-current=step]{color:var(--green);border-color:var(--green)}.steps li.done{border-color:#69864d}.step-title{display:flex;gap:10px;align-items:center;margin-bottom:16px}.step-title>span{font:12px ui-monospace,monospace;color:var(--green);border:1px solid #526543;border-radius:50%;width:28px;height:28px;display:grid;place-items:center}h3{font-size:17px;margin:0}.step-title h3{font-size:21px}.step{min-height:310px}label{display:block;font-size:12px;color:#bfcbd4;margin:18px 0 8px}select,input:not([type=checkbox]),textarea{width:100%;padding:13px 11px;border:1px solid #425461;background:#14212c;color:inherit;border-radius:8px;min-height:46px;line-height:1.5}textarea{resize:vertical;font-size:13px}select{font-size:16px}.check{display:flex;align-items:center;gap:7px;line-height:1.6;font-size:11px;margin:16px 0}.confirm{width:100%;margin-top:24px;display:flex;align-items:center;justify-content:space-between;color:#aee7fb;background:#16384a;border-color:#4e9cbb;min-height:54px;font-size:17px}.confirm span{font-size:11px}.pulse-on .confirm{animation:glow 1.8s ease-in-out infinite}@keyframes glow{0%,100%{box-shadow:0 0 0 0 #6ed2f000;background:#16384a}45%{box-shadow:0 0 16px 2px #6ed2f04d;background:#21546b;border-color:#b3edff}}.primary{background:var(--green);border-color:var(--green);color:#172719;font-weight:800;min-height:52px;width:100%;font-size:15px}.compact{width:auto;font-size:12px;min-height:44px}.back{background:none;border:0;font-size:11px;color:var(--muted);width:100%;margin-top:4px}.part-next{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:20px;margin-top:24px;gap:8px}.part-next>span{font-size:10px;color:var(--muted)}.part-next button{font-size:11px;background:transparent}.session{display:grid;gap:20px}.volume,.latest,.plan{border:1px solid var(--line);border-radius:14px;padding:22px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head h3{font-size:14px}.section-head>span{font-size:8px;letter-spacing:1px;color:var(--muted)}.volume{background:#1b2c2a}.volume-number{margin:22px 0;display:flex;gap:8px;align-items:baseline}.volume-number strong{font-size:52px;color:var(--green);font-weight:550;letter-spacing:-2px;font-variant-numeric:tabular-nums}.volume-number>span{font-size:14px;color:#a4b6a7}.volume-split{display:flex;gap:20px;font-size:11px;border-top:1px solid #384b40;padding-top:16px;color:#aab9ae}.volume-split b{color:#e2eddc;margin-left:8px}.volume .subtle{font-size:10px;margin-bottom:0}.latest{background:var(--panel)}#lastSet{font-size:13px;line-height:1.9;white-space:pre-line;overflow-wrap:anywhere;margin:20px 0}.empty{color:var(--muted)}.full{width:100%;margin-top:12px}.plan summary,.import summary{font-size:12px;font-weight:600;cursor:pointer;min-height:25px}.plan summary span{float:right;color:var(--muted)}.message:empty{display:none}.message{font-size:12px;line-height:1.7;padding:12px 14px;border:1px solid #48634b;border-radius:8px;color:#ceecbb;background:#1f312a}.error{color:#ffc4af;border-color:#a66b58}.big-value{text-align:center;display:flex;gap:8px;align-items:baseline;justify-content:center;margin:24px 0}.big-value output{font-size:52px;font-weight:650;letter-spacing:-1px;font-variant-numeric:tabular-nums}.big-value span{color:var(--muted);font-size:16px}.weight-grid,.rep-grid,.rpe-grid,.nudge-grid{display:grid;gap:7px}.weight-grid{grid-template-columns:repeat(4,1fr)}.rep-grid{grid-template-columns:repeat(3,1fr)}.rpe-grid{grid-template-columns:repeat(5,1fr)}.nudge-grid{grid-template-columns:repeat(4,1fr);margin-top:12px}.nudge-grid.two{grid-template-columns:repeat(2,1fr)}.weight-grid button,.rpe-grid button,.nudge-grid button{padding:11px 4px}.rpe-grid button{font-size:22px;min-height:58px}button[aria-pressed=true]:not([data-part]){background:var(--green);color:#172719;border-color:var(--green)}.scale{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:10px}.rpe-value{text-align:center;font-size:24px;color:var(--green);margin:26px 0}.review{margin:0}.review>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0;font-size:13px;gap:12px}.review dt{color:var(--muted)}.review dd{margin:0;text-align:right;font-weight:650;overflow-wrap:anywhere}.review button{font-size:10px;min-height:30px;padding:3px 6px;margin-left:8px;background:transparent}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.records{border-top:1px solid var(--line);margin-top:36px;padding-top:30px;scroll-margin-top:20px}.records h3{font-size:20px}.history{list-style:none;padding:0;margin:25px 0}.history li{display:grid;grid-template-columns:60px 1fr auto;gap:12px;border-bottom:1px solid var(--line);padding:16px 0;align-items:start}.history time{font-size:11px;color:var(--muted);padding-top:3px}.history b{font-size:14px}.history small{display:block;font-size:11px;line-height:1.8;margin-top:4px;overflow-wrap:anywhere}.history button{font-size:10px;min-height:34px;background:none;padding:6px 10px}.badge{font-size:9px;display:inline-block;background:#30413b;color:#d2edb0;border-radius:4px;padding:3px 6px;margin-bottom:7px}.record-actions{display:flex;gap:8px;flex-wrap:wrap}.record-actions button{font-size:11px;background:transparent}.import{margin-top:20px;padding:15px 0}.text-button{border:0;background:none;color:var(--muted);font-size:11px}footer{font-size:10px;color:var(--muted);line-height:1.9;margin:28px 0 12px}.import input{font-size:12px}dialog{width:min(530px,calc(100% - 24px));max-height:90vh;border:1px solid #596a75;border-radius:16px;padding:24px;background:#1b2834;color:inherit}dialog::backdrop{background:#071019cc}dialog .primary{margin-top:14px}
@media(min-width:1300px){main{padding:46px 60px}.workspace{gap:30px}.entry{padding:30px}.rail{padding:46px 30px}}
@media(max-width:1050px){.app{grid-template-columns:200px 1fr}.rail{padding:30px 18px}.brand{font-size:17px}.rail h1{font-size:24px}main{padding:30px 25px}.workspace{grid-template-columns:minmax(0,1fr)}.session{grid-template-columns:1fr 1fr}.plan{grid-column:1/-1}.entry{padding:25px}.step{min-height:0}.part-nav button b{font-size:12px}}
@media(max-width:700px){.app{display:block}.rail{position:static;height:auto;min-height:0;border-right:0;padding:20px 18px 0}.brand{font-size:20px}.brand-mark{font-size:34px;height:38px;line-height:35px;width:34px}.brand-mark span{font-size:29px}.brand small{font-size:8px}.rail-body{margin:20px 0 0}.rail h1,.rail-note,.rail .eyebrow,.rail-footer{display:none}.part-nav{display:flex;gap:6px}.part-nav button{flex:1;padding:12px 7px;grid-template-columns:1fr;gap:4px;text-align:center;border-color:var(--line);border-radius:10px}.part-nav button>span{grid-row:auto;font-size:9px}.part-nav button b{font-size:11px;white-space:nowrap}.part-nav button small{display:none}main{padding:24px 18px}.topbar{margin-bottom:18px}.topbar h2{font-size:23px}.topbar .eyebrow{font-size:9px}.topbar button{font-size:10px;padding:8px}.heart-strip{gap:12px;padding:12px}.heart-number{gap:4px;min-width:72px}.heart-number strong{font-size:25px}.heart{font-size:23px}.heart-number small{font-size:9px}.heart-status b{font-size:10px}.heart-status small{font-size:9px}.heart-strip button{font-size:10px;padding:8px}.workspace{margin-top:20px;gap:18px}.entry{padding:20px 18px}.entry-top .eyebrow{font-size:9px}.motion{font-size:9px!important}.step-title h3{font-size:20px}.session{gap:12px}.volume,.latest,.plan{padding:16px}.volume-number strong{font-size:37px}.volume-number{margin:16px 0}.section-head h3{font-size:12px}.volume .section-head{display:block}.volume .section-head>span{display:block;margin-top:6px}.volume-split{display:block;font-size:10px;line-height:1.9;padding-top:10px}.volume-split>span{display:block}.latest #lastSet{font-size:11px;margin:12px 0}.latest .section-head{display:block}.latest .section-head>span{display:block;margin-top:6px}.latest button{font-size:10px;padding:8px}.records{margin-top:26px}.records .section-head h3{font-size:18px}.compact{font-size:11px;padding:10px}.history{margin-top:14px}.history li{grid-template-columns:46px 1fr auto;gap:7px}.history time{font-size:9px}.history b{font-size:12px}.history small{font-size:10px}.history button{font-size:9px;padding:4px 8px}.big-value output{font-size:48px}.record-actions{display:grid;grid-template-columns:1fr 1fr}.part-next{margin-top:20px}.records .eyebrow{font-size:9px}.two-columns{gap:8px}}
@media(prefers-reduced-motion:reduce){.pulse-on .confirm{animation:none;box-shadow:0 0 0 1px #6ed2f0}}

/* iPhone 15 Pro / compact touchscreen usability — no changes to stored data. */
.quick-report{background:linear-gradient(135deg,#263d33,#1a343f);border:1px solid #658d70;border-radius:13px;padding:15px;margin:0 0 20px}
.quick-report-heading{display:flex;gap:7px;align-items:center;font-size:12px;color:#d6efca;font-weight:700;margin-bottom:10px}
.quick-report-heading .status-dot{width:7px;height:7px}
.quick-report strong{display:block;font-size:17px;line-height:1.5;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin-bottom:12px}
.quick-copy{width:100%;min-height:52px;background:var(--green);color:#152318;border-color:var(--green);font-size:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left}
.quick-copy span{font-size:18px}
.history li.empty{display:block;max-width:100%;white-space:normal;line-height:1.7}
button{ -webkit-tap-highlight-color:transparent; }
@media(max-width:700px){
  html{scroll-padding-top:12px;}
  body{min-height:100dvh;overflow-x:clip;}
  .rail{padding:calc(10px + env(safe-area-inset-top, 0px)) 16px 0;}
  .brand{font-size:18px;letter-spacing:1.6px;gap:8px;}
  .brand-mark{font-size:29px;line-height:32px;width:30px;height:34px;}
  .brand-mark span{font-size:26px;}
  .brand small{font-size:8px;letter-spacing:1.3px;margin-top:3px;}
  .rail-body{margin-top:13px;}
  .part-nav{gap:7px;}
  .part-nav button{min-width:0;min-height:55px;padding:7px 3px;gap:2px;border-radius:10px;}
  .part-nav button>span{font-size:10px;}
  .part-nav button b{font-size:12px;}
  main{padding:17px 16px calc(28px + env(safe-area-inset-bottom, 0px));}
  .topbar{gap:8px;margin-bottom:15px;}
  .topbar h2{font-size:22px;letter-spacing:.3px;}
  .topbar button{font-size:12px;min-height:46px;padding:7px 9px;white-space:nowrap;}
  .topbar .eyebrow{font-size:10px;}
  .heart-strip{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:13px;row-gap:10px;padding:12px 13px;}
  .heart-number{min-width:83px;}
  .heart-number strong{font-size:28px;}
  .heart-status{min-width:0;}
  .heart-status b{font-size:12px;line-height:1.5;overflow-wrap:anywhere;}
  .heart-status small{font-size:11px;line-height:1.5;}
  .heart-strip button{grid-column:1/-1;min-height:46px;font-size:13px;padding:9px;}
  #environment{font-size:11px;line-height:1.6;margin:7px 1px 0;}
  .workspace{margin-top:17px;gap:16px;}
  .entry{padding:17px 16px 18px;border-radius:15px;}
  .entry-top .eyebrow{font-size:10px;}
  .motion{font-size:11px!important;gap:5px;}
  .motion input,.check input{min-width:20px;width:20px;height:20px;}
  .steps{margin:16px 0 20px;gap:5px;}
  .steps li{font-size:11px;padding-bottom:9px;white-space:nowrap;}
  .step{min-height:0;}
  .step-title{margin-bottom:12px;}
  .step-title h3{font-size:21px;}
  .step-title>span{width:32px;height:32px;flex-shrink:0;}
  .subtle{font-size:12px;line-height:1.65;}
  label{font-size:13px;line-height:1.5;}
  select,input:not([type=checkbox]),textarea{font-size:16px;min-height:48px;padding:12px;}
  textarea{line-height:1.45;}
  .check{font-size:13px;line-height:1.5;min-height:44px;}
  .weight-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
  .rep-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
  .rpe-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;}
  .weight-grid button,.rep-grid button{min-width:0;min-height:58px;font-size:18px;padding:9px 2px;}
  .rpe-grid button{min-width:0;min-height:58px;font-size:20px;padding:8px 2px;}
  .nudge-grid{gap:8px;}
  .nudge-grid button{min-width:0;min-height:52px;font-size:15px;padding:8px 2px;}
  .big-value{margin:17px 0 21px;}
  .big-value output{font-size:54px;}
  .rpe-value{font-size:24px;margin:15px 0 20px;}
  .confirm{min-height:60px;font-size:19px;padding:12px 16px;position:sticky;bottom:calc(9px + env(safe-area-inset-bottom, 0px));z-index:3;margin-top:19px;box-shadow:0 8px 20px #071019aa;}
  .confirm span{font-size:13px;}
  .primary{min-height:56px;font-size:16px;}
  #save{position:sticky;bottom:calc(9px + env(safe-area-inset-bottom, 0px));z-index:3;box-shadow:0 8px 20px #071019aa;}
  .back{min-height:48px;font-size:13px;margin-top:6px;}
  .part-next{padding-top:15px;margin-top:18px;}
  .part-next>span{font-size:12px;}
  .part-next button{min-height:48px;font-size:13px;}
  .review>div{align-items:center;}
  .review button{min-height:44px;min-width:48px;font-size:12px;margin-left:10px;}
  .two-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .session{grid-template-columns:minmax(0,1fr);gap:12px;}
  .plan{grid-column:auto;}
  .volume,.latest,.plan{padding:17px;}
  .section-head h3{font-size:15px;}
  .volume .section-head,.latest .section-head{display:flex;align-items:center;}
  .volume .section-head>span,.latest .section-head>span{margin-top:0;font-size:10px;}
  .volume-number strong{font-size:42px;}
  .volume-split{display:flex;gap:18px;font-size:12px;}
  .volume-split>span{display:inline;}
  .latest #lastSet{font-size:14px;line-height:1.65;margin:13px 0;}
  .latest button{font-size:14px;min-height:52px;}
  .plan summary,.import summary{min-height:46px;line-height:46px;font-size:14px;}
  .records{margin-top:24px;padding-top:23px;}
  .records .section-head{flex-wrap:wrap;gap:12px;}
  .records .section-head h3{font-size:20px;}
  .records .section-head .compact{font-size:14px;min-height:48px;}
  .history li{grid-template-columns:45px minmax(0,1fr) auto;gap:8px;padding:13px 0;}
  .history time{font-size:11px;}
  .history b{font-size:14px;overflow-wrap:anywhere;}
  .history small{font-size:12px;}
  .history button{min-width:48px;min-height:44px;font-size:12px;padding:8px;}
  .badge{font-size:10px;}
  .record-actions{grid-template-columns:repeat(2,minmax(0,1fr));}
  .record-actions button{font-size:12px;min-height:48px;padding:8px;}
  .quick-report{margin-top:-2px;}
  .quick-report strong{font-size:17px;}
  footer{font-size:11px;line-height:1.75;}
  dialog{width:calc(100% - 16px);max-height:calc(100dvh - 20px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:17px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  dialog form{padding-bottom:env(safe-area-inset-bottom,0px);}
}
@media(max-width:360px){
  .part-nav button b{font-size:11px;}
  .topbar h2{font-size:20px;}
  .rpe-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;}
  .rpe-grid button{font-size:18px;}
  .two-columns{gap:7px;}
  .volume-split{gap:12px;}
}
@media(hover:none){button:hover{border-color:var(--line);}}
@media(prefers-reduced-motion:reduce){button{transition:none;}}

/* v2.2: gym-readable typography — iPhone 15 Pro / 393px.
   User-tested readability pass. No data/storage/business logic changes. */
@media (max-width:700px) {
  :root { --muted:#b4c2cd; }
  body { font-size:17px; line-height:1.55; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  small { font-size:14px; }
  .brand { font-size:21px; }
  .brand small { font-size:11px; letter-spacing:1px; }
  .rail-body { margin-top:16px; }
  .part-nav button { min-height:68px; padding:9px 3px; }
  .part-nav button > span { font-size:12px; }
  .part-nav button b { font-size:15px; line-height:1.35; white-space:normal; overflow-wrap:anywhere; }
  main { padding-top:20px; }
  .topbar h2 { font-size:26px; }
  .topbar .eyebrow { font-size:13px; }
  .topbar button { font-size:15px; min-height:50px; padding:9px 10px; }
  .topbar button span { font-size:13px; margin-left:3px; }
  .heart-number strong { font-size:33px; }
  .heart-number small { font-size:13px; }
  .heart-status b { font-size:16px; font-weight:650; }
  .heart-status small { font-size:14px; }
  .heart-strip button { font-size:16px; min-height:52px; font-weight:750; }
  #environment { font-size:14px; line-height:1.55; }
  .message { font-size:16px; line-height:1.6; }
  .entry-top .eyebrow { font-size:13px; }
  .motion { font-size:14px !important; }
  .steps { gap:5px; }
  .steps li { font-size:14px; font-weight:600; white-space:nowrap; }
  .step-title h3 { font-size:24px; }
  .step-title > span { font-size:15px; width:35px; height:35px; }
  .subtle, .volume .subtle { font-size:15px; line-height:1.75; }
  label { font-size:16px; font-weight:600; line-height:1.5; }
  .check { font-size:16px; line-height:1.55; }
  select, input:not([type=checkbox]), textarea { font-size:18px; min-height:54px; line-height:1.5; }
  .weight-grid button, .rep-grid button { font-size:21px; font-weight:750; min-height:65px; }
  .rpe-grid button { font-size:22px; min-height:64px; font-weight:750; }
  .nudge-grid button { font-size:18px; min-height:57px; }
  .big-value output { font-size:62px; }
  .big-value span { font-size:21px; }
  .rpe-value { font-size:27px; }
  .scale { font-size:16px; font-weight:650; }
  .quick-report-heading { font-size:16px; }
  .quick-report strong { font-size:21px; line-height:1.5; }
  .quick-copy { font-size:18px; font-weight:750; min-height:64px; line-height:1.4; }
  .quick-copy span { font-size:24px; }
  .confirm { font-size:22px; min-height:67px; }
  .confirm span { font-size:17px; font-weight:650; }
  .primary { font-size:19px; min-height:62px; }
  .back { font-size:16px; }
  .part-next > span { font-size:15px; }
  .part-next button { font-size:16px; min-height:54px; }
  .review > div { font-size:17px; line-height:1.6; }
  .review button { font-size:16px; min-width:50px; min-height:48px; }
  .section-head h3 { font-size:19px; }
  .section-head > span, .volume .section-head > span, .latest .section-head > span { font-size:13px; letter-spacing:0; }
  .volume-number strong { font-size:50px; }
  .volume-number > span { font-size:19px; }
  .volume-split { font-size:16px; gap:16px; flex-wrap:wrap; line-height:1.6; }
  .volume-split b { font-size:17px; }
  .latest #lastSet { font-size:18px; line-height:1.75; }
  .latest button { font-size:18px; min-height:58px; }
  .plan summary, .import summary { font-size:18px; line-height:1.5; min-height:54px; padding-top:12px; }
  .records .section-head h3 { font-size:23px; }
  .records .section-head .compact { font-size:17px; min-height:54px; }
  .history li { grid-template-columns:1fr auto; gap:5px 10px; padding:18px 0; }
  .history time { grid-column:1/-1; font-size:14px; padding-top:0; }
  .history li > div, .history li > section { min-width:0; }
  .history b { font-size:18px; line-height:1.5; }
  .history small { font-size:15px; line-height:1.65; }
  .history button { font-size:16px; min-height:50px; min-width:60px; }
  .badge { font-size:13px; line-height:1.4; }
  .record-actions { grid-template-columns:1fr 1fr; }
  .record-actions button { font-size:16px; min-height:55px; line-height:1.45; }
  .import input { font-size:16px; }
  .text-button { font-size:16px; }
  footer { font-size:14px; line-height:1.8; }
  dialog h3 { font-size:22px; }
  dialog .section-head .quiet { font-size:17px; }
  dialog .subtle, dialog .error { font-size:16px; }
}
@media (max-width:360px) {
  .part-nav button b { font-size:14px; }
  .topbar h2 { font-size:24px; }
  .topbar button { font-size:14px; padding:8px; }
  .steps li { font-size:13px; }
  .entry { padding-left:13px; padding-right:13px; }
  .rpe-grid { gap:5px; }
  .rpe-grid button { font-size:20px; }
  .volume-split { gap:10px; }
}
