:root{
  --bg:#E4E7EA; --panel:#F5F6F7; --ink:#18202B; --muted:#5B6573; --line:#C9CED4;
  --kashima:#C7A03A; --kashima2:#E6C66A; --lower:#2A2F37; --warn:#A6362B; --chip:#FFFFFF;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#15191F; --panel:#1E232B; --ink:#E8EBEF; --muted:#9AA4B1; --line:#333A44;
    --kashima:#D4AF4A; --kashima2:#F0D27E; --lower:#0E1115; --warn:#E0776B; --chip:#262C35;
  }
}
:root[data-theme="dark"]{
  --bg:#15191F; --panel:#1E232B; --ink:#E8EBEF; --muted:#9AA4B1; --line:#333A44;
  --kashima:#D4AF4A; --kashima2:#F0D27E; --lower:#0E1115; --warn:#E0776B; --chip:#262C35;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.5 "Barlow",system-ui,-apple-system,"Segoe UI",sans-serif}
.wrap{max-width:1040px;margin:0 auto;padding:20px 16px 48px}
header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:20px}
.brand{font-family:"Barlow Condensed","Arial Narrow",sans-serif;line-height:.95}
.brand b{display:block;font-size:40px;font-weight:700;letter-spacing:-.5px}
.brand span{font-size:17px;font-weight:500;color:var(--muted)}
.lang{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.lang button{background:none;border:0;color:var(--muted);font:600 14px "Barlow",sans-serif;padding:6px 10px;cursor:pointer}
.lang button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.grid{display:grid;gap:20px}
@media (min-width:860px){.grid{grid-template-columns:1fr 1.05fr;align-items:start}.result{position:sticky;top:16px}}
.inputs{background:var(--panel);border-radius:10px;padding:4px 18px 18px}
fieldset{border:0;margin:0;padding:16px 0 0}
fieldset+fieldset{border-top:1px solid var(--line);margin-top:16px}
legend{font-family:"Barlow Condensed",sans-serif;font-size:22px;font-weight:600;padding:0;margin-bottom:8px}
.field{margin-bottom:14px}
.field>label,.field>.lbl{display:block;font-size:14px;font-weight:500;color:var(--muted);margin-bottom:6px}
.weight{display:flex;align-items:baseline;gap:6px;font-family:"Barlow Condensed",sans-serif}
.weight output{font-size:46px;font-weight:700;line-height:1}
.weight small{font-size:18px;color:var(--muted)}
input[type=range]{width:100%;accent-color:var(--kashima);height:28px}
select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--chip);color:var(--ink);font:500 16px "Barlow",sans-serif}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{flex:1 1 auto;min-width:64px;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--chip);color:var(--ink);font:500 15px "Barlow",sans-serif;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--kashima);outline-offset:2px}
.result{background:var(--panel);border-radius:10px;padding:18px;border-top:6px solid var(--kashima)}
.result h2{font-family:"Barlow Condensed",sans-serif;font-size:26px;font-weight:700;margin:0 0 2px}
.result .sub{color:var(--muted);font-size:14px;margin:0 0 14px}
.units{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.unit h3{font-family:"Barlow Condensed",sans-serif;font-size:20px;font-weight:600;margin:0 0 6px}
.gauge{display:flex;justify-content:center;margin:4px 0 10px;min-height:190px}
.gauge svg{max-width:100%;height:auto}
.big{font-family:"Barlow Condensed",sans-serif;font-size:40px;font-weight:700;line-height:1}
.big small{font-size:18px;font-weight:500;color:var(--muted)}
.rows{margin:10px 0 0;padding:0;list-style:none}
.rows li{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:15px}
.rows li span:first-child{color:var(--muted)}
.rows li b{font-weight:600;text-align:right}
.locked b{filter:blur(6px);user-select:none}
.tyres{margin-top:16px}
.tyres h3{font-family:"Barlow Condensed",sans-serif;font-size:20px;font-weight:600;margin:0}
.notes{margin:14px 0 0;padding-left:18px;font-size:15px}
.notes li{margin-bottom:4px}
.unlock{margin-top:16px;padding:14px;border:1px dashed var(--kashima);border-radius:8px}
.unlock p{margin:0 0 10px;font-size:15px}
.btn{display:inline-block;padding:11px 16px;border:0;border-radius:6px;background:var(--kashima);color:#1A1405;font:600 16px "Barlow",sans-serif;cursor:pointer}
.btn.ghost{background:none;border:1px solid var(--line);color:var(--ink)}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.saved{margin-top:14px}
.saved h3{font-family:"Barlow Condensed",sans-serif;font-size:20px;margin:0 0 6px}
.saved ul{list-style:none;margin:0;padding:0}
.saved li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line);font-size:15px}
.saved li button{background:none;border:0;color:var(--muted);cursor:pointer;font:500 14px "Barlow",sans-serif;text-decoration:underline}
.warn{color:var(--warn);font-size:14px;margin-top:8px}
footer{margin-top:24px;font-size:13px;color:var(--muted);max-width:70ch}
footer a{color:inherit}
.hidden{display:none!important}
@media (max-width:380px){.big{font-size:34px}.units{gap:10px}}
@media (prefers-reduced-motion:no-preference){.oring{transition:transform .35s ease}}
.tune{margin-top:20px;background:var(--panel);border-radius:10px;padding:18px}
.tune h2{font-family:"Barlow Condensed",sans-serif;font-size:26px;font-weight:700;margin:0 0 2px}
.tune .sub{color:var(--muted);font-size:15px;margin:0 0 14px;max-width:62ch}
.tgrid{display:grid;gap:20px}
@media (min-width:860px){.tgrid{grid-template-columns:1.1fr 1fr}}
.group h3,.cur h3,.log h3{font-family:"Barlow Condensed",sans-serif;font-size:20px;font-weight:600;margin:12px 0 6px}
.group:first-child h3{margin-top:0}
.sym{display:block;width:100%;text-align:left;padding:10px 12px;margin-bottom:6px;border:1px solid var(--line);border-radius:6px;background:var(--chip);color:var(--ink);font:500 15px/1.35 "Barlow",sans-serif;cursor:pointer}
.sym[aria-pressed="true"]{border-color:var(--kashima);box-shadow:inset 4px 0 0 var(--kashima)}
.sym:disabled{opacity:.55;cursor:not-allowed}
.fix{border:1px solid var(--kashima);border-radius:8px;padding:14px;margin-bottom:14px}
.fix .change{font-family:"Barlow Condensed",sans-serif;font-size:28px;font-weight:700;line-height:1.1;margin:0 0 6px}
.fix p{margin:0 0 10px;font-size:15px}
.fix .alt{color:var(--muted);font-size:14px}
table.ct{width:100%;border-collapse:collapse;font-size:15px}
.ct th,.ct td{padding:7px 4px;border-top:1px solid var(--line);text-align:right}
.ct th:first-child,.ct td:first-child{text-align:left;color:var(--muted);font-weight:400}
.ct thead th{border-top:0;font-family:"Barlow Condensed",sans-serif;font-size:17px;font-weight:600;color:var(--ink)}
.ct td.chg{background:color-mix(in srgb,var(--kashima) 25%,transparent);font-weight:600}
.log ol{margin:0;padding-left:22px;font-size:15px}
.log li{margin-bottom:6px}
.log li span{color:var(--muted)}
.empty{color:var(--muted);font-size:15px}
.lockmsg{border:1px dashed var(--kashima);border-radius:8px;padding:12px;margin-bottom:12px;font-size:15px}
.lockmsg p{margin:0 0 10px}
dialog{border:0;border-radius:12px;padding:0;width:min(520px,calc(100% - 24px));max-height:calc(100% - 24px);background:var(--panel);color:var(--ink)}
dialog::backdrop{background:rgba(10,14,20,.55)}
.dlg{padding:20px}
.dlg h2{font-family:"Barlow Condensed",sans-serif;font-size:28px;font-weight:700;margin:0 0 4px}
.dlg .sub{color:var(--muted);font-size:15px;margin:0 0 16px}
.dlg label.f{display:block;font-size:14px;font-weight:500;color:var(--muted);margin:0 0 4px}
.dlg input[type=text],.dlg input[type=email],.code input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--chip);color:var(--ink);font:500 16px "Barlow",sans-serif;margin-bottom:12px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;margin-bottom:10px}
.check input{margin-top:3px;width:18px;height:18px;accent-color:var(--kashima);flex:none}
.err{color:var(--warn);font-size:14px;margin:0 0 10px}
.pay{display:grid;gap:16px}
@media (min-width:520px){.pay{grid-template-columns:1fr auto}}
.pay dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:15px}
.pay dt{color:var(--muted)}
.pay dd{margin:0;font-weight:600;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.pay dd span{white-space:nowrap}
.qr{background:#fff;padding:8px;border-radius:8px;justify-self:center;line-height:0}
.qr img{width:170px;height:170px;image-rendering:pixelated}
.copy{background:none;border:0;padding:0 0 0 6px;color:var(--muted);font:500 13px "Barlow",sans-serif;text-decoration:underline;cursor:pointer}
.code{display:flex;gap:8px;margin-top:12px}
.code input{margin:0}
#codeIn{text-transform:uppercase;letter-spacing:1px}
.code .btn{flex:none}
.linkbtn{background:none;border:0;padding:0;color:var(--muted);font:500 14px "Barlow",sans-serif;text-decoration:underline;cursor:pointer}
.licence{font-size:14px;color:var(--muted);margin:14px 0 0}
.admin{margin-top:20px;background:var(--panel);border-radius:10px;padding:18px;border:2px dashed var(--warn)}
.admin h2{font-family:"Barlow Condensed",sans-serif;font-size:24px;margin:0 0 8px}
.admin pre{background:var(--chip);padding:10px;border-radius:6px;overflow-x:auto;font-size:15px}
.stop{border:1px solid var(--warn);border-radius:8px;padding:16px}
.stop h2{color:var(--warn)}
.stop p{margin:0 0 10px;font-size:15px;max-width:60ch}
.stop a{color:var(--ink);font-weight:600}
.sagcheck{margin-top:16px}
.sagcheck h3{font-family:"Barlow Condensed",sans-serif;font-size:20px;font-weight:600;margin:0 0 2px}
.sagin{display:flex;flex-wrap:wrap;gap:12px}
.sagin label{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:500;color:var(--muted)}
.sagin span{display:flex;align-items:center;gap:6px;color:var(--ink)}
.sagin input{width:96px;padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--chip);color:var(--ink);font:500 16px "Barlow",sans-serif}
.rows li.warnrow b{color:var(--warn)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.code{flex-wrap:wrap}
.code #licEmail{flex:1 1 100%}
.code #codeIn{flex:1 1 140px}
.cform{display:grid;gap:6px;max-width:560px}
.cform label{font-size:14px;font-weight:500;color:var(--muted);margin-top:6px}
.cform textarea,.cform input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:var(--chip);color:var(--ink);font:500 16px "Barlow",sans-serif;resize:vertical}
.cform .btn{justify-self:start;margin-top:10px}
.how{font-size:14px;color:var(--muted);margin:4px 0 10px;max-width:62ch}
.sheetwrap{overflow-x:auto}
table.sheet{width:100%;border-collapse:collapse;font-size:15px}
.sheet th,.sheet td{padding:6px 4px;border-top:1px solid var(--line);vertical-align:middle}
.sheet thead th{border-top:0;font-family:"Barlow Condensed",sans-serif;font-size:17px;font-weight:600;text-align:left}
.sheet tbody th{font-weight:400;color:var(--muted);text-align:left;width:42%}
.sheet tr.grp th{font-family:"Barlow Condensed",sans-serif;font-size:18px;font-weight:600;color:var(--ink);padding-top:14px}
.sheet td.rec b{font-weight:600}
.sheet td.locked b{filter:blur(5px);user-select:none}
.sheet td.mine input{width:88px;padding:7px 8px;border:1px solid var(--line);border-radius:6px;background:var(--chip);color:var(--ink);font:500 16px "Barlow",sans-serif}
.sheet td.mine.chg input{border-color:var(--kashima);box-shadow:0 0 0 2px color-mix(in srgb,var(--kashima) 40%,transparent)}
.sheet small{display:block;font-size:13px;margin-top:3px}
.sheet small.good{color:var(--muted)}
.sheet small.bad{color:var(--warn)}
.mysetups{background:var(--panel);border-radius:10px;padding:18px;border-top:6px solid var(--kashima);margin-bottom:20px}
.mysetups h3{margin-top:18px!important;font-family:"Barlow Condensed",sans-serif;font-size:20px;font-weight:600;margin:0 0 8px}
.trackin{display:flex;flex-wrap:wrap;gap:10px}
.trackin label,.tnotes{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--muted);flex:1 1 150px}
.tnotes{margin-top:10px}
.mysetups input{padding:9px 10px;border:1px solid var(--line);border-radius:6px;background:var(--chip);color:var(--ink);font:500 16px "Barlow",sans-serif}
.loglist{list-style:none;margin:0;padding:0}
.loglist li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line);font-size:15px}
.loglist small{color:var(--muted)}
.loglist button{background:none;border:0;color:var(--muted);cursor:pointer;font:500 14px "Barlow",sans-serif;text-decoration:underline}
.plans{display:grid;gap:8px;margin:4px 0 10px}
.plan{display:flex;flex-direction:column;gap:3px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--chip);color:var(--ink);cursor:pointer;font:400 15px "Barlow",sans-serif}
.plan b{font-family:"Barlow Condensed",sans-serif;font-size:19px;font-weight:600}
.plan span{color:var(--muted)}
.plan[aria-checked="true"]{border-color:var(--kashima);box-shadow:0 0 0 2px var(--kashima)}
#consultMsg a{color:var(--ink);font-weight:600}
.coach{border-top-color:var(--ink)}
.coachnote{white-space:pre-wrap;font-size:16px;line-height:1.5;margin:6px 0 12px;padding:12px 14px;border-left:4px solid var(--kashima);background:var(--chip);border-radius:6px}
/* ---- app layout: tabs ---- */
body{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.wrap{max-width:720px}
header{align-items:center;margin-bottom:14px}
.brand b{font-size:32px}
.brand span{font-size:15px}
.status{font:600 13px "Barlow",sans-serif;letter-spacing:.5px;text-transform:uppercase;padding:5px 10px;border:1px solid var(--line);border-radius:999px;color:var(--muted)}
.panel{background:var(--panel);border-radius:10px;padding:16px;margin-bottom:14px}
.panel h2{font-family:"Barlow Condensed",sans-serif;font-size:26px;font-weight:700;margin:0 0 2px}
.panel .sub{color:var(--muted);font-size:14px;margin:0 0 12px}
#resultBody{border-top:6px solid var(--kashima)}
.phead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.phead .sub{margin-bottom:10px}
.btn.small{padding:8px 14px;font-size:15px;white-space:nowrap}
.btn.wide{width:100%;margin-top:6px}
.bikecard .inputs{margin-top:8px}
.bikecard fieldset{border:0;padding:0;margin:0 0 14px}
details.more{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
details.more summary{cursor:pointer;font:600 16px "Barlow",sans-serif;color:var(--ink);list-style:none;display:flex;justify-content:space-between}
details.more summary::-webkit-details-marker{display:none}
details.more summary::after{content:"+";color:var(--muted);font-weight:400}
details.more[open] summary::after{content:"–"}
details.more .units{margin-top:10px}
#symptoms{margin-top:6px}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);max-width:720px;margin:0 auto;
  background:var(--panel);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px))}
.tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border:0;background:none;color:var(--muted);font:600 12px "Barlow",sans-serif;cursor:pointer;border-radius:8px}
.tabbar svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tabbar button[aria-selected="true"]{color:var(--ink);background:var(--chip)}
.tabbar button[aria-selected="true"] svg{stroke:var(--kashima)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:30;max-width:92vw;
  background:var(--ink);color:var(--panel);padding:10px 16px;border-radius:8px;font:500 15px "Barlow",sans-serif;box-shadow:0 6px 20px rgba(0,0,0,.25)}
.loglist{list-style:none;margin:0;padding:0}
.loglist li{border-top:1px solid var(--line)}
.logrow{display:flex;width:100%;align-items:center;gap:10px;padding:12px 2px;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer;font:400 16px "Barlow",sans-serif}
.logrow span{flex:1;display:flex;flex-direction:column;gap:2px}
.logrow b{font-weight:600}
.logrow small{color:var(--muted);font-size:13px}
.logrow em{font-style:normal;font-size:12px;font-weight:600;color:var(--kashima);border:1px solid var(--kashima);border-radius:999px;padding:2px 8px}
.logrow i{font-style:normal;font-size:24px;color:var(--muted)}
.loglist .logrow{text-decoration:none;color:var(--ink);font:400 16px "Barlow",sans-serif}
.loglist li.empty{padding:12px 0;color:var(--muted);font-size:15px}
.back{margin-bottom:10px;font-size:15px;text-decoration:none}
td.diffc{color:var(--warn);font-weight:600}
#saveDlg{border:0;border-radius:12px;padding:0;width:min(440px,92vw);background:var(--panel);color:var(--ink)}
#saveDlg::backdrop{background:rgba(0,0,0,.45)}
.savef{padding:18px;display:grid;gap:10px}
.savef h2{font-family:"Barlow Condensed",sans-serif;font-size:24px;margin:0}
.savef label{display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--muted)}
.savef input{padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--chip);color:var(--ink);font:500 16px "Barlow",sans-serif}
#tab-matej .cform{max-width:none}
.loglist li{display:flex;align-items:center;gap:6px}
.pick{display:flex;align-items:center;padding:10px 4px 10px 0}
.pick input{width:20px;height:20px;accent-color:var(--kashima)}
.logrow{flex:1}
table.cmp th[scope="col"]{min-width:90px}
#showMagic{display:block;margin-top:10px;font-size:14px}
#licEmail,#magicEmail{text-transform:none;letter-spacing:normal}
#licEmail::placeholder,#magicEmail::placeholder{text-transform:none;letter-spacing:normal}
table.cmp{font-size:14px}
table.cmp tbody th{width:28%}
table.cmp th[scope="col"]{min-width:78px}
.hright{display:flex;align-items:center;gap:12px}
.guidelink{font:600 14px "Barlow",sans-serif;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--kashima)}
.newhere{border-left:4px solid var(--kashima)}
.newhere p{margin:0 0 10px}
.guideinline{margin-left:10px;font-size:15px}

/* ---- 2026-09 review additions ---- */
.stepper{display:flex;align-items:center;gap:10px}
.stepper button{width:40px;height:40px;border-radius:8px;border:1px solid var(--line);background:var(--chip);color:var(--ink);font:600 22px/1 "Barlow",sans-serif;cursor:pointer;flex:none}
.stepper button:active{transform:translateY(1px)}
.banner{margin:0 0 16px;padding:12px 14px;border-radius:8px;background:var(--chip);border-left:4px solid var(--kashima);font-size:15px}
.banner.warn{border-left-color:var(--warn)}
.banner p{margin:0 0 8px}.banner p:last-child{margin:0}
.offline{position:sticky;top:0;z-index:30;margin:-4px 0 12px;padding:6px 12px;border-radius:6px;background:var(--lower);color:#fff;font-size:14px;text-align:center}
.retry{margin-left:8px}
.paynote{margin-top:12px;font-size:14px;color:var(--muted)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--kashima);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* ---- Desktop and large tablet: navigation on top, bike and setup side by side ---- */
@media (min-width:1024px){
  body{padding-bottom:32px}
  .wrap{max-width:1200px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "nav" "main" "foot";padding-top:24px}
  .wrap>header{grid-area:head;margin-bottom:12px}
  .wrap>main{grid-area:main}
  .wrap>footer{grid-area:foot}
  .tabbar{grid-area:nav;position:sticky;top:0;z-index:25;max-width:none;margin:0 0 18px;display:flex;gap:4px;justify-content:flex-start;
    background:var(--bg);border:0;border-bottom:1px solid var(--line);padding:6px 0 8px}
  .tabbar button{flex-direction:row;gap:8px;padding:9px 16px;font-size:15px}
  .tabbar svg{width:20px;height:20px}
  .toast{bottom:28px}
  /* Setup tab: form on the left, the setup sheet stays in view on the right */
  #tab-setup:not(.hidden){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);column-gap:20px;align-items:start}
  #tab-setup>#licBanner,#tab-setup>#newHere{grid-column:1/-1}
  #tab-setup>.bikecard{grid-column:1}
  #tab-setup>#serviceStop,#tab-setup>#resultBody{grid-column:2;grid-row:span 3}
  #bikeForm.hidden{display:block!important}
  #editBike,#doneBike{display:none}
  /* Other tabs: comfortable reading width */
  #tab-tune,#tab-setups,#tab-matej{max-width:900px}
  #tab-matej:not(.hidden){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:20px;align-items:start}
  #tab-matej>#coachBox,#tab-matej>#matejLock{grid-column:1/-1}
  footer{max-width:none}
}

.hright{display:flex;align-items:center;gap:12px}
.installbtn{white-space:nowrap;font:600 14px "Barlow",sans-serif;color:var(--ink);background:var(--chip);border:1px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer}
#installHow ol{margin:6px 0 12px;padding-left:20px}#installHow li{margin:4px 0}
@media (display-mode:standalone){.installbtn{display:none!important}}
@media (max-width:360px){.brand span{display:none}}

.rate{margin:0 0 14px;padding:14px;border-radius:8px;background:var(--chip);border-left:4px solid var(--kashima)}
.rate p{margin:0 0 6px}.rate .change{font:700 18px "Barlow Condensed",sans-serif}
.ratebtns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.ratebtns .btn{padding-left:6px;padding-right:6px;white-space:nowrap}
.res{font-style:normal;font-size:13px;font-weight:600;padding:1px 8px;border-radius:999px;margin-left:6px;border:1px solid var(--line);white-space:nowrap}
.res-better{color:#2f7d4a;border-color:#2f7d4a}.res-worse{color:var(--warn);border-color:var(--warn)}.res-same{color:var(--muted)}

.advisor{margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--chip)}
.advisor h3{font:700 20px "Barlow Condensed",sans-serif;margin:0 0 2px}
.thread{max-height:420px;overflow:auto;display:flex;flex-direction:column;gap:8px;margin:10px 0;padding:2px}
.msg{max-width:88%;padding:9px 12px;border-radius:12px;font-size:15px;line-height:1.45}
.msg.me{align-self:flex-end;background:var(--ink);color:var(--panel);border-bottom-right-radius:4px}
.msg.ai{align-self:flex-start;background:var(--panel);border:1px solid var(--line);border-bottom-left-radius:4px}
.msg.typing{color:var(--muted);font-style:italic}
.fix.sugg{margin:0;align-self:stretch}
#advIn{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font:400 16px "Barlow",sans-serif;resize:vertical}
.advisor .actions{display:flex;align-items:center;gap:12px;margin-top:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Autosave state under Bike and conditions */
.savestate{margin:-4px 0 10px;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px;min-height:18px}
.savestate .tick{color:#2E8B57;font-weight:700;transition:opacity .2s}
.savestate.saving .tick{opacity:0}
.savestate.failed{color:#C0392B}
.savestate.failed .tick{display:none}
#otpIn{letter-spacing:.3em;font-variant-numeric:tabular-nums;max-width:12ch}

/* Race day plan: each change with its reason */
.raceplan{list-style:none;margin:6px 0 14px;padding:0}
.raceplan li{padding:8px 0;border-top:1px solid var(--line)}
.raceplan li:first-child{border-top:0}
.raceplan li p{margin:0}
.raceplan li p+p{margin-top:4px;color:var(--muted);font-size:15px}
.raceplan.kept li p{color:var(--muted);font-size:15px}
.raceplan .change{font-size:21px;line-height:1.2}
.raceplan .fromto{display:block;font:500 14px "Barlow",sans-serif;color:var(--muted);margin-top:2px}

/* My bikes */
.bikepick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.bikepick label{font-size:14px;font-weight:500;color:var(--muted)}
.bikepick select{flex:1 1 160px;width:auto;min-width:0}
#bikesView:not(.hidden)+.setupshead{margin-top:26px}
.logfilter{margin:0 0 10px}
.loglist small .bk{color:var(--ink);font-weight:500}
