/* App usability updates. Keep the established visual style. */
.edit-numbers,.undo-set {display:block;min-height:44px;margin:8px auto 0;padding:10px 12px;background:none;border:0;color:#e7fe55;cursor:pointer;line-height:1.5}
.effort-entry,.duration-entry {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.effort-entry label,.duration-entry label,.target-effort {font:400 9px/1.5 var(--mono);letter-spacing:.07em;color:var(--ink-3)}
.effort-entry select,.duration-entry input,.field select {min-height:44px;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:8px 12px;background:#151922;color:#eceff4;font:400 16px/1.4 var(--sans)}
.field select {width:100%}.duration-entry input{width:90px}.duration-entry #workTimer{width:100%;font:400 40px/1.3 var(--mono);text-align:center;color:#e7fe55}.duration-entry button{margin:auto}
.target-effort {text-align:center;margin-top:8px}.hero-top{line-height:1.5!important;gap:10px;align-items:flex-start}.hero-top .r{line-height:1.5;white-space:normal;overflow-wrap:anywhere;text-align:right}
.train .hero p{line-height:1.5}.train .hero>.btn-ghost{display:block;width:100%;margin-top:12px}.train .hero h2{font-size:22px;line-height:1.2}
.train-foot{line-height:1.5!important}.screen input,.screen select{font-size:16px}
.ruler,.ruler-track{touch-action:none}.hero#liveCard{touch-action:pan-y}
.effort-entry{display:block;margin-top:0}.effort-entry summary{cursor:pointer;min-height:40px;padding:10px 0;box-sizing:border-box;font:400 10px/1.5 var(--mono);color:var(--ink-3);text-align:center}
.effort-entry label{display:block;margin:8px 0}.effort-entry select{width:100%;margin-bottom:10px}
.frame.session .screen{overflow-y:auto;overscroll-behavior-y:contain;padding-bottom:30px}
.frame.session .train{height:auto;min-height:100%}.frame.session .train .hero{flex:0 0 auto}
.frame.session .train .mm{height:110px;flex:0 0 110px;min-height:0}
.frame.session .train .train-top{min-height:32px;flex-shrink:0}
.train .hero .btn,.train .hero .btn-ghost{flex-shrink:0;min-height:48px}
.undo-set{margin-top:8px}.set-dots .n{line-height:1.5;letter-spacing:.06em}
@media(max-height:700px){.frame.session .train .mm{height:80px;flex-basis:80px}.frame.session .hero.sm{padding:24px}}
.recovery-card .mm{opacity:1}
.recovery-card{display:block;width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer;appearance:none}
.recovery-card:focus-visible{outline:2px solid #8cafdf;outline-offset:4px}
.recovery-link{display:block;margin-top:18px;font:400 10px/1.5 var(--mono);letter-spacing:.08em;color:#a5c4ee}
.recovery-detail h2{font-size:21px;margin:0}.recovery-detail .row-head{align-items:center;gap:10px}
.recovery-list{list-style:none;margin:20px 0;padding:0}
.recovery-list li{padding:18px 0;border-bottom:1px solid rgba(255,255,255,.1)}
.recovery-row{display:flex;justify-content:space-between;gap:16px}
.recovery-curve{margin-top:14px}.recovery-curve svg{display:block;width:100%;height:72px;overflow:visible}
.recovery-curve-labels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.recovery-list .recovery-curve-labels span{font-size:11px;color:#c1cad8;margin:4px 0 0}
.recovery-curve-labels span:nth-child(2){text-align:center}.recovery-curve-labels span:last-child{text-align:right}
.recovery-curve-labels small{display:block;font-size:9px;line-height:1.6;color:var(--ink-3)}
.recovery-list strong{display:block;font-size:12px;font-weight:500;color:var(--ink)}
.recovery-list span{display:block;font-size:11px;line-height:1.5;margin-top:5px;color:var(--ink-3)}
.recovery-time{text-align:right;flex-shrink:0}.recovery-time strong{font-size:16px;color:#a5c4ee}
.recovery-scale{display:flex;align-items:center;gap:10px;margin:10px 0 16px;font:400 9px/1.4 var(--mono);letter-spacing:.1em;color:var(--ink-2)}
.recovery-scale i{flex:1;height:5px;border-radius:8px;background:linear-gradient(90deg,#66D28F,#F2CE5B,#EF6464)}
.recovery-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-top:12px}
.recovery-values span{display:flex;align-items:center;justify-content:space-between;gap:6px;font:400 9px/1.5 var(--mono);color:var(--ink-2)}
.recovery-values strong{color:var(--ink);font-size:12px;font-weight:500}
.recovery-note{font-size:12px;line-height:1.5;color:var(--ink-3);margin:14px 0 0}

/* Training balance: individual muscles and an explicit third activity bucket. */
.bal-volume-group { margin-top: 20px; }
.bal-volume-group .bal-v { grid-template-columns: minmax(95px, 1.2fr) 1fr 34px; }
.bal-volume-group .bal-v-n { overflow-wrap: anywhere; }
.bal-split .other, .bal-key .other, .bal-act.other i { background: #7C8798; }
.bal-flag { display: inline-block; margin-top: 5px; }

/* Adjustable weekly training reference. */
.bal-target-form { display: grid; gap: 14px; margin: 18px 0; }
.bal-target-form label { display: grid; gap: 7px; font-size: 12px; color: var(--ink-2); }
.bal-target-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bal-target-form input, .bal-target-form select { width: 100%; min-width: 0; min-height: 44px; padding: 10px; border: 1px solid var(--glass-line); border-radius: 10px; background: #1b1f27; color: var(--ink); font: inherit; font-size: 16px; }
.bal-target-form button { min-height: 44px; }
.bal-target-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.bal-target-table th, .bal-target-table td { padding: 10px 3px; border-bottom: 1px solid var(--glass-line); text-align: right; }
.bal-target-table th:first-child { text-align: left; }
.bal-target-table small { display: block; font-weight: 400; font-size: 10px; color: var(--ink-3); margin-top: 4px; }
