:root{--bg:#f1f5ed;--panel:#fff;--panel-2:#f6f9f2;--line:#0d4f3d1f;--line-strong:#0d4f3d3d;--chalk:#16281f;--steel:#5c6b60;--steel-dim:#8b978c;--green:#0d4f3d;--green-glow:#0d4f3d40;--sage:#4b916d;--sage-dim:#4b916d24;--sage-light:#97c693;--sage-pale:#97c69338;--amber:#d98f2b;--amber-dim:#d98f2b24;--red:#c23b3b;--red-dim:#c23b3b1f;--mono:"SF Mono","Roboto Mono","Consolas",monospace;--display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Inter,Arial,sans-serif;--radius:14px;--radius-sm:10px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(circle at 12% -10%, #97c69359, transparent 42%), radial-gradient(circle at 88% 6%, #0d4f3d14, transparent 45%), var(--bg);color:var(--chalk);font-family:var(--display);min-height:100vh;padding:28px 20px 60px;position:relative}body:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(#0d4f3d0d 1px,#0000 1px);background-size:28px 28px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 0,#000 0%,#0000 70%);mask-image:radial-gradient(circle at 50% 0,#000 0%,#0000 70%)}.wrap{z-index:1;max-width:920px;margin:0 auto;position:relative}header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;padding-bottom:20px;display:flex;position:relative}header:after{content:"";background:linear-gradient(90deg, var(--green), var(--sage-light), transparent);width:140px;height:1px;position:absolute;bottom:-1px;left:0}.brand{align-items:center;gap:12px;display:flex}.brand .mark{filter:drop-shadow(0 2px 6px #0d4f3d40);flex:none;width:34px;height:34px}.brand h1{font-family:var(--display);letter-spacing:.2px;background:linear-gradient(90deg, var(--green), var(--sage));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:21px;font-weight:800}.brand .tag{color:var(--steel);letter-spacing:.6px;margin-top:3px;font-size:11px}.client{text-align:right;color:var(--steel);font-size:12px}.client b{color:var(--chalk);font-weight:600}.source-tabs{border:1px solid var(--line);background:var(--panel);border-radius:999px;gap:2px;width:fit-content;margin-bottom:18px;padding:3px;display:flex;overflow:hidden;box-shadow:0 2px 10px #0d4f3d0f}.source-tabs span{color:var(--steel);cursor:pointer;border-radius:999px;padding:7px 16px;font-size:12px;font-weight:600;transition:color .15s}.source-tabs span.active{background:linear-gradient(135deg, var(--sage-dim), var(--sage-pale));color:var(--green);box-shadow:inset 0 0 0 1px var(--line-strong)}.import-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:22px;padding:18px;box-shadow:0 12px 30px #0d4f3d14}.import-panel p{color:var(--steel);margin:0 0 10px;font-size:12px;line-height:1.55}.import-panel textarea{background:var(--panel-2);border:1px solid var(--line-strong);width:100%;min-height:160px;color:var(--chalk);border-radius:var(--radius-sm);font-family:var(--mono);resize:vertical;padding:10px 12px;font-size:12px}.import-panel textarea:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-dim);outline:none}.import-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;display:flex}.import-status{color:var(--steel);font-size:12px}.sensor-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;padding:14px 16px;display:flex;box-shadow:0 12px 30px #0d4f3d14}.sensor-panel input[type=text]{background:var(--panel-2);border:1px solid var(--line-strong);min-width:200px;color:var(--chalk);border-radius:var(--radius-sm);font-family:var(--mono);flex:1;padding:8px 10px;font-size:12px}.sensor-panel input[type=text]:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-dim);outline:none}.sensor-status{color:var(--steel);align-items:center;gap:8px;font-size:12px;display:flex}.sensor-note{color:var(--steel-dim);width:100%;font-size:11px}.daybar{gap:10px;margin-bottom:18px;display:flex}.day-btn{background:var(--panel);border:1px solid var(--line);color:var(--steel);border-radius:var(--radius-sm);cursor:pointer;text-align:left;flex:1;padding:10px 14px;font-size:13px;font-weight:600;transition:border-color .15s;position:relative;box-shadow:0 2px 10px #0d4f3d0d}.day-btn small{color:var(--steel-dim);margin-top:2px;font-size:11px;font-weight:400;display:block}.day-btn.active{background:var(--panel-2);border-color:var(--green);color:var(--chalk);box-shadow:0 0 16px -6px var(--green-glow)}.day-btn.active:after{content:"";background:var(--green);width:7px;height:7px;box-shadow:0 0 6px var(--green-glow);border-radius:50%;position:absolute;top:12px;right:12px}.controls{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:22px;display:flex}.btn{background:var(--panel);border:1px solid var(--line-strong);color:var(--chalk);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:9px 18px;font-size:13px;font-weight:600;transition:border-color .15s,box-shadow .15s;display:inline-flex;box-shadow:0 2px 10px #0d4f3d0d}.btn:hover{border-color:var(--steel)}.btn.primary{background:linear-gradient(135deg, var(--green), var(--sage));color:#f4f9f1;box-shadow:0 4px 20px -4px var(--green-glow);border-color:#0000;font-weight:700}.btn.primary:hover{box-shadow:0 4px 26px -2px var(--green-glow)}.btn.danger{color:var(--red);border-color:var(--red-dim)}.btn.danger:hover{border-color:var(--red)}.btn:disabled{opacity:.4;cursor:not-allowed}.status-pill{color:var(--steel);align-items:center;gap:8px;margin-left:auto;font-size:12px;display:flex}.dot{background:var(--steel-dim);border-radius:50%;width:8px;height:8px}.dot.live{background:var(--green);box-shadow:0 0 8px var(--green-glow);animation:1.4s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.exercise{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;padding:16px 18px;transition:border-color .2s,box-shadow .2s;box-shadow:0 10px 26px #0d4f3d12}.exercise.current{border-color:var(--green);box-shadow:0 0 0 1px var(--green-glow), 0 10px 30px #0d4f3d1a}.ex-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.ex-head svg{flex:none}.ex-name{align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.group-badge{font-family:var(--mono);color:var(--amber);border:1px solid var(--amber);border-radius:6px;padding:1px 6px;font-size:11px}.review-badge{color:#2b1a03;background:var(--amber);letter-spacing:.3px;text-transform:uppercase;cursor:help;border-radius:6px;padding:1px 6px;font-size:10px;font-weight:700}.ex-hint{color:var(--steel-dim);font-size:11px;font-family:var(--mono);margin-top:2px}.sets-row{flex-wrap:wrap;gap:8px;display:flex}.set-pill{border:1px solid var(--line-strong);border-radius:var(--radius-sm);min-width:74px;font-family:var(--mono);text-align:center;color:var(--steel);background:var(--panel-2);padding:8px 10px;font-size:12px}.set-pill .n{color:var(--steel-dim);letter-spacing:.5px;text-transform:uppercase;font-size:10px}.set-pill .val{color:var(--chalk);margin-top:2px;font-size:15px;font-weight:600}.set-pill.done{background:var(--sage-dim);border-color:var(--sage)}.set-pill.done .val{color:var(--sage)}.set-pill.active{background:var(--sage-pale);border-color:var(--green);box-shadow:0 0 12px -4px var(--green-glow)}.set-pill.active .val{color:var(--green)}.edit-btn{color:var(--steel);cursor:pointer;background:0 0;border:none;flex:none;margin-left:auto;padding:2px 0;font-size:11px;text-decoration:underline}.edit-btn:hover{color:var(--green)}.edit-form{background:var(--panel-2);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:12px}.edit-form input[type=text]{background:var(--panel);border:1px solid var(--line-strong);width:100%;color:var(--chalk);border-radius:8px;margin-bottom:8px;padding:7px 9px;font-size:13px}.edit-form input[type=text]:focus{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-dim);outline:none}.edit-check{color:var(--steel);align-items:center;gap:6px;margin-bottom:10px;font-size:12px;display:flex}.edit-set-row{color:var(--steel);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;display:flex}.edit-set-row input[type=number]{background:var(--panel);border:1px solid var(--line-strong);width:56px;color:var(--chalk);font-family:var(--mono);border-radius:6px;padding:5px 6px;font-size:12px}.mini-btn{border:1px solid var(--line-strong);color:var(--steel);cursor:pointer;background:0 0;border-radius:6px;width:22px;height:22px;font-size:11px}.mini-btn:hover{border-color:var(--red);color:var(--red)}.edit-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.edit-actions .btn{padding:6px 14px;font-size:12px}.log-head{justify-content:space-between;align-items:center;margin:28px 0 10px;display:flex}.log-head h2{font-family:var(--display);letter-spacing:.6px;text-transform:uppercase;color:var(--steel);margin:0;font-size:13px}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;color:var(--steel-dim);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--line-strong);padding:6px 8px;font-size:11px;font-weight:600}tbody td{border-bottom:1px solid var(--line);font-family:var(--mono);padding:9px 8px}tbody tr:hover{background:var(--panel-2)}.delta-ok{color:var(--sage)}.delta-off{color:var(--amber)}.empty-log{color:var(--steel-dim);font-size:13px;font-family:var(--mono);padding:14px 8px}footer{color:var(--steel-dim);border-top:1px solid var(--line);margin-top:30px;padding-top:14px;font-size:11px;line-height:1.6}.history-entry{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;padding:14px 16px;box-shadow:0 10px 26px #0d4f3d12}.history-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:8px;display:flex}
