:root{--bg:#0b0d0f;--panel:#15191d;--panel2:#1d2227;--line:#2b3239;--text:#f5f7f8;--muted:#94a0aa;--acid:#d7ff3f;--acid-dark:#1b2400;--danger:#ff6b64;--radius:20px}*{box-sizing:border-box}html{background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}body{margin:0;min-height:100vh;background:radial-gradient(circle at 80% -10%,#233000 0,transparent 28rem),var(--bg)}button,input,textarea,select{font:inherit}.app-shell{max-width:680px;margin:auto;min-height:100vh;padding:env(safe-area-inset-top) 18px calc(92px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 2px 18px}.topbar h1{font-size:2rem;letter-spacing:-.06em;margin:2px 0}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.16em;color:var(--acid)}.icon-button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--text);font-weight:900}.view{display:none}.view.active{display:block}.summary-card{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,var(--acid),#aee719);color:#111708;border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;box-shadow:0 15px 40px #0008}.summary-card>div:first-child{display:grid;gap:3px}.summary-kicker{font-size:.7rem;font-weight:900;letter-spacing:.15em;opacity:.6}.summary-card strong{font-size:1.1rem}.summary-stat{text-align:center;border-left:1px solid #1f2d0d33;padding-left:20px}.summary-stat strong{font-size:1.8rem;display:block;line-height:1}.summary-stat span{font-size:.75rem;font-weight:700;opacity:.65}.start-panel,.quick-card,.chart-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:14px}.start-panel{text-align:center;padding-top:28px}.start-mark{margin:auto;width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:var(--acid);color:#101500;font-size:1.4rem;font-weight:950;transform:rotate(-4deg)}h2{font-size:1.55rem;letter-spacing:-.04em;margin:14px 0 5px}.start-panel p,.dialog-copy{color:var(--muted);margin:0 0 20px;line-height:1.45}.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.template{background:var(--panel2);border:1px solid var(--line);color:var(--text);text-align:left;border-radius:15px;padding:16px;min-height:76px}.template:last-child{grid-column:1/-1}.template b,.template span{display:block}.template span{font-size:.78rem;color:var(--muted);margin-top:4px}.quick-card label{display:flex;justify-content:space-between;align-items:baseline}.quick-card label span{font-size:.75rem;color:var(--muted)}textarea,input,select{width:100%;background:#0e1113;border:1px solid var(--line);border-radius:13px;color:var(--text);padding:13px;margin-top:12px;outline:none}textarea:focus,input:focus,select:focus{border-color:var(--acid)}textarea{resize:vertical;line-height:1.45}.quick-actions{display:flex;gap:9px;margin-top:10px}.primary,.secondary,.finish-button,.add-exercise{border:0;border-radius:13px;padding:13px 16px;font-weight:800}.primary{background:var(--acid);color:#111700;flex:1}.secondary{background:var(--panel2);border:1px solid var(--line);color:var(--text)}.message{color:var(--acid);font-size:.8rem;margin:10px 0 0;min-height:1em}.hidden{display:none!important}.exercise-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:12px}.exercise-head{display:flex;justify-content:space-between;align-items:flex-start}.exercise-head h3{margin:0;font-size:1.17rem}.last{font-size:.75rem;color:var(--muted);margin-top:4px}.exercise-head button{background:transparent;color:var(--muted);border:0;font-size:1.4rem}.set-row{display:grid;grid-template-columns:28px 1fr 1fr 45px;gap:8px;align-items:center;margin-top:12px}.set-index{color:var(--muted);font-weight:800;text-align:center}.set-input{margin:0;text-align:center;padding:11px 5px}.unit-field{position:relative}.unit-field:after{content:attr(data-unit);position:absolute;right:9px;top:12px;color:var(--muted);font-size:.7rem;pointer-events:none}.unit-field input{padding-right:26px}.set-done{width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:var(--panel2);color:var(--muted);font-weight:900}.set-done.done{background:var(--acid);color:#101600;border-color:var(--acid)}.add-set{width:100%;margin-top:12px;background:transparent;color:var(--acid);border:1px dashed #5f7130;border-radius:12px;padding:10px;font-weight:750}.add-exercise{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--line);margin:2px 0 10px}.finish-button{width:100%;background:var(--acid);color:#111700;padding:16px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(680px,100%);height:74px;padding:8px 16px calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(3,1fr);background:#101316f2;border-top:1px solid var(--line);backdrop-filter:blur(16px);z-index:10}.nav-button{background:transparent;border:0;color:var(--muted);font-size:.72rem;font-weight:700;display:grid;place-items:center;gap:2px}.nav-button span{font-size:1.25rem}.nav-button.active{color:var(--acid)}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:4px 2px 18px}.section-heading h2{font-size:2rem;margin:3px 0}.pill{background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:7px 10px;color:var(--muted);font-size:.75rem}.history-item{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:17px;margin-bottom:10px}.history-date{display:flex;justify-content:space-between}.history-date strong{font-size:1rem}.history-date span{font-size:.75rem;color:var(--muted)}.history-exercises{margin-top:12px;color:#cdd3d7;font-size:.87rem;line-height:1.6}.empty-state{color:var(--muted);text-align:center;padding:50px 20px}.select-wrap{font-size:.75rem;color:var(--muted)}.select-wrap select{font-size:1rem;margin:6px 0 14px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:16px;display:grid;gap:7px}.metric.wide{grid-column:1/-1}.metric span,.metric small{color:var(--muted);font-size:.75rem}.metric strong{font-size:1.65rem}.chart-card h3{margin:0 0 20px}.chart{height:190px;display:flex;align-items:flex-end;gap:9px}.bar-wrap{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;min-width:0}.bar{width:100%;max-width:34px;min-height:4px;background:linear-gradient(var(--acid),#728814);border-radius:8px 8px 3px 3px}.bar-label{font-size:.65rem;color:var(--muted);white-space:nowrap}.bar-value{font-size:.65rem;font-weight:700}.timer-bar{position:fixed;z-index:20;bottom:78px;left:50%;transform:translateX(-50%);width:min(640px,calc(100% - 24px));background:var(--acid);color:#111700;padding:12px 16px;border-radius:15px;display:flex;align-items:center;gap:12px;box-shadow:0 12px 34px #0009}.timer-bar span{font-size:.65rem;font-weight:900;letter-spacing:.15em}.timer-bar strong{margin-right:auto;font-size:1.2rem}.timer-bar button{border:0;background:#151d08;color:var(--text);border-radius:9px;padding:7px 9px;font-size:.75rem;font-weight:800}dialog{width:min(460px,calc(100% - 28px));background:var(--panel);border:1px solid var(--line);border-radius:22px;color:var(--text);padding:20px}dialog::backdrop{background:#000b;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center}.dialog-head h2{margin:0}.dialog-head button{border:0;background:transparent;color:var(--muted);font-size:1.8rem}.suggestions{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.suggestions button{border:1px solid var(--line);background:var(--panel2);color:var(--muted);border-radius:999px;padding:7px 10px;font-size:.75rem}.full{width:100%;margin-top:8px}.menu-action{width:100%;display:flex;justify-content:space-between;background:var(--panel2);border:1px solid var(--line);color:var(--text);padding:15px;border-radius:13px;margin-top:9px;text-align:left}.file-action input{display:none}.danger{color:var(--danger)}.toast{position:fixed;top:20px;left:50%;transform:translate(-50%,-120px);background:#f5f7f8;color:#111;padding:11px 16px;border-radius:999px;font-weight:750;font-size:.82rem;z-index:40;transition:.25s}.toast.show{transform:translate(-50%,0)}@media(min-width:700px){.app-shell{padding-left:28px;padding-right:28px}.bottom-nav{border:1px solid var(--line);border-radius:20px 20px 0 0}.start-panel{padding:34px}.template:last-child{grid-column:auto}.template-grid{grid-template-columns:repeat(3,1fr)}}
 .trainer-portal-view{padding-bottom:20px}.trainer-portal-view .settings-card{margin-bottom:14px}.trainer-portal-actions{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:14px}.trainer-share-list{margin-top:14px;display:grid;gap:9px}.trainer-share-item{background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:12px;display:grid;gap:9px}.trainer-share-item code{display:block;overflow-wrap:anywhere;color:var(--muted);font-size:.75rem}.trainer-portal-view .menu-action{cursor:pointer}.trainer-portal-view .error,.trainer-access-card .error{color:var(--danger)}
.report-builder-dialog{width:min(980px,calc(100% - 20px));max-width:980px;padding:0;background:var(--bg)}.report-builder{padding:20px}.report-builder-head{display:flex;justify-content:space-between;gap:14px;align-items:start}.report-builder-head h2{margin:4px 0}.report-builder p,.report-fields small{color:var(--muted);font-size:.8rem}.report-builder-toolbar{display:flex;gap:8px;margin:15px 0}.report-builder-toolbar select{margin:0;flex:1}.report-builder-toolbar button{margin:0}.report-builder-layout{display:grid;grid-template-columns:170px 1fr;gap:14px}.report-fields,.report-drop{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:12px}.report-fields{display:grid;align-content:start;gap:7px}.report-fields>b{font-size:.9rem}.report-field{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:10px;text-align:left;padding:9px;font-size:.78rem;cursor:grab}.report-field small{font-size:.68rem}.report-drop-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.report-drop{min-height:72px}.report-drop>b{display:block;font-size:.75rem;color:var(--muted);margin-bottom:9px}.report-drop>b small{font-weight:400}.report-chips{display:flex;flex-wrap:wrap;gap:5px}.report-chip{display:inline-flex;align-items:center;gap:4px;background:var(--acid);color:#111700;border-radius:999px;padding:5px 8px;font-size:.72rem;font-weight:750}.report-chip button{border:0;background:transparent;color:inherit;font-weight:900;padding:0 2px}.report-controls{display:flex;gap:8px;align-items:end;margin:10px 0}.report-controls label{font-size:.7rem;color:var(--muted);flex:1}.report-controls select{margin:4px 0 0;padding:9px}.report-controls button{margin:0;white-space:nowrap}.report-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0}.report-summary div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px}.report-summary small{display:block;color:var(--muted);font-size:.65rem}.report-summary strong{display:block;margin-top:5px;font-size:1rem}.report-output{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:10px;overflow:auto}.report-chart-svg{min-width:560px}.report-chart-svg svg{width:100%;height:300px}.report-chart-svg line{stroke:var(--line)}.report-chart-svg text{fill:var(--muted);font-size:11px}.report-line{fill:none;stroke:var(--acid);stroke-width:3}.report-bar{fill:var(--acid)}.report-dot{fill:var(--acid)}.report-legend{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:.72rem}.report-table-wrap{overflow:auto}.report-table-wrap table{border-collapse:collapse;width:100%;font-size:.75rem}.report-table-wrap th,.report-table-wrap td{border-bottom:1px solid var(--line);padding:9px;text-align:right;white-space:nowrap}.report-table-wrap th:first-child{text-align:left}@media(max-width:650px){.report-builder-layout{grid-template-columns:1fr}.report-fields{grid-template-columns:repeat(2,1fr)}.report-fields>b,.report-fields>small{grid-column:1/-1}.report-controls{flex-wrap:wrap}.report-summary{grid-template-columns:1fr 1fr}}
