:root{
  --bg:#121722;--surface:#1A2130;--raised:#222B3C;--line:#2C364A;--text:#E9EDF4;--muted:#8E98AC;
  --z1:#5B8DEF;--z2:#2EC4B6;--z3:#F2C14E;--z4:#F28C38;--z5:#E5484D;
  --load:#F2C14E;--body:#2EC4B6;--good:#4ADE9B;--bad:#F2786E;
  color-scheme:dark;
  --bodybase:var(--raised);--bodyline:var(--text);--bodybg:transparent;--logo:#F28C38;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#121722;--surface:#1A2130;--raised:#222B3C;--line:#2C364A;--text:#E9EDF4;--muted:#8E98AC;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#121722;--surface:#1A2130;--raised:#222B3C;--line:#2C364A;--text:#E9EDF4;--muted:#8E98AC;color-scheme:dark}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){--logo:#172033;--bg:#EEF1F6;--surface:#FFFFFF;--raised:#F4F6FA;--line:#D9DFEA;--text:#172033;--muted:#5E6A80;--load:#C98A0B;--body:#12988C;--good:#14945F;--bad:#C8443A;color-scheme:light}}
:root[data-theme="light"]{--logo:#172033;--bg:#EEF1F6;--surface:#FFFFFF;--raised:#F4F6FA;--line:#D9DFEA;--text:#172033;--muted:#5E6A80;--load:#C98A0B;--body:#12988C;--good:#14945F;--bad:#C8443A;color-scheme:light}
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--text);font:400 15px/1.5 Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
.wrap{max-width:980px;margin:0 auto;padding:20px 18px 120px}
h1,h2,h3,.num{font-family:"Barlow Condensed","Arial Narrow",Barlow,sans-serif;font-weight:600;letter-spacing:.01em;margin:0}
h1{font-size:22px;font-weight:600}
h2{font-size:26px;margin:34px 0 4px}
h3{font-size:19px}
.sub{color:var(--muted);font-size:14px;margin:0 0 14px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--z2);outline-offset:2px;border-radius:6px}
/* topo */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.top .who{color:var(--muted);font-size:14px}
.btn{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 14px;font-weight:600}
.btn.primary{background:var(--text);color:var(--bg);border-color:var(--text)}
.btn.ghost{background:transparent}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--line))}
/* faixa de zonas: assinatura */
.zones{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--line)}
.zones span{display:block;height:100%}
.zl{background:var(--z1)}.zi{background:var(--z2)}.za{background:var(--z3)}.zn{background:var(--z4)}.zv{background:var(--z5)}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--muted);margin-top:8px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
/* hero */
.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;align-items:end;margin:18px 0 8px}
.big{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:clamp(64px,16vw,112px);line-height:.85}
.big small{font-size:.32em;font-weight:600;color:var(--muted);margin-left:8px}
.heroside{display:grid;gap:10px}
.stat{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding:6px 0}
.stat b{font-family:"Barlow Condensed",sans-serif;font-size:24px;font-weight:600}
.stat span{color:var(--muted);font-size:14px}
.delta{font-size:13px;font-weight:600;margin-left:6px}
.delta.good{color:var(--good)}.delta.bad{color:var(--bad)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px}
.chart{position:relative;height:240px}
.chart.tall{height:300px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
/* listas */
.rows{display:grid;gap:2px}
.row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--line);background:none;border-left:0;border-right:0;border-top:0;text-align:left;width:100%}
.row:hover{background:color-mix(in srgb,var(--surface) 70%,transparent)}
.row .t{font-weight:600}
.row .m{color:var(--muted);font-size:13px}
.row .r{text-align:right}
.row .r b{font-family:"Barlow Condensed",sans-serif;font-size:22px;font-weight:600;color:var(--load)}
.spark{width:90px;height:28px;display:block}
.trend{display:grid;grid-template-columns:1fr auto 96px;gap:12px;align-items:center}
.search{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);margin:6px 0 10px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 4px}
.chip{border:1px solid var(--line);background:transparent;border-radius:999px;padding:5px 12px;font-size:13px}
.chip[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
/* sessão */
.sess{border-bottom:1px solid var(--line)}
.sess>button{all:unset;display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:12px 4px;width:100%;box-sizing:border-box;cursor:pointer}
.sess>button:focus-visible{outline:2px solid var(--z2)}
.date{font-family:"Barlow Condensed",sans-serif;line-height:1}
.date b{font-size:26px;font-weight:700;display:block}
.date span{font-size:13px;color:var(--muted)}
.sess .meta{color:var(--muted);font-size:13px;display:flex;gap:10px;flex-wrap:wrap}
.sess .zones{margin-top:6px;height:6px}
.detail{padding:4px 4px 18px 80px;display:none}
.sess.open .detail{display:block}
.block{margin:10px 0}
.block h4{margin:0 0 4px;font-size:14px;color:var(--muted);font-weight:600}
.block .res{font-size:13px;color:var(--z3)}
.item{display:flex;justify-content:space-between;gap:10px;padding:3px 0;font-size:14px}
.item .q{color:var(--muted);white-space:nowrap}
.item .kg{color:var(--load);font-weight:600;white-space:nowrap}
.month{font-family:"Barlow Condensed",sans-serif;font-size:20px;margin:24px 0 2px;color:var(--muted);font-weight:600}
.tag{display:inline-block;font-size:12px;border:1px solid var(--line);border-radius:6px;padding:0 6px;color:var(--muted)}
.tag.run{color:var(--z2);border-color:color-mix(in srgb,var(--z2) 50%,var(--line))}
.tag.new{color:var(--z3);border-color:color-mix(in srgb,var(--z3) 50%,var(--line))}
/* tabela */
.tablewrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th:first-child,td:first-child{text-align:left}
th{color:var(--muted);font-weight:500}
/* nav */
nav.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
nav.tabs .in{max-width:980px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr auto 1fr 1fr;align-items:end;gap:2px;padding:6px 10px 8px}
nav.tabs button.tab{background:none;border:0;padding:6px 2px 2px;color:var(--muted);font-weight:600;font-size:11.5px;border-radius:10px;display:grid;justify-items:center;gap:3px}
nav.tabs button.tab[aria-current="page"]{color:var(--z4)}
.fab{border:0;background:var(--z2);color:#06221F;border-radius:50%;width:62px;height:62px;padding:0;display:grid;place-items:center;margin:0 8px;transform:translateY(-18px);box-shadow:0 6px 18px rgba(0,0,0,.35),0 0 0 5px var(--bg)}
/* modal */
dialog{border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:16px;padding:0;width:min(720px,94vw);max-height:90vh}
dialog::backdrop{background:rgba(5,8,14,.6)}
.mh{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:2}
.mb{padding:16px;overflow:auto}
textarea{width:100%;min-height:220px;border-radius:12px;border:1px solid var(--line);background:var(--surface);padding:12px;resize:vertical}
.form{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.form label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.form input{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;width:100%;min-width:0}
.form label{min-width:0}
.edrow input,.edbh input{min-width:0}
.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}
.note{font-size:13px;color:var(--muted)}
.empty{padding:40px 0;color:var(--muted);text-align:center}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));background:var(--text);color:var(--bg);padding:10px 16px;border-radius:10px;font-weight:600;z-index:50;display:none}
.prev .item select{max-width:180px;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:2px 4px;font-size:13px}
.metric-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.metric{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface)}
.metric .v{font-family:"Barlow Condensed",sans-serif;font-size:28px;font-weight:600;line-height:1.1}
.metric .l{font-size:13px;color:var(--muted)}
.metric .f{font-size:12px;color:var(--muted);margin-top:4px}
@media (max-width:640px){
  .hero{grid-template-columns:1fr}
  .grid2{grid-template-columns:1fr}
  .detail{padding-left:4px}
  .trend{grid-template-columns:1fr auto}
  .trend .spark{display:none}
  nav.tabs button.tab{background:none;border:0;padding:6px 2px 2px;color:var(--muted);font-weight:600;font-size:11.5px;border-radius:10px;display:grid;justify-items:center;gap:3px}
}
body.signed-out nav.tabs{display:none}
.iconbtn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--text);display:grid;place-items:center;padding:0}
.iconbtn svg{display:block}
.who#status{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin:-2px 0 4px;font-size:13px;color:var(--muted);text-align:right}
.who#status .linkbtn{font-size:13px}
.btn.small{padding:5px 10px;font-size:13px}
.per{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 4px}
.pernav{display:flex;align-items:center;gap:6px}
.pernav b{font-family:"Barlow Condensed",sans-serif;font-size:19px;font-weight:600;min-width:9ch;text-align:center}
.pernav .btn{padding:4px 12px;font-size:18px;line-height:1}
.pernav .btn:disabled{opacity:.3;cursor:default}
.lifetime.four{grid-template-columns:repeat(4,1fr);gap:8px}
.lifetime.four b{font-size:clamp(22px,6vw,34px)}
.hero2{margin:14px 0 8px}
.herohead{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.herohead .sub{margin:0}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:2px}
.kpi span{font-size:13px;color:var(--muted)}
.kpi b{font-family:"Barlow Condensed",sans-serif;font-size:26px;font-weight:600;line-height:1.1}
.kpi .delta{margin:0;font-size:12px}
.kpi .delta.good{color:var(--good)}.kpi .delta.bad{color:var(--bad)}
.ztot{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-top:12px}
.ztot div{border-left:3px solid var(--line);padding-left:8px;display:grid}
.ztot div.all{border-color:var(--text)}
.ztot b{font-family:"Barlow Condensed",sans-serif;font-size:22px;font-weight:600}
.ztot span{font-size:12px;color:var(--muted)}
.btn.accent{background:var(--load);color:#1A1405;border-color:var(--load)}
.mgwrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:16px;align-items:start;margin-top:10px}
.bodies{background:transparent;padding:4px 0}
.blines{pointer-events:none}
.blines .bl-f{fill:var(--bodyline)}
.blines .bl-s{fill:none;stroke:var(--bodyline);stroke-width:.8;stroke-linecap:round;stroke-linejoin:round}
.bodysvg{width:100%;height:auto;display:block}
.mglist{display:grid;gap:2px}
.mgrow{min-width:0;display:grid;grid-template-columns:minmax(80px,110px) minmax(40px,1fr) 40px 70px;align-items:center;gap:10px;background:none;border:0;border-radius:8px;padding:6px 8px;text-align:left;font-size:14px}
.mgrow.on,.mgrow:hover{background:var(--surface)}
.mgrow .bar{height:8px;background:var(--line);border-radius:4px;overflow:hidden}
.mgrow .bar i{display:block;height:100%;background:var(--z4);border-radius:4px}
.mgrow b{font-family:"Barlow Condensed",sans-serif;font-size:18px;text-align:right}
.mgex{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-top:8px}
.mgex h4{margin:0 0 6px;font-size:14px}
details.sg{margin-top:12px;color:var(--muted);font-size:13px}
details.sg summary{cursor:pointer}
@media (max-width:640px){.mgwrap{grid-template-columns:1fr}.mgrow{grid-template-columns:100px 1fr 38px 64px}}
.mgrow .m{font-size:12px;color:var(--muted);text-align:right}
.dupbox{border:1px solid color-mix(in srgb,var(--z3) 45%,var(--line));border-radius:10px;padding:8px 10px;margin:6px 0;display:grid;gap:4px;font-size:14px}
.edblock{border:1px solid var(--line);border-radius:12px;padding:10px;margin:12px 0;display:grid;gap:8px}
.edbh{display:grid;grid-template-columns:1fr 1.5fr;gap:8px}
.edrow{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px;align-items:end;padding:8px 0;border-top:1px solid var(--line)}
.edrow .wide{grid-column:span 2}
.edblock label,.edrow label{display:grid;gap:3px;font-size:12px;color:var(--muted)}
.edblock input,.form select{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 8px;font-size:15px;width:100%}
.edrow label.chk{display:flex;align-items:center;gap:6px;font-size:13px}
.edrow label.chk input{width:auto}
.tipo{border-bottom:1px solid var(--line)}
.tipohead{all:unset;box-sizing:border-box;display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;width:100%;padding:14px 4px;cursor:pointer}
.tipohead:focus-visible{outline:2px solid var(--z2)}
.tipohead .t{font-weight:600;font-size:16px}
.tipohead .m{color:var(--muted);font-size:13px;text-align:right}
.tipohead .chev{color:var(--muted)}
.tipo.open .tipohead .t{color:var(--load)}
.tipobody{padding:0 0 10px 8px;border-left:2px solid var(--load);margin-left:4px}
@media (max-width:640px){.tipohead{grid-template-columns:1fr auto}.tipohead .m{grid-column:1;grid-row:2;text-align:left}.tipohead .chev{grid-row:1/span 2;grid-column:2}}
.wm{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-style:italic;letter-spacing:.01em;color:var(--logo);line-height:1;margin:0}
.wm .ap{color:var(--z2)}
.wmh{display:grid;gap:2px}
.brand{display:flex;align-items:center;gap:12px}
.brandface svg{width:52px;height:49px;display:block}
.wmh .wm{font-size:36px}
.wmh small{font-size:13px;letter-spacing:.18em;text-transform:lowercase;color:var(--muted)}
.authface svg{width:96px;height:91px;display:block;margin:0 auto 10px}
.authlogo{text-align:center;margin:10px 0 28px}
.authlogo .wm{font-size:64px}
.authlogo small{display:block;margin-top:6px;font-size:13px;letter-spacing:.22em;color:var(--muted)}
.signed-out .head .brand{visibility:hidden}
.who#status{flex-direction:row;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin:0}
.topright{display:flex;align-items:center;gap:10px}
.avatarbtn .avatar{width:40px;height:40px}
.pill{font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--z3);color:var(--z3)}
.pill.off{border-color:var(--bad);color:var(--bad)}
.avatarbtn{background:none;border:0;padding:0;border-radius:50%;line-height:0}
.avatar{border-radius:50%;object-fit:cover;display:inline-block;border:2px solid var(--line)}
.avatar.ini{display:inline-grid;place-items:center;background:var(--raised);color:var(--text);font-weight:600;font-family:"Barlow Condensed",sans-serif}
.pcard{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.pname{font-family:"Barlow Condensed",sans-serif;font-size:24px;font-weight:600;line-height:1.1}
.pline{color:var(--muted);font-size:14px}.pline.small{font-size:12px;margin-top:2px}
.fotoedit{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.fotoedit label.btn{cursor:pointer}
.cropwrap{display:grid;gap:10px;justify-items:center;margin:0 0 14px;padding:12px;border:1px solid var(--line);border-radius:12px}
.cropbox{position:relative;overflow:hidden;border-radius:12px;touch-action:none;cursor:grab;background:#000;max-width:100%}
.cropbox img{position:absolute;left:0;top:0;transform-origin:0 0;user-select:none;-webkit-user-drag:none;max-width:none}
.cropmask{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 9999px rgba(0,0,0,.55);border:2px solid rgba(255,255,255,.85);pointer-events:none}
.cropwrap[hidden]{display:none}
.cropzoom{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);width:260px}
.cropzoom input{flex:1;accent-color:var(--z4)}
.hello{margin:6px 0 0;color:var(--muted);font-size:15px}
.convform{display:grid;grid-template-columns:1fr 1.4fr auto;gap:8px;margin-top:8px}
.convform input{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;min-width:0}
@media (max-width:520px){.convform{grid-template-columns:1fr}}
@property --spa{syntax:'<angle>';inherits:false;initial-value:0deg}
#splash{position:fixed;inset:0;z-index:9999;background:#0E111A;display:grid;place-items:center;transition:opacity .45s ease}
#splash.out{opacity:0;pointer-events:none}
.sp-in{display:grid;justify-items:center;gap:6px}
.sp-face{width:150px;height:auto;fill:#FF8A3D;margin-bottom:8px}
.sp-mouth{clip-path:inset(0 100% 0 0);animation:spWipe .55s cubic-bezier(.5,0,.3,1) .2s forwards}
.sp-eyes{clip-path:inset(0 100% 0 0);animation:spWipe .5s cubic-bezier(.5,0,.3,1) .8s forwards}
.sp-circle{-webkit-mask:conic-gradient(from -90deg at 50% 50%,#000 var(--spa),transparent 0);mask:conic-gradient(from -90deg at 50% 50%,#000 var(--spa),transparent 0);animation:spCirc .9s cubic-bezier(.45,0,.25,1) 1.3s forwards}
@keyframes spWipe{to{clip-path:inset(0 0 0 0)}}
@keyframes spCirc{to{--spa:360deg}}
.sp-wm{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-style:italic;font-size:58px;line-height:1;color:#FF8A3D;opacity:0;transform:translateY(26px);animation:spUp .6s ease 1.5s forwards}
.sp-wm .ap{color:#2EC4B6}
.sp-tag{font-size:13px;letter-spacing:.22em;color:#A3ABBD;opacity:0;transform:translateY(-16px);animation:spUp .6s ease 1.75s forwards}
@keyframes spUp{to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.sp-mouth,.sp-eyes{clip-path:none;animation:none}.sp-circle{-webkit-mask:none;mask:none;animation:none}.sp-wm,.sp-tag{opacity:1;transform:none;animation:none}}
.tipogrid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,auto);grid-auto-columns:76px;gap:12px 8px;overflow-x:auto;padding:4px 2px 10px;margin:4px 0 6px;scrollbar-width:none}
.tipogrid::-webkit-scrollbar{display:none}
.tipo-t{background:none;border:0;padding:0;display:grid;justify-items:center;gap:5px;color:var(--text);font-size:12px;line-height:1.15;text-align:center}
.tipo-t .ic{width:62px;height:62px;border-radius:18px;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;color:var(--text)}
.tipo-t[aria-pressed="true"] .ic{background:var(--z4);border-color:var(--z4);color:#1A1405}
.tipo-t[aria-pressed="true"]{color:var(--z4);font-weight:600}
.tipo-t .n{font-size:10.5px;color:var(--muted)}
.optbig{width:100%;display:flex;align-items:center;gap:14px;background:var(--z2);color:#06221F;border:0;border-radius:14px;padding:16px;text-align:left;font-size:16px}
.optbig .oi{font-size:28px}.optbig .m{color:#0b3b36;font-size:13px}
.optgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}
.opt{display:grid;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 10px;text-align:left;color:var(--text)}
.opt .m{font-size:12px;color:var(--muted)}
.dtl{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.dtl input,.form select{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;color:var(--text)}
.hblock{border:1px solid var(--line);border-radius:14px;padding:12px;margin:12px 0;display:grid;gap:8px;background:color-mix(in srgb,var(--surface) 60%,transparent)}
.hblock.over{border-color:var(--z4);box-shadow:0 0 0 2px color-mix(in srgb,var(--z4) 40%,transparent)}
.hbh{display:flex;justify-content:space-between;align-items:center;gap:8px}
.hbh .chk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.hfmt{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.hfmt label{display:grid;gap:3px;font-size:12px;color:var(--muted)}
.hfmt input,.hfmt select{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 8px;color:var(--text);min-width:0}
.fdesc{margin:0}
.hitems{display:grid;gap:6px;min-height:8px}
.hitem{display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:10px}
.hitem.dragging{opacity:.35}
.hitem.ghost{position:fixed;z-index:10000;pointer-events:none;box-shadow:0 10px 26px rgba(0,0,0,.45);border-color:var(--z4)}
.hi-main{flex:1;background:none;border:0;text-align:left;padding:8px 10px;display:grid;gap:2px;color:var(--text)}
.hi-main .m{font-size:12px;color:var(--muted)}
.grip{display:grid;place-items:center;width:40px;font-size:20px;color:var(--muted);touch-action:none;cursor:grab;user-select:none;border-left:1px solid var(--line)}
.empty-b{margin:0}
.pk-list{max-height:52vh;overflow:auto}
.pk-outro .t{color:var(--z4)}
.pk-name{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:18px}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:12px 0}
.segb{background:none;border:0;padding:10px 4px;color:var(--muted);font-weight:600;border-right:1px solid var(--line)}
.segb:last-child{border-right:0}
.segb[aria-pressed="true"]{background:var(--z4);color:#1A1405}
.pk-note{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.pk-note input{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;color:var(--text)}
.mus-modelos{display:grid;gap:10px}
.mus-m{display:grid;gap:3px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;color:var(--text)}
.mus-m span{font-size:13px;color:var(--muted)}
.mus-m.novo{border-style:dashed}
.mus-ex{border:1px solid var(--line);border-radius:12px;padding:10px;margin:10px 0}
.mus-s{display:grid;gap:6px;margin:6px 0}
.mus-row{display:grid;grid-template-columns:32px 1fr 1fr 28px;gap:8px;align-items:center}
.mus-row input{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 8px;color:var(--text);min-width:0}
.andamento{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--z3);border-radius:12px;padding:10px 12px;margin:10px 0}
.cxlist{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.cxchip{background:var(--surface);border:1px solid var(--z4);border-radius:999px;padding:3px 10px;font-size:13px}
.addblock{width:100%;background:none;border:1.5px dashed var(--line);color:var(--muted);border-radius:12px;padding:10px;font-weight:600;margin:-4px 0 4px}
.addblock:hover{border-color:var(--z4);color:var(--z4)}
.hbh-r{display:flex;align-items:center;gap:8px}
.herohead{justify-content:space-between;align-items:center}
.herohead .sub{flex-basis:100%}
.semana{display:grid;gap:6px;justify-items:end;margin-left:auto}
.wk-t{font-size:12px;color:var(--muted)}
.wk-row{display:flex;gap:4px}
.wk{display:grid;justify-items:center;gap:3px}
.wk i{font-style:normal;font-size:11px;color:var(--muted);font-weight:600}
.wk b{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line)}
.wk.ok b{background:var(--z4);border-color:var(--z4);color:#1A1405}
.wk.hoje b{border-color:var(--z2)}
.wk.hoje i{color:var(--z2)}
.wk.fut b{border-style:dashed;opacity:.5}
@media (max-width:420px){.herohead .big{font-size:58px}.herohead .big small{font-size:18px}}
.cats{display:grid;gap:8px;margin-bottom:10px}
.catrow{display:flex;gap:8px;align-items:end}
.catrow label{flex:1}
.catrow .btn{flex:0 0 auto}
.catrow label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.catrow select,.catrow input{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;color:var(--text);min-width:0}
.cats .addblock{margin:0;font-size:13px}
.fcgrid{margin-top:16px}
.welcome{text-align:center;max-width:420px;margin:24px auto 0;display:grid;justify-items:center;gap:6px}
.welcome .wm{font-size:60px}.welcome small{font-size:13px;letter-spacing:.22em;color:var(--muted)}
.wtxt{margin:16px 0 8px;color:var(--text)}
.bora{background:var(--z4);color:#1A1405;border:0;font-family:"Barlow Condensed",sans-serif;font-size:24px;font-weight:700;font-style:italic;padding:14px 26px;border-radius:14px;width:100%}
.welcome .btn.ghost{width:100%;margin-top:6px}
.vencido{border:1px solid var(--bad);border-radius:12px;padding:10px 12px;margin:10px 0}
.vencido.aviso{border-color:var(--z3)}
.ativo{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-top:4px;flex-wrap:wrap}
.ativo.off{color:var(--bad)}
.ativo input{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:3px 6px;color:var(--text);font-size:12px}
.termos p{margin:0 0 10px;line-height:1.5}
.top.head{position:sticky;top:env(safe-area-inset-top,0px);z-index:15;margin:-20px -18px 6px;padding:14px 18px 10px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:padding .25s ease,box-shadow .25s ease}
.top.head .brandface svg{transition:width .25s ease,height .25s ease}
.top.head .wmh .wm{transition:font-size .25s ease}
.top.head .wmh small{transition:opacity .2s ease,max-height .25s ease;max-height:20px;overflow:hidden}
#btnTema{transition:opacity .2s ease,width .25s ease,margin .25s ease,border-width .25s ease}
body.scrolled .top.head{padding:8px 18px;box-shadow:0 1px 0 var(--line)}
body.scrolled .top.head .brandface svg{width:36px;height:34px}
body.scrolled .top.head .wmh .wm{font-size:26px}
body.scrolled .top.head .wmh small{opacity:0;max-height:0}
body.scrolled #btnTema{opacity:0;width:0;margin-left:-10px;border-width:0;pointer-events:none;overflow:hidden}
.sessacts{flex-wrap:wrap}
.btn.strava{background:#FC5200;color:#fff;border-color:#FC5200;font-weight:700}
.btn.strava.wide{width:100%;margin-top:6px;font-weight:700}
.help .passos{padding-left:20px;margin:0 0 12px;display:grid;gap:10px;line-height:1.45}
.help .passos ul{padding-left:16px;margin:6px 0 0;display:grid;gap:4px;font-size:14px;color:var(--muted)}
.help .passos ul b{color:var(--text)}
.wk.falta b{background:var(--raised);border-color:var(--raised);color:var(--z4)}
dialog.painel{position:fixed;inset:0 0 0 auto;margin:0 0 0 auto;width:min(100%,560px);height:100%;max-height:100%;max-width:100%;border-radius:0;border:0;border-left:1px solid var(--line);padding:0;display:none;flex-direction:column}
dialog.painel[open]{display:flex;animation:slideIn .28s cubic-bezier(.3,.7,.2,1)}
dialog.painel .mb{flex:1;overflow:auto;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
dialog.painel .mh{position:sticky;top:0;padding-top:calc(12px + env(safe-area-inset-top,0px));display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}
dialog.painel .mh h3{text-align:center}
.voltar{font-size:22px;padding:4px 14px}
@keyframes slideIn{from{transform:translateX(100%)}to{transform:none}}
.acc{border:1px solid var(--line);border-radius:12px;margin:10px 0;background:var(--surface);overflow:hidden}
.acc summary{list-style:none;cursor:pointer;padding:14px 16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:13px;display:flex;justify-content:space-between;align-items:center}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"▾";color:var(--muted);transition:transform .2s ease}
.acc[open] summary::after{transform:rotate(180deg)}
.accb{padding:0 16px 14px;display:grid;gap:6px}
.accb h5{margin:12px 0 2px;font-size:13px}
.accitem{background:none;border:0;border-bottom:1px solid var(--line);color:var(--text);text-align:left;padding:12px 2px;font-size:15px;display:flex;justify-content:space-between}
.accitem::after{content:"›";color:var(--muted)}
.accitem.solto{width:100%;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:10px 0;background:var(--surface)}
.sair{width:100%;margin-top:6px;padding:12px}
.stravacard{border:1px solid color-mix(in srgb,#FC4C02 45%,var(--line));border-radius:12px;padding:12px 16px;margin:10px 0;background:var(--surface)}
.sth{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.pill.ok{border-color:var(--good);color:var(--good)}
.aviso-erro{color:var(--bad)}
.strava-ref{font-size:12px;color:var(--muted);margin:8px 0 0;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.strava-ref a{color:#FC5200;font-weight:600}
.strava-ref .pw,.pw-card{font-size:11px;letter-spacing:.04em;color:var(--muted);margin-left:auto}
.pw-card{margin:8px 0 0;text-align:right}
#persTxt{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px;color:var(--text);font:inherit;width:100%}
.dtbig{display:grid;grid-template-columns:1.3fr 1fr;gap:10px;margin:4px 0 8px}
.dtbig label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.dtbig input{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:14px 12px;font-size:18px;color:var(--text);width:100%;min-width:0;font-family:inherit}
.dtbig input::-webkit-calendar-picker-indicator{width:26px;height:26px;cursor:pointer;opacity:.9;filter:invert(.6)}
.optgrid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opt.big{padding:16px 12px;gap:6px;border-radius:14px}
.opt.big .oi{font-size:26px}
.opt.big b{font-size:16px}
.relcard{border:2px solid var(--z2);border-radius:16px;padding:14px;margin:16px 0 6px;background:color-mix(in srgb,var(--z2) 8%,var(--surface))}
.relh{display:flex;gap:12px;align-items:center}
.relh .oi{font-size:30px}
.relbtns{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}
.relstrava{grid-column:1/-1;font-weight:700;padding:12px}
.stravaopts .row{width:100%;border:1px solid var(--line);border-radius:10px;margin:4px 0;background:var(--surface)}
.relprint{background:var(--z2);color:#06221F;border-color:var(--z2);font-weight:700;padding:14px;text-align:center;cursor:pointer}
.mus-ex.pulado{opacity:.6}
.mus-ex.pulado b{text-decoration:line-through}
.chipbtn{border:1px solid var(--line);background:none;color:var(--muted);border-radius:999px;padding:4px 10px;font-size:12px}
.chipbtn.on{border-color:var(--z3);color:var(--z3)}
.iconx{background:none;border:1px solid var(--line);color:var(--muted);border-radius:8px;width:34px;height:34px;font-size:16px;display:grid;place-items:center}
.mus-row{grid-template-columns:32px 1fr 1fr 34px}
.mus-row.t{grid-template-columns:32px 1fr 34px}
.seg.mini{margin:8px 0}
.seg.mini .segb{padding:7px 4px;font-size:13px}
.tipos-o{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.pwwrap{position:relative;display:block}
.pwwrap input{width:100%;padding-right:48px}
.eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--muted);padding:6px;display:grid;place-items:center}
.eye.on{color:var(--z2)}
.sess>button{position:relative;padding-right:34px!important}
.sess>button::after{content:"›";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:28px;color:var(--muted);transition:transform .2s ease;line-height:1}
.sess.open>button::after{transform:translateY(-50%) rotate(90deg)}
.rows .row[data-ex]{position:relative;padding-right:30px}
.rows .row[data-ex]::after{content:"›";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:28px;color:var(--muted);line-height:1}
.acc summary::after{font-size:22px}
.accitem::after{font-size:26px;line-height:1}
.tipohead .chev{font-size:22px}
.chartscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -4px}
.chartscroll .chart{min-width:100%}
.chips.exr{margin-bottom:8px}
tr.cont td{border-top-color:transparent}
.chart.radar{height:min(110vw,460px)}
.durpick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}
.durpick label{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:6px 10px}
.durpick select{flex:1;border:0;background:transparent;color:var(--text);font-size:22px;font-family:"Barlow Condensed",sans-serif;font-weight:600;padding:8px 0;min-width:0;appearance:none;-webkit-appearance:none;text-align:center}
.durpick span{color:var(--muted);font-size:14px}
.durpick.dist{grid-template-columns:1fr auto 1.3fr;align-items:center;max-width:320px}
.durpick .virg{font-size:28px;color:var(--muted);font-weight:700}
.painel.treino .tfoot{position:sticky;bottom:0;display:grid;gap:8px;padding:10px 16px calc(12px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.painel.treino .trow{display:grid;grid-template-columns:auto 1fr;gap:8px}
.painel.treino .tfoot:empty{display:none}
.painel.treino .tfoot:has(.trow > :only-child) .trow{grid-template-columns:1fr}
.painel.treino .fin{background:var(--z2);color:#06221F;border-color:var(--z2);font-family:"Barlow Condensed",sans-serif;font-size:20px;font-weight:700;letter-spacing:.04em;padding:14px}
.painel.treino .excluir{color:var(--bad);font-size:14px}
.andamento.rasc{border-color:var(--z4)}
.rbtns{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.durpick input{flex:1;border:0;background:transparent;color:var(--text);font-size:24px;font-family:"Barlow Condensed",sans-serif;font-weight:600;padding:8px 0;min-width:0;width:100%;text-align:center}
.durpick input::placeholder{color:var(--muted);opacity:.6}
.durpick.two{grid-template-columns:1fr 1fr;max-width:280px}
.durpick.one{grid-template-columns:1fr;max-width:200px}
.painel.treino .tfoot [data-tcancel]{background:var(--z4);color:#1A1405;border-color:var(--z4);font-weight:700}
.switch{display:flex;align-items:center;gap:12px;padding:8px 0;cursor:pointer}
.switch input{position:absolute;opacity:0;width:0;height:0}
.switch .sl{flex:0 0 46px;height:26px;border-radius:999px;background:var(--line);position:relative;transition:background .2s}
.switch .sl::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:var(--text);transition:transform .2s}
.switch input:checked+.sl{background:var(--z2)}
.switch input:checked+.sl::after{transform:translateX(20px);background:#06221F}
.pushconv{text-align:center;display:grid;gap:8px;justify-items:center;padding:24px 20px}
.pushconv .pushface svg{width:84px;height:80px}
.pushconv .fin{width:100%;background:var(--z2);color:#06221F;border-color:var(--z2);font-family:"Barlow Condensed",sans-serif;font-size:22px;font-weight:700;padding:14px}
dialog.painel.treino[open]{animation:slideUp .32s cubic-bezier(.3,.7,.2,1)}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:none}}
dialog.painel.treino{inset:0;margin:0 auto;width:min(100%,640px);border-left:0}
body[data-dir="esq"] #view{animation:vEsq .22s ease}
body[data-dir="dir"] #view{animation:vDir .22s ease}
@keyframes vEsq{from{transform:translateX(24px);opacity:.4}to{transform:none;opacity:1}}
@keyframes vDir{from{transform:translateX(-24px);opacity:.4}to{transform:none;opacity:1}}
.pushconv .btn.ghost.wide{width:100%}
.diag{font-size:12px;display:grid;gap:2px}
.diag:empty{display:none}
.passos.mini{padding-left:18px;margin:4px 0 10px;display:grid;gap:6px;font-size:13px;color:var(--muted);line-height:1.4}
.passos.mini b{color:var(--text)}
.bora{display:flex;align-items:center;gap:14px;text-align:left;padding:14px 18px;box-shadow:0 6px 20px color-mix(in srgb,var(--z4) 35%,transparent);animation:boraPulse 2.4s ease-in-out infinite}
.bora-plus{flex:0 0 46px;height:46px;border-radius:50%;background:#1A1405;color:var(--z4);display:grid;place-items:center;font-size:30px;font-style:normal;font-family:var(--ui,Manrope,sans-serif);font-weight:700;line-height:1}
.bora-txt{display:grid;gap:2px}
.bora-txt b{font-size:26px;line-height:1}
.bora-txt small,.welcome .bora-txt small{font-family:system-ui,sans-serif;font-style:normal;font-weight:600;font-size:13px;letter-spacing:0;color:#1A1405;opacity:.8}
@keyframes boraPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.025)}}
@media (prefers-reduced-motion: reduce){.bora{animation:none}}
.kgg{display:grid;grid-template-columns:1fr auto auto 1fr auto;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:4px 10px}
.kgg input{border:0!important;background:transparent!important;font-size:18px;text-align:center;padding:6px 0!important;min-width:0;width:100%}
.kgg span{color:var(--muted);font-size:13px}.kgg b{color:var(--muted);font-size:20px}
.mus-mw{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:stretch}
.mus-edit{background:var(--surface);border:1px solid var(--line);border-radius:12px;color:var(--text);padding:0 12px;font-weight:600;font-size:13px}
.em-list{display:grid;gap:6px;margin:8px 0}
.em-row{display:grid;grid-template-columns:1fr 34px 34px 34px;gap:6px;align-items:center}
.em-nome{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--text)}
.em-nome::after{content:" ✎";color:var(--muted);font-size:12px}
.iconx:disabled{opacity:.3}
.linkbtn.em-del{color:var(--bad);margin-top:14px;display:block}
.pkgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.pkgrid label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.pkgrid > label > input,.de{border:1px solid var(--line);background:var(--surface);border-radius:10px;color:var(--text)}
.pkgrid > label > input{padding:10px 12px;font-size:17px;min-width:0;width:100%}
.de{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:center;gap:4px;padding:0 8px}
.de.one{grid-template-columns:1fr auto}
.de input{border:0;background:transparent;color:var(--text);font-size:17px;padding:10px 2px;text-align:center;min-width:0;width:100%}
.de b{color:var(--muted);font-size:12px;font-weight:600}
.mgrow{grid-template-columns:minmax(80px,110px) minmax(40px,1fr) 40px 64px 16px!important}
.mgchev{color:var(--muted);font-size:16px;transition:transform .2s}
.mgrow[aria-expanded="true"] .mgchev{transform:rotate(180deg)}
.mglist .mgex{margin:2px 0 8px}
.zion{margin-top:18px;font-size:13px;color:var(--muted);text-align:center}
.imgrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.imgrow label.btn{cursor:pointer}
.wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-top:8px}
.wgrid label{display:grid;gap:3px;font-size:12px;color:var(--muted)}
.wgrid input{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 8px;font-size:15px;width:100%}
.zchip i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.zchip[aria-pressed="false"]{opacity:.55}
.zchip[aria-pressed="true"]{background:var(--surface);color:var(--text);border-color:var(--text)}
.lifetime{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin:10px 0 14px}
.lifetime div{border-left:2px solid var(--z2);padding-left:10px}
.lifetime.km div:first-child{border-left-color:var(--z3)}
.lifetime.km b{font-size:clamp(24px,7vw,34px);white-space:nowrap}.lifetime.km div:first-child b{font-size:clamp(25px,7.4vw,44px)}.lifetime.km div.longo b{font-size:clamp(21px,6.2vw,40px)}
.lifetime b{display:block;font-family:"Barlow Condensed",sans-serif;font-size:34px;font-weight:700;line-height:1}
.lifetime span{font-size:13px;color:var(--muted)}
.auth{max-width:380px;margin:40px auto 0}
.authform{display:grid;gap:12px}
.authform label{display:grid;gap:6px;font-size:14px;color:var(--muted)}
.authform input{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:12px;font-size:16px}
.linkbtn{background:none;border:0;padding:0;color:var(--text);text-decoration:underline;font:inherit}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition-property:opacity,color,background-color,border-color,box-shadow,filter!important;transition-duration:.15s!important}}
.pkmus,.mus-rap{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:10px;margin:10px 0}
.pkmus label,.mus-rap label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.pkmus label:only-child,.mus-rap label:only-child{grid-column:1/-1}
.mus-rap{margin:8px 0 2px;padding-bottom:10px;border-bottom:1px dashed var(--line)}
.mus-rap .de input{font-size:16px;padding:8px 2px}
.runx{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:8px}
.runx label{display:grid;gap:3px;font-size:12px;color:var(--muted)}
.runx input{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 8px;font-size:15px;width:100%;color:var(--text)}
.splitrow{display:grid;grid-template-columns:70px 1fr 34px;gap:8px;align-items:center;margin-top:6px}
.splitrow input{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 8px;font-size:15px;width:100%;color:var(--text)}
.edprint{display:block;margin:6px 0 4px}
.relprint.small{padding:8px 12px;font-size:13px}
:root{--cic:#FF7E8E;--cicink:#3A0A14;--cicbg:color-mix(in srgb,var(--cic) 12%,var(--surface))}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){--cic:#C93A56;--cicink:#FFFFFF}}
:root[data-theme="light"]{--cic:#C93A56;--cicink:#FFFFFF}
.cic{background:var(--cicbg);border:1px solid color-mix(in srgb,var(--cic) 45%,var(--line));border-radius:14px;padding:12px 14px 10px;margin:14px 0 4px}
.cich{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.cict{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:15px;letter-spacing:.06em;color:var(--cic)}
.cich .linkbtn{color:var(--cic);font-size:13px}
.cictop{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}
.cictop>div{display:grid;gap:2px}.cictop span,.cicprev span{font-size:12.5px;color:var(--muted)}
.cicbig{font-family:"Barlow Condensed",sans-serif;font-size:32px;font-weight:700;line-height:1;color:var(--cic)}
.cicniv{text-align:right}.cicniv b{font-family:"Barlow Condensed",sans-serif;font-size:22px;font-weight:700}
.cicniv.n-baixo b{color:var(--muted)}.cicniv.n-medio b{color:var(--z3)}.cicniv.n-alto b{color:var(--cic)}
.cicprev{display:grid;grid-template-columns:1fr 1fr;margin:12px 0 10px;border-top:1px solid color-mix(in srgb,var(--cic) 25%,var(--line));padding-top:10px}
.cicprev>div{display:grid;gap:1px}.cicprev>div+div{border-left:1px solid color-mix(in srgb,var(--cic) 25%,var(--line));padding-left:12px}
.cicprev b{font-size:17px}
.cicbtns{display:grid;grid-template-columns:1.5fr 1fr;gap:8px}.cicbtns .btn{font-size:15px;padding-left:8px;padding-right:8px}
.cicmain{background:var(--cic);border-color:var(--cic);color:var(--cicink);font-weight:700}
.cicsec{border-color:color-mix(in srgb,var(--cic) 55%,var(--line));color:var(--text);background:transparent}
.cicaviso{color:var(--cic);font-size:12.5px;font-weight:600;text-align:center;margin:10px 0 2px}
.cicaviso2{color:var(--muted);font-size:12px;text-align:center;margin:14px 0 0}
.cicvazio{margin:2px 0 12px;color:var(--text)}
.cicgrav{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;margin-bottom:12px}
.cicgrav>div{display:grid;gap:2px}.cicdias{font-size:15px;color:var(--cic);font-weight:600}
#dlgCicNota .segb[aria-pressed="true"]{background:var(--cic);color:var(--cicink);border-color:var(--cic)}
#btnNotaSalvar{background:var(--cic);border-color:var(--cic);color:var(--cicink)}.cicfruta{font-size:18px;margin-top:4px}
.gico{width:28px;height:28px}.gico.big{width:76px;height:76px;color:var(--cic);background:color-mix(in srgb,var(--cic) 10%,transparent);border-radius:50%;padding:10px}
.cicdica{background:var(--cicbg);border:1px dashed var(--cic);border-radius:10px;padding:8px 10px;margin:0 0 10px;font-size:14px}
.cicnav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-bottom:6px}
.cicnav b{text-align:center;font-family:"Barlow Condensed",sans-serif;font-size:20px;font-weight:600}
.cicgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cdw{text-align:center;font-size:12px;color:var(--muted);padding:4px 0}
.cd{position:relative;aspect-ratio:1;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--text);font-size:15px;display:grid;place-items:center;padding:0;cursor:pointer}
.cd.vaz{cursor:default}.cd.fut{color:color-mix(in srgb,var(--text) 70%,transparent)}
.cd.mr{background:var(--cic);color:var(--cicink);font-weight:700}
.cd.mp{border:2px dashed var(--cic);color:var(--cic)}
.cd.fe{background:color-mix(in srgb,var(--z1) 20%,transparent);color:var(--z1);font-weight:600}
.cd.hj span{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
.cd.sel{outline:2px solid var(--text);outline-offset:1px}
.cd .ovu{position:absolute;top:2px;right:2px}
.ovu{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--z1);box-shadow:0 0 0 2px var(--bg)}
.cd .nt{position:absolute;bottom:3px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--z3)}
.cd.mr .nt{background:var(--cicink)}
.ciclegenda{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0;font-size:12.5px;color:var(--muted)}
.ciclegenda span{display:inline-flex;align-items:center;gap:6px}
.lg{display:inline-block;width:14px;height:14px;border-radius:50%}.lg.mr{background:var(--cic)}.lg.mp{border:2px dashed var(--cic)}.lg.fe{background:color-mix(in srgb,var(--z1) 35%,transparent)}
.cicdet{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:6px}
.cicacts{display:grid;gap:8px;margin-top:6px}
.cicnts,.cicchips{display:flex;flex-wrap:wrap;gap:6px}
.cicchip{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;padding:7px 12px;font-size:14px;display:inline-flex;align-items:center;gap:4px}
.cicchip.on{background:color-mix(in srgb,var(--cic) 18%,var(--surface));border-color:var(--cic);color:var(--text)}
.cicchip .iconx{padding:0 0 0 4px;min-width:0}
.gota{display:inline-block;width:7px;height:9px;background:var(--cic);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;margin-right:-1px}
#dlgCicNota h4{display:flex;justify-content:space-between;align-items:center;margin:16px 0 8px}
.cicnd{margin:0;color:var(--muted)}
.cicadd{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}
.cicadd input,.cicgf input{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 10px;color:var(--text);font-size:15px;min-width:0;width:100%}
.cicvezes{display:flex;align-items:center;gap:10px;margin-top:10px}.cicvezes b{font-size:22px;min-width:2ch;text-align:center}.cicvezes span{flex:1;color:var(--muted)}
.ciccf{border-bottom:1px solid var(--line);padding:10px 0}.ciccf h5{margin:0 0 8px}
.cicstep{display:flex;align-items:center;gap:10px}.cicstep b{font-family:"Barlow Condensed",sans-serif;font-size:26px;min-width:2ch;text-align:center}.cicstep span{color:var(--muted);flex:1}
.cicgf{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.cicgf label{display:grid;gap:4px;font-size:13px;color:var(--muted)}

.cictop{grid-template-columns:1fr auto auto}
.cictop .cicgrav{margin:0}
.cictog{align-self:center;background:none;border:1px solid color-mix(in srgb,var(--cic) 45%,var(--line));color:var(--cic);width:34px;height:34px;border-radius:50%;font-size:17px;line-height:1;display:grid;place-items:center;padding:0;cursor:pointer;transition:transform .2s ease}
.cic.aberto .cictog{transform:rotate(180deg)}
.cic:not(.aberto){padding-bottom:12px}
.cicgravmais{margin:12px 0 10px;border-top:1px solid color-mix(in srgb,var(--cic) 25%,var(--line));padding-top:10px}
@media (prefers-reduced-motion: reduce){.cictog{transition:none}}
.ccsubs{display:grid}
details.ciccf{border-bottom:1px solid var(--line);padding:0}
details.ciccf summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:12px 0;font-weight:600;font-size:15px}
details.ciccf summary::-webkit-details-marker{display:none}
details.ciccf summary>span:first-child{flex:1}
details.ciccf summary::after{content:"▾";color:var(--muted);font-size:18px;transition:transform .2s ease}
details.ciccf[open] summary::after{transform:rotate(180deg)}
.ccval{color:var(--muted);font-size:13px;font-weight:500}
.ccb{display:grid;gap:10px;padding:0 0 14px 10px;border-left:2px solid color-mix(in srgb,var(--cic) 40%,var(--line));margin-left:2px}
.ccit{display:grid;gap:4px}
.ccl{font-size:12px;color:var(--muted);font-weight:600}
.ccit .note{margin:0}
.ccoff{opacity:.45}
.ccacts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.ccacts.tres{grid-template-columns:repeat(3,1fr)}
.ccacts.tres .btn{padding-left:4px;padding-right:4px;font-size:13px}
.cccal{width:100%;margin-top:8px}
.addstrava{border:1px solid color-mix(in srgb,#FC4C02 45%,var(--line));background:var(--raised);border-radius:10px;padding:10px 12px;margin:0 0 12px;display:grid;gap:3px}
.addstrava[hidden]{display:none}
.addstrava .linkbtn{justify-self:start;margin-top:4px}
#dlgStravaNovo .mb{display:grid;gap:10px}

/* ================= VISUAL NOVO: vidro, degradê laranja/roxo, cantos redondos ================= */
:root{
  --bg:#0E111A;--surface:rgba(255,255,255,.055);--raised:#1C2130;--line:rgba(255,255,255,.10);--text:#EEF1F7;--muted:#A3ABBD;
  --acc1:#FF8A3D;--acc2:#F2546B;--roxo:#8B5CF6;--roxo2:#7C3AED;--roxot:#C4B5FD;--ink:#1C0F06;--logo:#FF8A3D;
  --z4:#FF8A3D;--load:#F5C451;
  --grad:linear-gradient(135deg,var(--acc1),var(--acc2));
  --grad3:linear-gradient(140deg,var(--acc1),var(--acc2) 68%,var(--roxo));
  --gradroxo:linear-gradient(135deg,#8B5CF6,#6D28D9);
  --glass:rgba(255,255,255,.06);--glassb:rgba(255,255,255,.10);
  --glassh:inset 0 1px 0 rgba(255,255,255,.07),0 18px 40px rgba(0,0,0,.22);
  --sheet:#131724;--orbA:.30;--orbB:.26;
  --ui:Manrope,system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:dark;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--bg:#0E111A;--surface:rgba(255,255,255,.055);--raised:#1C2130;--line:rgba(255,255,255,.10);--text:#EEF1F7;--muted:#A3ABBD;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0E111A;--surface:rgba(255,255,255,.055);--raised:#1C2130;--line:rgba(255,255,255,.10);--text:#EEF1F7;--muted:#A3ABBD;color-scheme:dark}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){--bg:#F4F2FA;--surface:rgba(255,255,255,.66);--raised:#FFFFFF;--line:rgba(27,30,43,.09);--text:#1B1E2B;--muted:#5B6175;--logo:#1B1E2B;--acc1:#F97A2E;--z4:#E8722A;--load:#B7791F;--roxot:#6D28D9;--glass:rgba(255,255,255,.62);--glassb:rgba(255,255,255,.95);--glassh:inset 0 1px 0 #fff,0 14px 32px rgba(60,40,110,.08);--sheet:#F8F6FC;--orbA:.28;--orbB:.20;--good:#14945F;--bad:#C8443A;--body:#12988C;color-scheme:light}}
:root[data-theme="light"]{--bg:#F4F2FA;--surface:rgba(255,255,255,.66);--raised:#FFFFFF;--line:rgba(27,30,43,.09);--text:#1B1E2B;--muted:#5B6175;--logo:#1B1E2B;--acc1:#F97A2E;--z4:#E8722A;--load:#B7791F;--roxot:#6D28D9;--glass:rgba(255,255,255,.62);--glassb:rgba(255,255,255,.95);--glassh:inset 0 1px 0 #fff,0 14px 32px rgba(60,40,110,.08);--sheet:#F8F6FC;--orbA:.28;--orbB:.20;--good:#14945F;--bad:#C8443A;--body:#12988C;color-scheme:light}

body{font-family:var(--ui);font-size:15px;background:var(--bg)}
/* manchas de cor atrás do vidro */
.bgorbs{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bgorbs i{position:absolute;border-radius:50%;filter:blur(90px)}
.bgorbs i:nth-child(1){width:360px;height:360px;right:-140px;top:-120px;background:var(--acc1);opacity:var(--orbA)}
.bgorbs i:nth-child(2){width:340px;height:340px;left:-170px;top:42vh;background:var(--roxo);opacity:var(--orbB)}
.bgorbs i:nth-child(3){width:280px;height:280px;right:-120px;bottom:-60px;background:#F472B6;opacity:calc(var(--orbB) * .7)}
.wrap{position:relative;z-index:1;padding-bottom:150px}

/* tipografia: Manrope no texto, Barlow Condensed só nos números */
h1,h2,h3{font-family:var(--ui);letter-spacing:-.02em}
h2{font-size:21px;font-weight:800;margin:34px 0 4px}
h3{font-size:16px;font-weight:800}
.wm{font-family:"Barlow Condensed",sans-serif}
.sub,.note{line-height:1.5}

/* vidro nos cartões */
.panel,.kpi,.metric,.acc,.mgex,.cicdet,.stravacard,.hblock,.mus-ex,.mus-m,.mus-edit,.opt,.andamento,.edblock,.dupbox,.vencido,.cropwrap,.em-nome,.accitem.solto,.addstrava,.relcard{
  background:var(--glass);border:1px solid var(--glassb);box-shadow:var(--glassh);
  -webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%)}
.panel{border-radius:26px;padding:18px}
.kpi,.metric{border-radius:22px;padding:14px 16px}
.kpis{gap:12px}
.acc{border-radius:22px}
.hblock,.mus-ex,.edblock,.andamento{border-radius:22px;padding:14px}
.mus-m,.opt,.mgex,.cicdet,.stravacard,.vencido,.dupbox{border-radius:20px}
.vencido{border-color:color-mix(in srgb,var(--bad) 45%,var(--glassb))}
.vencido.aviso,.andamento{border-color:color-mix(in srgb,var(--load) 40%,var(--glassb))}
.andamento.rasc{border-color:color-mix(in srgb,var(--acc1) 45%,var(--glassb))}
.hitem{background:var(--surface);border-color:var(--glassb);border-radius:16px}
.grip{border-left-color:var(--line)}

/* botões em pílula; o principal com degradê */
.btn{border-radius:999px;padding:10px 18px;border-color:var(--line);background:var(--surface);font-weight:700;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.btn.small{padding:7px 14px}
.btn.ghost{background:transparent;border-color:var(--line)}
.btn.primary,.relprint,.bora,.painel.treino .fin,.pushconv .fin,.btn.accent{background:var(--grad);border-color:transparent;color:var(--ink);font-weight:800;box-shadow:0 10px 24px color-mix(in srgb,var(--acc2) 32%,transparent),inset 0 1px 0 rgba(255,255,255,.35)}
.painel.treino .fin,.pushconv .fin{border-radius:20px;letter-spacing:.05em}
.relprint{border-radius:16px}
.btn.danger{border-color:color-mix(in srgb,var(--bad) 40%,transparent);background:color-mix(in srgb,var(--bad) 8%,transparent)}
.painel.treino .tfoot [data-tcancel]{background:var(--surface);color:var(--text);border-color:var(--glassb)}
.optbig{background:var(--gradroxo);color:#fff;border-radius:22px;box-shadow:0 12px 26px rgba(124,58,237,.3)}
.optbig .m{color:rgba(255,255,255,.85)}
.bora-plus{background:rgba(28,15,6,.9);color:var(--acc1)}
.bora-txt small,.welcome .bora-txt small{color:var(--ink)}
.iconbtn,.iconx{border-color:var(--line);background:var(--surface);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.iconbtn{width:44px;height:44px}
.iconx{border-radius:12px}
.addblock{border-radius:18px;border-color:var(--line)}
.addblock:hover{border-color:var(--acc1);color:var(--acc1)}
.linkbtn{text-underline-offset:3px}
:focus-visible{outline-color:var(--roxo)}

/* campos */
.search,.form input,.form select,.dtl input,.hfmt input,.hfmt select,.catrow select,.catrow input,.edblock input,.wgrid input,.runx input,.splitrow input,.mus-row input,.pk-note input,.pkgrid>label>input,.de,.durpick label,.kgg,.dtbig input,.authform input,.convform input,.cicadd input,.cicgf input,#persTxt,textarea,.ativo input,.prev .item select{
  background:var(--surface);border-color:var(--line);border-radius:14px}
.search{padding:13px 16px;border-radius:999px}
.dtbig input,.durpick label{border-radius:16px}

/* chips, segmentos e chaves */
.chip,.chipbtn,.tag,.pill,.cicchip,.cxchip{border-radius:999px}
.chip{background:var(--surface);border-color:var(--line);padding:7px 14px;font-weight:600}
.chip[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
.seg{border-color:var(--line);border-radius:999px;background:var(--surface);padding:3px;gap:3px}
.segb{border-right:0;border-radius:999px}
.segb[aria-pressed="true"]{background:var(--grad);color:var(--ink);box-shadow:0 6px 14px color-mix(in srgb,var(--acc2) 28%,transparent)}
#dlgCicNota .segb[aria-pressed="true"]{background:var(--cic)}
.switch input:checked+.sl{background:var(--grad)}
.switch input:checked+.sl::after{background:#fff}
.tipo-t .ic{border-radius:22px;background:var(--glass);border-color:var(--glassb);box-shadow:var(--glassh)}
.tipo-t[aria-pressed="true"] .ic{background:var(--grad);border-color:transparent;color:var(--ink)}
.tipo-t[aria-pressed="true"]{color:var(--acc1)}

/* listas e tabelas viram cartões */
.rows{background:var(--glass);border:1px solid var(--glassb);box-shadow:var(--glassh);border-radius:24px;padding:4px 14px;gap:0;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}
.rows:empty{display:none}
.row{border-bottom-color:var(--line);padding:14px 2px}
.row:last-child{border-bottom:0}
.row:hover{background:transparent}
.rows .row[data-ex]{padding-right:28px}
.pk-list,.stravaopts .rows{background:none;border:0;box-shadow:none;padding:0}
.stravaopts .row{border-radius:16px;border-color:var(--glassb)}
.tablewrap{background:var(--glass);border:1px solid var(--glassb);box-shadow:var(--glassh);border-radius:22px;padding:6px 6px;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}
th{font-size:12px;font-weight:700;letter-spacing:.02em}
th,td{border-bottom-color:var(--line);padding:10px 10px}
tr:last-child td{border-bottom:0}
.sess{border-bottom:0;margin:10px 0;background:var(--glass);border:1px solid var(--glassb);box-shadow:var(--glassh);border-radius:22px;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}
.sess>button{padding:14px 16px}
.sess .detail{padding:0 16px 16px}
.sess .zones{height:6px}
.tipo{border-bottom:0;margin:10px 0;background:var(--glass);border:1px solid var(--glassb);box-shadow:var(--glassh);border-radius:22px;padding:0 14px;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}
.tipobody{border-left-color:var(--acc1)}
.tipo.open .tipohead .t{color:var(--acc1)}
.month{font-family:var(--ui);font-size:14px;font-weight:800;letter-spacing:.04em;text-transform:capitalize;margin:22px 4px 4px}
.lifetime{gap:10px}
.lifetime div,.lifetime.km div:first-child{border-left:0;padding:14px 14px 12px;background:var(--glass);border:1px solid var(--glassb);box-shadow:var(--glassh);border-radius:20px;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}
.lifetime.km div:first-child{background:linear-gradient(135deg,color-mix(in srgb,var(--acc1) 22%,transparent),var(--glass) 70%)}
.ztot div{border-left-width:3px;border-radius:2px}
.zones{border-radius:999px}
.zones:empty{display:none}
.mgrow{border-radius:14px}
.mgrow .bar{border-radius:999px}
.mgrow .bar i{background:var(--grad);border-radius:999px}
.mgrow.on,.mgrow:hover{background:var(--surface)}

/* tela inicial */
.hello{margin:4px 0 0;display:grid;gap:0}
.hello small{font-size:14px;color:var(--muted);font-weight:500}
.hello b{font-size:26px;font-weight:800;color:var(--text);letter-spacing:-.02em;line-height:1.2}
.herohead{background:var(--glass);border:1px solid var(--glassb);box-shadow:var(--glassh);border-radius:28px;padding:20px;gap:14px 16px;margin:14px 0 10px;-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%)}
.herohead .big{font-size:72px}
.herohead .big small{font-family:var(--ui);font-size:17px;font-weight:700;color:var(--muted);margin-left:8px}
.herohead .semana{flex-basis:100%;margin-left:0;justify-items:stretch;order:3}
.herohead .sub{order:4;padding-top:12px;border-top:1px solid var(--line);font-size:14px}
.herohead .wk-t{order:-1;font-size:12px;font-weight:700;justify-self:start}
.wk-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.wk{gap:6px}
.wk i{font-size:12px}
.wk b{width:clamp(32px,9.5vw,42px);height:clamp(32px,9.5vw,42px);border:1px solid var(--glassb);background:var(--surface)}
.wk b svg{width:15px;height:15px}
.wk.ok b{background:var(--grad);border-color:transparent;color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--acc2) 35%,transparent),inset 0 1px 0 rgba(255,255,255,.35)}
.wk.hoje b{border:2px solid var(--roxo)}
.wk.hoje i{color:var(--roxot)}
.wk.falta b{background:var(--surface);border-color:var(--glassb);color:var(--muted)}
.wk.fut b{border-style:dashed;opacity:.55}
.kpi span{font-weight:600}
.kpi b{font-size:30px}
.row .r b{color:var(--load)}

/* Meu ciclo no mesmo vidro, com toque rosa/roxo */
.cic{border-radius:26px;padding:16px 18px;background:linear-gradient(135deg,color-mix(in srgb,var(--cic) 20%,transparent),color-mix(in srgb,var(--roxo) 12%,transparent) 55%,var(--glass));border:1px solid var(--glassb);box-shadow:var(--glassh);-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%)}
.cic:not(.aberto){padding-bottom:16px}
.cict{font-family:var(--ui);font-size:13px;font-weight:800;letter-spacing:0}
.cictog{width:44px;height:44px;background:var(--surface);border-color:color-mix(in srgb,var(--cic) 35%,var(--glassb))}
.cicmain{background:linear-gradient(135deg,var(--cic),var(--roxo));border-color:transparent;color:#fff;box-shadow:0 10px 22px color-mix(in srgb,var(--cic) 30%,transparent)}
.cicsec{background:var(--surface)}
.cicbtns .btn{min-height:46px}

/* barra de baixo flutuando */
nav.tabs{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));padding-bottom:0;border:1px solid var(--glassb);border-radius:36px;background:color-mix(in srgb,var(--sheet) 86%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 44px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(26px) saturate(170%);backdrop-filter:blur(26px) saturate(170%);max-width:640px;margin:0 auto}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]) nav.tabs{box-shadow:inset 0 1px 0 #fff,0 18px 40px rgba(60,40,110,.16)}}
:root[data-theme="light"] nav.tabs{box-shadow:inset 0 1px 0 #fff,0 18px 40px rgba(60,40,110,.16)}
nav.tabs .in{padding:7px 8px;align-items:center}
nav.tabs button.tab{padding:7px 2px 5px;border-radius:24px;font-size:11px}
nav.tabs button.tab[aria-current="page"]{color:var(--acc1);background:color-mix(in srgb,var(--acc1) 14%,transparent)}
.fab{background:var(--grad3);color:#fff;border:1px solid rgba(255,255,255,.35);transform:translateY(-22px);box-shadow:0 14px 30px color-mix(in srgb,var(--acc2) 45%,transparent),inset 0 1px 0 rgba(255,255,255,.4)}

/* topo */
.top.head{background:color-mix(in srgb,var(--bg) 70%,transparent);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%)}
body.scrolled .top.head{box-shadow:0 1px 0 var(--line)}
.avatar{border-color:var(--glassb)}

/* janelas */
dialog{background:var(--sheet);border-color:var(--glassb);border-radius:28px;box-shadow:0 30px 80px rgba(0,0,0,.4)}
dialog::backdrop{background:rgba(8,6,20,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.mh{background:var(--sheet);border-bottom-color:var(--line)}
.mh h3{font-size:17px}
dialog.painel{border-radius:0;box-shadow:none}
dialog.painel.treino{border-radius:28px 28px 0 0}
.painel.treino .tfoot{background:color-mix(in srgb,var(--sheet) 88%,transparent);border-top-color:var(--line)}
dialog.sheet{border-radius:28px}
.toast{border-radius:999px;padding:11px 18px;box-shadow:0 12px 30px rgba(0,0,0,.3)}
.relcard{border-color:color-mix(in srgb,var(--roxo) 35%,var(--glassb));border-width:1px;border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--roxo) 14%,transparent),var(--glass))}
.cxchip{border-color:var(--acc1)}
.cd.sel{outline-color:var(--roxo)}
.chip.zchip[aria-pressed="true"]{background:var(--surface);color:var(--text);border-color:var(--glassb)}
.wk b{border-color:var(--line)}
.wk.fut b{background:transparent}
.cic .cictop{grid-template-columns:1fr auto;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cic .cicbig{white-space:nowrap}
.cic .cicniv b{display:inline-flex;align-items:center;justify-content:flex-end;gap:2px}
.cic .cictog{position:relative;width:26px;height:26px;margin-left:4px;border:0;background:none;box-shadow:none;font-size:18px;color:var(--cic);align-self:auto}
.cic .cictog::after{content:"";position:absolute;inset:-10px}
.cic .cicgrav+.cictog,.cic .cictop>.cictog{align-self:center}
.acc[open] details.ciccf:not([open])>summary::after{transform:none}
.acc details.ciccf[open]>summary::after{transform:rotate(180deg)}
.cicgf{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cicgf label{min-width:0}.cicgf input,.cicadd input{box-sizing:border-box}
#cicloConf,.ccsubs,.ccb,.ccit{min-width:0;max-width:100%}
.ccacts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ccacts.tres{grid-template-columns:repeat(3,minmax(0,1fr))}.ccacts .btn{min-width:0;white-space:normal;line-height:1.15}
.cccal{box-sizing:border-box}

/* ================= RESPONSIVO: celular primeiro, depois tablet e desktop ================= */
/* margens laterais respeitam o recorte da tela (celular deitado) */
:root{--gl:max(18px,env(safe-area-inset-left,0px));--gr:max(18px,env(safe-area-inset-right,0px))}
.wrap{padding-left:var(--gl);padding-right:var(--gr)}
.top.head{margin-left:calc(-1 * var(--gl));margin-right:calc(-1 * var(--gr));padding-left:var(--gl);padding-right:var(--gr)}
body.scrolled .top.head{padding-left:var(--gl);padding-right:var(--gr)}

/* nada alarga a página: grades e gráficos encolhem junto com a tela */
.grid2>*,.kpis>*,.metric-grid>*,.mgwrap>*,.lifetime>*,.panel,.chart{min-width:0}
.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
.chart canvas,.chart.radar{max-width:100%}
.item>:first-child{min-width:0}
.wk b{width:100%;max-width:42px;height:auto;aspect-ratio:1}
@media (max-width:640px){.grid2{grid-template-columns:minmax(0,1fr)}}

/* celulares pequenos (até 380px) */
@media (max-width:380px){
  .wmh small{letter-spacing:.12em;white-space:nowrap}
  .topright{gap:8px}
  .kpis,.metric-grid,.lifetime.four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi b,.metric .v{font-size:clamp(22px,7.5vw,30px)}
  .herohead{padding:18px 16px}
  .wk-row{gap:4px}
  .mgrow{grid-template-columns:minmax(0,1fr) minmax(24px,.6fr) 36px 58px 14px!important;gap:6px}
  .item{flex-wrap:wrap;column-gap:10px;row-gap:0}
  .item .q{white-space:normal}
}

/* celulares bem estreitos (até 359px): carinha e assinatura cabem ao lado dos botões */
@media (max-width:359px){
  .brand{gap:10px}
  .top.head .brandface svg{width:44px;height:41px}
  .wmh small{font-size:12px;letter-spacing:.08em}
}

/* toque: área mínima de 44px sem mudar o desenho dos botões */
@media (pointer:coarse){
  .avatarbtn{min-width:44px;min-height:44px;display:grid;place-items:center}
  .pernav .btn{min-width:44px;min-height:40px}
  .chip,.segb,.linkbtn{position:relative}
  .chip::after,.segb::after{content:"";position:absolute;inset:-4px 0}
  .linkbtn::after{content:"";position:absolute;inset:-10px -4px}
  nav.tabs button.tab{width:100%}
}

/* celular deitado e telas baixas: cabeçalho e barra mais finos, mais espaço pro conteúdo */
@media (orientation:landscape) and (max-height:520px){
  .top.head,body.scrolled .top.head{padding-top:6px;padding-bottom:6px}
  .top.head .brandface svg{width:36px;height:34px}
  .top.head .wmh .wm{font-size:26px}
  .top.head .wmh small{opacity:0;max-height:0}
  nav.tabs{bottom:calc(6px + env(safe-area-inset-bottom,0px))}
  nav.tabs .in{padding:3px 8px}
  nav.tabs button.tab{padding:4px 2px 3px}
  .fab{width:52px;height:52px;transform:translateY(-8px)}
  .wrap{padding-bottom:96px}
  dialog{max-height:94vh}
  dialog.painel .mh{padding-top:calc(6px + env(safe-area-inset-top,0px));padding-bottom:6px}
  .painel.treino .tfoot{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}
  .painel.treino .fin{padding:10px}
}

/* tablet e desktop: usar a largura sem esticar demais */
@media (min-width:641px){
  .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:768px){
  .herohead .semana{flex:0 1 440px;order:2;margin-left:auto}
}

/* ================= REGISTRO DE TREINO (etapa 1 da critique) ================= */
/* campos com 16px: o iPhone não dá zoom ao tocar */
input,select,textarea{font-size:16px}
.prev .item select,.edblock input,.form select,.form input,.ativo input,.wgrid input,.runx input,.splitrow input,.cicadd input,.cicgf input,.edrow input,.edrow select,.mus-row input,.pk-note input,.pkgrid input,.hfmt input,.hfmt select,.catrow input,.catrow select,.search,#regText{font-size:16px}

/* adicionar treino: os 4 cartões, com o texto em Manrope (a condensada vazava aqui) */
.optgrid2{grid-template-columns:repeat(2,minmax(0,1fr))}
.optgrid2 .opt.big{font-family:var(--ui);align-content:start}
.optgrid2 .opt.big b,.optgrid2 .opt.big .m{font-family:var(--ui);font-style:normal}
.optgrid2 .opt.big b{font-size:16px;font-weight:800;line-height:1.2}
.optgrid2 .opt.big .m{font-size:13px;line-height:1.35}
.colarrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0 6px}
.colarrow .dtl{margin:0}

/* editor de Crossfit: blocos sem conteúdo ficam numa linha só */
.hblock.fechado{padding:0;gap:0}
.hbabre{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:none;border:0;color:var(--text);padding:14px 16px;min-height:52px;border-radius:inherit;text-align:left}
.hbabre b{font-weight:800}
.hbabre span{font-size:14px;color:var(--acc1);font-weight:700}
.hbfecha{font-size:13px;color:var(--muted)}
.fmtchips{display:flex;flex-wrap:wrap;gap:8px}
.fmtchips .chip[aria-pressed="true"]{background:var(--grad);color:var(--ink);border-color:transparent}
.fmtmais{display:block}
.fmtmais select{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;padding:7px 14px;min-height:36px}

/* rodapé do registro: uma linha, sem cancelar colado no FINALIZAR (cancelar fica no ‹ do topo) */
.painel.treino .tfoot .trow{grid-template-columns:auto minmax(0,1fr);align-items:stretch}
.painel.treino .tfoot .trow>.btn.ghost{padding-left:16px;padding-right:16px}

/* erro junto do campo */
.tem-erro{outline:2px solid var(--bad);outline-offset:3px;border-radius:14px}
.hblock.tem-erro,.durpick.tem-erro{border-radius:22px}
.erro-campo{margin:8px 2px 4px;color:var(--bad);font-size:14px;font-weight:600;line-height:1.4}
[aria-invalid="true"]{border-color:var(--bad)!important}
.cats .addblock{border:0;background:none;text-align:left;padding:6px 2px;color:var(--muted);font-weight:600;font-size:13px;width:auto;justify-self:start}
.cats .addblock:hover{color:var(--acc1)}
@media (max-width:380px){
  .painel.treino .tfoot .trow{grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr)}
  .painel.treino .tfoot .trow>.btn.ghost{padding-left:10px;padding-right:10px;font-size:14px;line-height:1.15;white-space:normal}
  .painel.treino .fin{font-size:18px;white-space:nowrap;padding-left:8px;padding-right:8px}
}
@media (max-width:359px){
  .dtbig input{font-size:16px;padding:12px 10px}
  .dtbig input::-webkit-calendar-picker-indicator{width:20px;height:20px;margin-left:2px}
}

/* ================= FIM DO TREINO (etapa 2) ================= */
dialog.fim{width:min(440px,calc(100% - 32px));text-align:center;overflow:hidden;background:radial-gradient(120% 70% at 50% 0%,color-mix(in srgb,var(--acc1) 22%,transparent),transparent 70%),var(--sheet)}
dialog.fim .mb{padding:28px 22px 22px;display:grid;gap:14px;justify-items:center}
.fimface svg{width:84px;height:auto;fill:var(--logo)}
dialog.fim[open] .fimface{animation:fimPop .7s cubic-bezier(.16,1,.3,1) both}
@keyframes fimPop{from{transform:scale(.4) rotate(-12deg);opacity:0}to{transform:none;opacity:1}}
dialog.fim h3{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0;line-height:1.15}
.fimfrase{margin:-6px 0 0;color:var(--muted);font-size:15px}
.fimnums{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px;width:100%;margin-top:4px}
.fimnums div{display:grid;gap:2px;padding:12px 6px;border-radius:20px;background:var(--glass);border:1px solid var(--glassb)}
.fimnums b{font-family:"Barlow Condensed",sans-serif;font-size:30px;font-weight:700;line-height:1}
.fimnums span{font-size:12px;color:var(--muted);font-weight:600}
.fimwod{margin:0;display:flex;gap:8px;align-items:baseline;justify-content:center;flex-wrap:wrap;font-weight:700}
.fimwod span{font-size:12px;font-weight:800;letter-spacing:.06em;color:color-mix(in srgb,var(--acc1) 72%,var(--text))}
.fimpr{width:100%;display:grid;gap:6px;padding:12px 14px;border-radius:20px;background:linear-gradient(135deg,color-mix(in srgb,var(--acc1) 18%,transparent),color-mix(in srgb,var(--acc2) 10%,transparent));border:1px solid color-mix(in srgb,var(--acc1) 35%,var(--glassb));text-align:left}
.fimpr-t{margin:0;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--acc1) 72%,var(--text))}
.fimpr-i{display:flex;align-items:baseline;gap:8px}
.fimpr-i span{flex:1;min-width:0;font-weight:700}
.fimpr-i b{font-family:"Barlow Condensed",sans-serif;font-size:24px;font-weight:700}
.fimpr-i small{color:var(--good);font-weight:700}
.fimsem{width:100%}
.fimsem .semana{justify-items:stretch;margin:0}
.fimsem .wk-t{justify-self:center;margin-bottom:6px}
.fimdata,.fimoff{margin:0}
.fimacts{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:4px}
.fimacts .btn{min-height:48px}

/* ================= SEGURANÇA E DADOS (etapa 3) ================= */
/* confirmação com a cara da marca */
dialog.confirma{width:min(420px,calc(100% - 32px))}
dialog.confirma .mb{padding:24px 22px 20px;display:grid;gap:10px}
dialog.confirma h3{margin:0;font-size:20px;font-weight:800;letter-spacing:-.02em;line-height:1.25}
dialog.confirma p{margin:0;color:var(--muted);line-height:1.5}
.cfacts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:10px}
.cfacts .btn{min-height:48px;white-space:normal;line-height:1.2}
.btn.danger.forte{background:color-mix(in srgb,var(--bad) 72%,#000);border-color:transparent;color:#fff;font-weight:800;box-shadow:none}
/* aviso com ação (Desfazer) */
.toast:has(.toastbtn){align-items:center;gap:14px;padding:8px 8px 8px 18px}
.toastbtn{background:none;border:0;color:inherit;font-weight:800;text-decoration:underline;text-underline-offset:3px;padding:8px 12px;min-height:40px;border-radius:999px}
/* Meu ciclo: apagar fica separado e diz o que apaga */
.ccdel{width:100%;margin-top:10px;min-height:44px;color:var(--bad)}
/* nome do treino separado da categoria */
.cats .nomet{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.cats .nomet input{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:10px 12px;color:var(--text)}

/* ================= TELAS DE LEITURA (etapa 4) ================= */
/* detalhe do exercício: voltar discreto, recorde como herói */
.exvolta{margin:10px 0 0}
.exvolta .linkbtn{color:var(--muted);font-size:14px;font-weight:600;text-decoration:none;padding:8px 0}
.exvolta .linkbtn:hover{color:var(--text)}
.exhero{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 22px;margin:6px 0 14px}
.exhero-n{display:grid;gap:2px}
.exhero-n b{font-family:"Barlow Condensed",sans-serif;font-size:64px;font-weight:700;line-height:.9}
.exhero-n b small{font-size:.38em;margin-left:4px;color:var(--muted);font-weight:600}
.exhero-n span,.exhero-d span{font-size:13px;color:var(--muted);font-weight:600}
.exhero-d{display:grid;gap:2px;padding-bottom:6px}
.exhero-d b{font-family:"Barlow Condensed",sans-serif;font-size:26px;font-weight:700;color:var(--good)}
/* tabela que rola para o lado mostra uma sombra na borda */
.tablewrap.rola{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 36px),transparent)}
/* explicações: primeira frase + "mais" */
.submais{font-size:13px;color:var(--muted);font-weight:600;margin-left:2px}
/* nova avaliação em grupos */
.biodata{display:grid;gap:4px;font-size:13px;color:var(--muted);margin-bottom:6px}
.biogrp{border:0;margin:14px 0 0;padding:0}
.biogrp legend,.biogrp summary{font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:0;margin-bottom:8px}
.biomed summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
/* mapa corporal no traço da marca: contorno fino e sem tom de pele */
.bodysvg{--bodybase:color-mix(in srgb,var(--text) 6%,transparent)}
.blines .bl-f{fill:color-mix(in srgb,var(--text) 55%,transparent)}
.blines .bl-s{stroke:color-mix(in srgb,var(--text) 55%,transparent)}
#bioForm{display:block}
.mgtodos{justify-self:start;margin:8px 8px 0;font-size:14px;font-weight:600;color:var(--muted);min-height:40px}

/* ================= ACESSIBILIDADE E CONTRASTE (etapa 5) ================= */
/* títulos das janelas agora são h2 (antes h3): mesmo visual */
.mh h2{font-size:17px;font-weight:800;margin:0;letter-spacing:-.02em;font-family:var(--ui)}
dialog.painel .mh h2{text-align:center}
dialog.fim h2{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0;line-height:1.15}
dialog.confirma h2{margin:0;font-size:20px;font-weight:800;letter-spacing:-.02em;line-height:1.25}
.accb h3.sech{margin:12px 0 2px;font-size:13px;font-weight:700}

/* cores de texto: no escuro ficam como estão; no claro, o mesmo tom mais fechado (4,5:1) */
:root{--acc1-t:var(--acc1);--z1-t:var(--z1);--z4-t:var(--z4);--z5-t:var(--z5);--z2-t:var(--z2);--ap:#2EC4B6;--cic-t:var(--cic);--good-t:var(--good);--bad-t:var(--bad);--load-t:var(--load);--z3-t:var(--z3)}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){--acc1-t:#A63F0C;--z1-t:#2C5BC0;--z4-t:#A63F0C;--z5-t:#B4232A;--z2-t:#0B7C73;--ap:#0E8A80;--cic-t:#A82A45;--good-t:#0D7349;--bad-t:#B23A31;--load-t:#8A5A10;--z3-t:#87650E}}
:root[data-theme="light"]{--acc1-t:#A63F0C;--z1-t:#2C5BC0;--z4-t:#A63F0C;--z5-t:#B4232A;--z2-t:#0B7C73;--ap:#0E8A80;--cic-t:#A82A45;--good-t:#0D7349;--bad-t:#B23A31;--load-t:#8A5A10;--z3-t:#87650E}
:root .wm .ap{color:var(--ap)}
:root nav.tabs button.tab[aria-current="page"],:root .tipo.open .tipohead .t,:root .hbabre span,:root .tipo-t[aria-pressed="true"]{color:var(--acc1-t)}
:root .cict,:root .cicbig,:root .cicdias,:root .cich .linkbtn,:root .cicniv.n-alto b{color:var(--cic-t)}
:root .delta.good,:root .kpi .delta.good,:root .exhero-d b,:root .fimpr-i small,:root .pill.ok{color:var(--good-t)}
:root .delta.bad,:root .kpi .delta.bad,:root .pill.off,:root .erro-campo,:root .ccdel,:root .btn.danger:not(.forte){color:var(--bad-t)}
:root .row .r b{color:var(--load-t)}
:root .block .res,:root .pill,:root .chipbtn.on,:root .cicniv.n-medio b{color:var(--z3-t)}
/* botão principal do Meu ciclo: branco sobre coral claro não lia; degradê um tom mais fundo */
:root .cicmain{background:linear-gradient(135deg,#C93A56,#7C3AED)}
/* texto de exemplo nos campos */
::placeholder{color:var(--muted);opacity:.85}
/* nada abaixo de 12px */
.tipo-t span.n,.tipo-t .n{font-size:12px}

/* toque: os alvos que ainda estavam pequenos */
@media (pointer:coarse){
  .btn.small{position:relative}
  .btn.small::after{content:"";position:absolute;inset:-4px 0}
  summary{min-height:44px;padding-top:10px;padding-bottom:10px;box-sizing:border-box}
  .hfmt input,.hfmt select,.fmtmais select{min-height:44px}
  .mgrow{min-height:44px}
  input[type="checkbox"],input[type="radio"]{width:20px;height:20px}
  .cicbtns .btn,.ccacts .btn,.ativo input{min-height:44px}
}
/* calendário do ciclo, aviso, cargas e etiqueta de corrida no tom de texto */
:root .cd.fe{color:var(--z1-t)}
:root .cd.mp,:root .cicaviso{color:var(--cic-t)}
:root .item .kg{color:var(--load-t)}
:root .tag.run{color:var(--z2-t)}
:root .cic .cictog{color:var(--cic-t)}

/* ================= TABLET E DESKTOP (etapa 6) ================= */
.fabtxt{display:none}
/* passar o mouse: retorno sutil nas linhas e cartões clicáveis */
@media (hover:hover){
  .rows .row:hover,.sess>button:hover,.mgrow:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}
  .opt:hover{border-color:color-mix(in srgb,var(--acc1) 45%,var(--glassb))}
}
/* desktop: barra lateral fixa no lugar da barra flutuante de celular */
@media (min-width:1024px){
  body{padding-left:248px}
  nav.tabs{top:16px;bottom:16px;left:16px;right:auto;width:216px;max-width:none;margin:0;border-radius:28px;padding:0}
  nav.tabs .in{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:16px 12px;height:100%;max-width:none}
  nav.tabs button.tab{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;padding:12px 14px;font-size:15px;font-weight:700;border-radius:16px;width:100%}
  nav.tabs button.tab svg{width:22px;height:22px;flex:0 0 auto}
  nav.tabs button.tab:hover{color:var(--text);background:color-mix(in srgb,var(--text) 6%,transparent)}
  nav.tabs button.tab[aria-current="page"]:hover{color:var(--acc1-t)}
  .fab{order:-1;transform:none;width:100%;height:auto;min-height:52px;border-radius:999px;margin:0 0 14px;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 18px}
  .fab svg{width:22px;height:22px}
  .fabtxt{display:inline;font-weight:800;font-size:15px}
  .wrap{max-width:1180px;padding-bottom:48px}
  .toast{bottom:calc(24px + env(safe-area-inset-bottom,0px));left:calc(50% + 124px)}
}
@media (min-width:1200px){
  /* Resumo: placar à esquerda (fica parado), dados à direita */
  .rs-grid{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:28px;align-items:start}
  .rs-grid .hero2{position:sticky;top:96px}
  .rs-grid .herohead .semana{flex-basis:100%;order:3;margin-left:0}
  .rs-grid .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rs-dados>h2:first-child{margin-top:14px}
  .rs-dados .grid2{grid-template-columns:minmax(0,1fr)}
}
@media (min-width:1440px){
  .rs-dados .grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px){body.signed-out{padding-left:0}}

/* ================= CORREÇÕES DA CRITIQUE 2 ================= */
/* títulos dos blocos da sessão aberta (agora h3): mesmo visual do h4 de antes */
.block h3.bh{margin:0 0 4px;font-size:14px;color:var(--muted);font-weight:600;letter-spacing:0;font-family:var(--ui)}
/* rodapé do editor: com "Continuar depois" escondido (edição), o botão ocupa a linha toda; o texto nunca vaza */
.painel.treino .tfoot .trow>.btn[hidden]+.fin,.painel.treino .tfoot .trow>.fin:only-child{grid-column:1/-1}
.painel.treino .fin{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
/* descanso: ponto neutro, sem ✕ */
.wk.falta b{background:transparent;border:1px solid var(--line)}
.wk.falta b::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--muted);opacity:.6}
/* resultado do WOD na linha da sessão */
.sess .meta .wodres{color:var(--text);font-weight:700}
/* Meu ciclo: o botão de apagar não passa da borda */
.ccdel{box-sizing:border-box;max-width:100%;white-space:normal}
/* desktop: "Registrar treino" com o degradê de ação e texto em tinta escura (contraste) */
@media (min-width:1024px){
  .fab{background:var(--grad);color:var(--ink);border-color:transparent}
}

/* seletor de exercício: recentes e "da última vez" */
.pk-sec{margin:14px 2px 6px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pk-ult{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 12px;padding:10px 12px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.pk-ult span{display:block;font-size:12px;color:var(--muted);font-weight:600}
.pk-ult b{font-family:"Barlow Condensed",sans-serif;font-size:22px;font-weight:600;line-height:1.1}
/* janela de colar texto: voltar à esquerda, título no meio, fechar à direita */
.mh.mh-volta{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}
.mh.mh-volta h2{text-align:center}
.mh .voltar{width:44px;height:44px;padding:0;display:grid;place-items:center;font-size:20px}
/* dentro dos editores, o print e o Strava são ações de apoio: um destaque por tela (FINALIZAR) */
:root{--strava-t:#FF6A2A}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){--strava-t:#B33A00}}
:root[data-theme="light"]{--strava-t:#B33A00}
.relcard .relprint{background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:none;font-weight:700}
.relcard .relstrava{background:transparent;color:var(--strava-t);border:1px solid color-mix(in srgb,#FC4C02 55%,var(--line));box-shadow:none}
.chip-mais{color:var(--muted);border-style:dashed}
/* nova avaliação: ler foto do laudo */
.biofoto{display:grid;gap:6px;margin:0 0 14px;padding:12px;border-radius:18px;background:var(--surface);border:1px solid var(--line)}
.biofoto .btn{justify-self:start;cursor:pointer}
.biofoto .note{margin:0}
#bioForm input.auto{border-color:color-mix(in srgb,var(--acc1) 60%,var(--line));background:color-mix(in srgb,var(--acc1) 8%,var(--surface))}

/* ================= TIPOGRAFIA (typeset, seguindo o manual) =================
   Manrope: 26 saudação · 21 seção · 17 título · 15 corpo · 14 apoio · 13 rótulo · 12 etiqueta em caixa alta
   Barlow Condensed: só números e logotipo, entrelinha justa e algarismos de largura fixa */
:root{--t-titulo:17px;--t-rotulo:13px;--t-etiqueta:12px;--ls-etiqueta:.06em}

/* título de cartão = título de janela (antes 16 e 17) */
h3{font-size:var(--t-titulo)}
.block h3.bh{font-size:14px}
/* rótulos: 12,5 vira 13 */
.cictop span,.cicprev span,.ciclegenda{font-size:var(--t-rotulo)}
.cicaviso{font-size:var(--t-rotulo)}
/* etiquetas em caixa alta: um só desenho em todo o app */
.biogrp legend,.biogrp summary,.pk-sec,.fimpr-t,.lab{font-size:var(--t-etiqueta);font-weight:800;letter-spacing:var(--ls-etiqueta)}
.acc summary{font-weight:800;letter-spacing:var(--ls-etiqueta)}

/* manual: Barlow só em número e logotipo; itálico só no logotipo */
.pname{font-family:var(--ui);font-size:20px;font-weight:800;letter-spacing:-.02em;line-height:1.2}
.painel.treino .fin,.pushconv .fin{font-family:var(--ui);font-size:15px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.bora{font-family:var(--ui);font-style:normal}
.bora-txt b{font-family:var(--ui);font-size:20px;font-weight:800;letter-spacing:.02em;line-height:1.1}
.bora-txt small,.welcome .bora-txt small{font-family:var(--ui)}

/* números: entrelinha justa (antes herdavam 1,5) e algarismos de largura fixa */
.ztot b,.kpi b,.metric .v,.lifetime b,.mgrow b,.row .r b,.cicniv b,.cicstep b,.fimnums b,.exhero-n b,.exhero-d b,.pk-ult b,.stat b{line-height:1.1}
.big,.kpi b,.metric .v,.lifetime b,.ztot b,.mgrow b,.row .r b,.fimnums b,.exhero-n b,.exhero-d b,.pk-ult b,.date b,.pernav b,td,.wk-t,.cicbig,.cicniv b{font-variant-numeric:tabular-nums}
.pernav b{font-size:20px}

/* leitura: textos de apoio com no máximo ~68 caracteres por linha (desktop) */
p.sub,p.note,.fdesc{max-width:68ch}
p.sub,p.note{line-height:1.55}
/* palavras saem da Barlow: nível do ciclo e dia da semana no bloco de data */
.cicniv b,.cic .cicniv b{font-family:var(--ui);font-size:17px;font-weight:800;letter-spacing:-.01em}
.date span{font-family:var(--ui);font-size:12px;font-weight:600;color:var(--muted)}

/* ================= MOVIMENTO (animate) =================
   Momento principal: na conclusão, o dia de hoje acende na semana. Apoio: entrada curta ao trocar de tela,
   retorno ao toque, hover no desktop, janelas e seções com fade. Só transform e opacidade em movimento. */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-std:cubic-bezier(.2,0,0,1)}
@keyframes entra{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes surge{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes abre{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@keyframes fundo{from{opacity:0}to{opacity:1}}
@keyframes acende{0%{transform:scale(.55);opacity:.35;box-shadow:none}60%{transform:scale(1.08);opacity:1}100%{transform:none;opacity:1}}
@keyframes toastSobe{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}

/* entrada de conteúdo ao trocar de tela (só o que está visível; some sozinha) */
.entra{animation:entra .42s var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms)}

/* retorno ao toque: tudo que é tocável responde em 140ms */
.btn,.chip,.segb,.opt,.iconbtn,.hbabre,.tab-mini,nav.tabs button.tab,.rows .row,.sess>button,.mgrow,.avatarbtn{transition:transform .14s var(--ease-std),background-color .2s,border-color .2s,color .2s,box-shadow .2s,filter .2s}
.btn:active,.chip:active,.segb:active,.opt:active,.iconbtn:active,.hbabre:active,.avatarbtn:active{transform:scale(.97)}
.rows .row:active,.sess>button:active,.mgrow:active{transform:scale(.99)}
nav.tabs button.tab svg{transition:transform .2s var(--ease-out)}
nav.tabs button.tab:active svg{transform:scale(.88)}
nav.tabs button.tab[aria-current="page"] svg{transform:translateY(-1px)}
.fab svg{transition:transform .3s var(--ease-out)}
.fab:active svg{transform:scale(.88)}
@media (hover:hover){
  .btn.primary:hover,.painel.treino .fin:hover,.fab:hover{filter:brightness(1.06) saturate(1.05)}
  .btn:not(.primary):not(.fin):hover,.chip:hover{border-color:color-mix(in srgb,var(--text) 24%,var(--line))}
  .opt:hover{transform:translateY(-2px)}
  .fab:hover svg{transform:rotate(90deg)}
}

/* janelas: fade com leve aproximação (os painéis já deslizam) */
dialog:not(.painel)[open]{animation:abre .26s var(--ease-out)}
dialog[open]::backdrop{animation:fundo .26s ease}
/* seções que abrem e a sessão expandida revelam o conteúdo */
.acc[open]>:not(summary),details.ciccf[open]>:not(summary),.biomed[open]>:not(summary),details.sg[open]>:not(summary),.sess.open .detail,.mgex{animation:surge .28s var(--ease-out)}
/* aviso de baixo sobe */
.toast{animation:toastSobe .26s var(--ease-out)}
/* troca de tema: as cores mudam em fade */
body{transition:background-color .3s ease,color .3s ease}

/* momento principal: o dia de hoje acende no placar da semana na tela de conclusão */
dialog.fim[open] .wk.ok[data-hoje] b{animation:acende .7s var(--ease-out) .45s both}

/* ================= DETALHES (delight) ================= */
/* acabamento do navegador nas cores da marca */
html{accent-color:var(--acc1);caret-color:var(--acc1)}
::selection{background:color-mix(in srgb,var(--acc1) 34%,transparent);color:var(--text)}
*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text) 22%,transparent) transparent}
@media (hover:hover){
  ::-webkit-scrollbar{width:10px;height:10px}
  ::-webkit-scrollbar-track{background:transparent}
  ::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text) 20%,transparent);border-radius:999px;border:3px solid transparent;background-clip:content-box}
  ::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--text) 34%,transparent)}
}
/* selo de recorde na linha da sessão: pequeno, em tom de texto do laranja */
.prtag{display:inline-flex;align-items:center;height:18px;padding:0 7px;border-radius:999px;font:800 11px/1 var(--ui);letter-spacing:.06em;color:var(--acc1-t);background:color-mix(in srgb,var(--acc1) 14%,transparent);border:1px solid color-mix(in srgb,var(--acc1) 35%,transparent)}
/* placar girando: os dígitos não mudam de largura enquanto sobem */
.big.gira{font-variant-numeric:tabular-nums}

/* ================= IGNIÇÃO DO PAINEL (overdrive, só no Resumo) ================= */
.herohead{position:relative}
/* traço de 1px que dá uma volta na borda do placar, sem brilho */
.herohead.ig-borda::after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;
  background:conic-gradient(from var(--ig-a),transparent 0 72%,color-mix(in srgb,var(--acc1) 55%,transparent) 90%,var(--acc1) 97%,transparent 97.4%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:igVolta 1.35s cubic-bezier(.45,.05,.25,1) both}
@property --ig-a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes igVolta{0%{--ig-a:-40deg;opacity:0}12%{opacity:1}78%{opacity:1}100%{--ig-a:320deg;opacity:0}}
/* luz do autoteste por cima de cada dia da semana */
.wk b{position:relative}
.ig-luz{position:absolute;inset:-1px;border-radius:50%;background:var(--grad);pointer-events:none;opacity:0}
/* tambor do odômetro: o dígito real fica transparente e o tambor gira por cima dele */
.ig-d{position:relative;display:inline-block}
/* as peças do tambor herdam o número, não as regras de rótulo do cartão (.kpi span) */
.ig-d,.ig-d span,.kpi b .ig-d,.kpi b .ig-d span{font:inherit;font-weight:inherit}
.kpi .ig-tambor{color:var(--text)}
.ig-d.rodando{color:transparent}
.ig-tambor{position:absolute;inset:0;overflow:hidden;color:var(--text);
  -webkit-mask:linear-gradient(transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(transparent,#000 8%,#000 92%,transparent)}
.ig-col{position:absolute;left:0;right:0;top:0;display:block;will-change:transform}
.ig-col>span{display:block;height:var(--h);line-height:var(--h);text-align:center}
@media (prefers-reduced-motion: reduce){.herohead.ig-borda::after,.ig-luz,.ig-tambor{display:none}.ig-d.rodando{color:inherit}}
