[hidden]{display:none!important}
:root{
  --bg:#E9ECE8; --surface:#F7F8F5; --ink:#1D272C; --muted:#5E6A70; --line:#C9D0CB; --danger:#B3261E;
  --p0:#2C58A0; --p1:#2B7A57; --p2:#7B3C8C; --p3:#1F6F84; --p4:#9A5B12; --p5:#A23B5B;
  --done-ink:#FFFFFF; --accent:var(--p0); --tabs-h:62px;
  color-scheme:light; box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#151B1E; --surface:#1E262A; --ink:#E6EBE7; --muted:#9AA6AB; --line:#334047; --danger:#F2867F;
    --p0:#6E9BE6; --p1:#5DBB8E; --p2:#C489D3; --p3:#5BB5CC; --p4:#E0A458; --p5:#E68AA6;
    --done-ink:#10161A; color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#151B1E; --surface:#1E262A; --ink:#E6EBE7; --muted:#9AA6AB; --line:#334047; --danger:#F2867F;
  --p0:#6E9BE6; --p1:#5DBB8E; --p2:#C489D3; --p3:#5BB5CC; --p4:#E0A458; --p5:#E68AA6;
  --done-ink:#10161A; color-scheme:dark;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.45 Barlow,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-tap-highlight-color:transparent}
#app{max-width:640px;margin:0 auto;padding:18px 16px calc(var(--tabs-h) + 120px + env(safe-area-inset-bottom,0px))}
.boot{color:var(--muted);text-align:center;margin-top:30vh}
h1,h2,h3,.cond{font-family:"Barlow Condensed","Arial Narrow",Barlow,sans-serif}
h1{font-size:38px;line-height:1;margin:6px 0 4px;font-weight:800;letter-spacing:-.01em}
.lead{margin:0;color:var(--muted);font-size:15px}
.eyebrow{margin:0;color:var(--muted);font-size:14px}
.eyebrow::first-letter{text-transform:uppercase}
a{color:var(--accent)}
button{font:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}

/* buttons */
.btn{appearance:none;font:600 16px/1 Barlow,sans-serif;min-height:48px;padding:0 18px;border-radius:12px;cursor:pointer;border:2px solid var(--ink);background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--done-ink)}
.btn.ghost{border-color:var(--line)}
.btn.danger{border-color:var(--danger);color:var(--danger)}
.btn.small{min-height:38px;padding:0 12px;font-size:14px;border-radius:10px}
.btn.wide{width:100%}
.btn[disabled]{opacity:.5;cursor:default}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.row > .grow{flex:1}

/* forms */
label.f{display:block;font-size:14px;font-weight:600;margin:14px 0 6px}
input.in,select.in,textarea.in{width:100%;min-height:48px;border-radius:12px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:500 17px/1.3 Barlow,sans-serif;padding:10px 12px}
textarea.in{min-height:84px;resize:vertical}
input.in:focus,select.in:focus,textarea.in:focus{outline:none;border-color:var(--accent)}
.err{color:var(--danger);font-size:14px;font-weight:600;min-height:20px;margin:10px 0 0}
.hint-s{font-size:13px;color:var(--muted);margin:6px 0 0}

/* auth */
.auth{max-width:420px;margin:8vh auto 0}
.brand{font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:56px;line-height:.9;margin:0;color:var(--p0)}
.brand span{color:var(--ink)}
.switch{margin-top:18px;font-size:15px;color:var(--muted)}
.switch button{appearance:none;border:none;background:none;color:var(--accent);font-weight:600;cursor:pointer;padding:4px;text-decoration:underline}

/* picker */
.picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:18px 0 6px}
.pick{appearance:none;border:2px solid var(--line);background:var(--surface);color:var(--ink);border-radius:14px;padding:10px 10px 9px;text-align:left;cursor:pointer;font:inherit;position:relative;min-height:92px}
.pick .letter{font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:28px;line-height:1;color:var(--k);display:block;padding-right:58px}
.pick .what{display:block;font-size:13px;font-weight:600;line-height:1.2;margin-top:4px}
.pick .when{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.pick[aria-pressed="true"]{border-color:var(--k);background:var(--k);color:var(--done-ink)}
.pick[aria-pressed="true"] .letter,.pick[aria-pressed="true"] .when{color:var(--done-ink)}
.pick .next{position:absolute;top:9px;right:8px;font-size:11px;font-weight:600;padding:1px 7px;border-radius:99px;background:var(--k);color:var(--done-ink)}
.pick[aria-pressed="true"] .next{background:var(--done-ink);color:var(--k)}

.progress{margin:16px 0 4px;display:flex;align-items:baseline;gap:10px}
.progress .big{font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:34px;line-height:1;color:var(--accent)}
.progress .lbl{color:var(--muted);font-size:14px}
.bar{height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent);width:0;transition:width .3s ease}

/* workout */
.group{margin-top:22px}
.group.bi{border-left:4px solid var(--accent);padding-left:12px}
.group .tag{font-size:13px;font-weight:600;color:var(--accent);margin:0 0 2px}
.ex{padding:10px 0 12px;border-bottom:1px solid var(--line)}
.group.bi .ex:last-child{border-bottom:none}
.ex h2{font-size:23px;line-height:1.1;margin:0;font-weight:700}
.ex .meta{font-size:14px;color:var(--muted);margin:3px 0 10px}
.ex .meta b{color:var(--ink);font-weight:600}
.ex.complete h2{color:var(--muted);text-decoration:line-through;text-decoration-thickness:2px}
.sets{display:flex;gap:8px;flex-wrap:wrap}
.set{appearance:none;font:600 15px/1 Barlow,sans-serif;min-width:64px;height:48px;padding:0 12px;border-radius:12px;border:2px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer}
.set[aria-pressed="true"]{background:var(--accent);color:var(--done-ink)}
details.how{margin-top:10px}
details summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--muted);list-style:none;display:inline-block;padding:4px 0}
details summary::-webkit-details-marker{display:none}
details summary::before{content:"+ "}
details[open] summary::before{content:"− "}
details p{margin:6px 0 0;font-size:15px;max-width:60ch}
.load{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.load label{font-size:14px;font-weight:600}
.load input{width:92px;height:44px;border-radius:10px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:600 18px/1 Barlow,sans-serif;padding:0 10px;text-align:right}
.load input:focus{outline:none;border-color:var(--accent)}
.load .unit{font-size:14px;color:var(--muted)}
.hint{font-size:14px;margin:-4px 0 10px;color:var(--muted)}
.hint.up{color:var(--accent);font-weight:600}
.evo{list-style:none;margin:6px 0 0;padding:0;font-size:14px}
.evo li{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px dashed var(--line)}
.evo li span:last-child{color:var(--muted);text-align:right}
.clock{display:flex;align-items:center;gap:12px;margin:0 0 10px}
.clock .go{appearance:none;font:600 16px/1 Barlow,sans-serif;height:48px;padding:0 16px;border-radius:12px;border:2px solid var(--accent);background:var(--accent);color:var(--done-ink);cursor:pointer}
.clock .go.stop{background:transparent;color:var(--accent)}
.clock .num{font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:44px;line-height:1;font-variant-numeric:tabular-nums;color:var(--accent);min-width:70px}
.clock .st{font-size:14px;color:var(--muted);line-height:1.2}
.extra{margin-top:26px;padding:14px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.extra h2{font-size:21px;margin:0 0 2px}
.extra p{margin:0 0 10px;font-size:14px;color:var(--muted)}
.actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
.actions .btn.primary{flex:1}
.sync{margin-top:18px;font-size:12px;color:var(--muted)}
.empty{color:var(--muted);font-size:15px;padding:18px 0}

/* figures */
.fig{display:block;width:100%;max-width:320px;height:auto;margin:10px 0 2px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.fig .bd{stroke:var(--ink);stroke-width:6;stroke-linecap:round;fill:none}
.fig .hd{fill:var(--ink)}
.fig .eq{stroke:var(--muted);stroke-width:4;stroke-linecap:round;fill:none;opacity:.75}
.fig .eqf{fill:var(--muted);opacity:.75}
.fig .ac{stroke:var(--accent);stroke-width:5;stroke-linecap:round;fill:none}
.fig .acf{fill:var(--accent)}
.fig .cb{stroke:var(--accent);stroke-width:1.6;stroke-dasharray:4 3;fill:none}
.fig .gr{stroke:var(--line);stroke-width:2}
.fig .gh{opacity:.22}
.figcap{font-size:13px;color:var(--muted);margin:2px 0 0}

/* lists */
.list{list-style:none;margin:16px 0 0;padding:0}
.list > li{border-bottom:1px solid var(--line)}
.plan-row{display:flex;align-items:center;gap:12px;padding:14px 0}
.plan-row .sw{width:10px;align-self:stretch;border-radius:6px;background:var(--k)}
.plan-row .tx{flex:1;min-width:0}
.plan-row h3{margin:0;font-size:24px;line-height:1.1}
.plan-row p{margin:2px 0 0;font-size:14px;color:var(--muted)}
.hist-row{padding:12px 0;display:flex;gap:10px;justify-content:space-between;align-items:flex-start}
.hist-row h3{margin:0;font-size:20px;line-height:1.15}
.hist-row p{margin:2px 0 0;font-size:13px;color:var(--muted)}
.hist-row .when{font-size:14px;color:var(--muted);text-align:right;white-space:nowrap}
.sec-title{font-size:24px;margin:30px 0 0}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px}
.stat b{display:block;font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:30px;line-height:1;color:var(--accent)}
.stat span{font-size:13px;color:var(--muted)}
.evo-ex summary{display:flex;justify-content:space-between;gap:10px;width:100%;color:var(--ink);font-size:16px;padding:12px 0}
.evo-ex summary::before{content:none}
.evo-ex summary .d{color:var(--muted);font-weight:500;white-space:nowrap}
.evo-ex summary .d.up{color:var(--accent);font-weight:600}
.spark{display:block;width:100%;height:56px;margin:4px 0 6px}
.spark polyline{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.spark circle{fill:var(--accent)}

/* editor */
.ed-item{padding:12px 0;border-bottom:1px solid var(--line)}
.ed-item.linked{border-bottom:none;padding-bottom:4px}
.ed-item.in-bi{border-left:4px solid var(--accent);padding-left:10px}
.ed-head{display:flex;gap:8px;align-items:flex-start}
.ed-head h3{flex:1;margin:0;font-size:20px;line-height:1.15}
.ed-head p{margin:2px 0 0;font-size:13px;color:var(--muted);font-family:Barlow,sans-serif}
.ed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.ed-grid label{font-size:12px;font-weight:600;color:var(--muted);display:block}
.ed-grid input,.ed-grid select{width:100%;height:44px;border-radius:10px;border:2px solid var(--line);background:var(--surface);color:var(--ink);font:600 16px/1 Barlow,sans-serif;padding:0 8px;margin-top:3px}
.ed-grid input:focus,.ed-grid select:focus{outline:none;border-color:var(--accent)}
.ed-tools{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;align-items:center}
.icon-btn{appearance:none;width:40px;height:38px;border-radius:10px;border:2px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;font-size:17px;line-height:1}
.chk{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;cursor:pointer;margin-left:auto;padding:6px 0}
.chk input{width:22px;height:22px;accent-color:var(--accent)}
.stick{position:sticky;bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom,0px) + 8px);margin-top:18px;z-index:5}
.stick .btn{box-shadow:0 6px 18px rgba(0,0,0,.18)}

/* sheet (biblioteca) */
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:40}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;max-height:88vh;display:flex;flex-direction:column;background:var(--bg);border-radius:18px 18px 0 0;padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));max-width:680px;margin:0 auto}
.sheet h2{margin:0;font-size:26px}
.sheet .scroll{overflow-y:auto;flex:1;margin-top:10px;-webkit-overflow-scrolling:touch}
.chips{display:flex;gap:6px;overflow-x:auto;padding:10px 0 4px;scrollbar-width:none}
.chip{appearance:none;flex:none;border:2px solid var(--line);background:transparent;color:var(--ink);border-radius:99px;padding:6px 12px;font:600 14px/1 Barlow,sans-serif;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--done-ink)}
.lib-item{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.lib-item .tx{flex:1;min-width:0}
.lib-item b{display:block;font-size:16px}
.lib-item span{font-size:13px;color:var(--muted)}
.lib-group{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:18px;margin:16px 0 0;color:var(--muted)}
.added{color:var(--accent);font-weight:600;font-size:14px}

/* tabs, rest, toast */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:center;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.tabs a{flex:1;max-width:160px;height:var(--tabs-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--muted);font-size:13px;font-weight:600}
.tabs a .ti{font-size:18px;line-height:1}
.tabs a[aria-current="page"]{color:var(--accent)}
.rest{position:fixed;left:0;right:0;bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom,0px));z-index:19;background:var(--ink);color:var(--bg);padding:10px 16px;transform:translateY(160%);transition:transform .25s ease}
.rest:not(.on){visibility:hidden;transition:transform .25s ease,visibility 0s .25s}
.rest.on{transform:none}
.rest .in{max-width:640px;margin:0 auto;display:flex;align-items:center;gap:10px}
.rest .t{font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:36px;line-height:1;min-width:80px;font-variant-numeric:tabular-nums}
.rest .l{flex:1;font-size:14px;line-height:1.2}
.rest button{appearance:none;font:600 15px/1 Barlow,sans-serif;height:40px;min-width:46px;padding:0 10px;border-radius:10px;border:2px solid var(--bg);background:transparent;color:var(--bg);cursor:pointer}
.rest.go{background:var(--accent);color:var(--done-ink)}
.rest.go button{border-color:var(--done-ink);color:var(--done-ink)}
.toast{position:fixed;left:50%;top:calc(14px + env(safe-area-inset-top,0px));transform:translate(-50%,-160%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:12px;font-weight:600;z-index:60;transition:transform .25s ease;max-width:90vw}
.toast.on{transform:translate(-50%,0)}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}
