/* Shoe rotation tracker: page styles on top of rp.css (Floor Tape). */
[hidden]{display:none!important}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
main{overflow-x:clip}
.trk{max-width:1280px;margin:0 auto;padding:4vh 6vw 0;scroll-margin-top:1rem}
.trk:focus{outline:none}
.trk>h2,.h2b{font:800 clamp(1.8rem,4vw,2.6rem)/1 Shoulders;text-transform:uppercase;margin:0 0 .6rem}
.h2b{margin-top:3.4rem}
.trk-lede{max-width:56ch;margin:0 0 1.6rem}
.hint{color:var(--dust);font-size:1rem;margin:.7rem 0 0;max-width:62ch}
.hint code{font:700 .9em ShText,sans-serif;color:var(--chalk);overflow-wrap:anywhere}
.fine{color:var(--dust);font-size:.95rem;max-width:64ch;margin:1.6rem 0 0}
.empty{color:var(--dust);background:var(--slab-2);padding:1.2rem 1.4rem;max-width:64ch;outline:2px dashed rgba(237,231,217,.28);outline-offset:-8px}
.empty[hidden]{display:none}

/* setup strip */
.setup{display:flex;flex-wrap:wrap;gap:1rem 1.8rem;align-items:flex-end;margin:0 0 2.4rem}
.setup .f{min-width:0}
.setup .lab,.fld label,.fld .lab{display:block;font:800 .95rem Shoulders;letter-spacing:.1em;text-transform:uppercase;color:var(--dust);margin:0 0 .35rem}
.setup input,.setup select,.fld input,.fld select,.fld textarea{width:100%;min-height:48px;font:600 1.05rem ShText,sans-serif;padding:.7rem .9rem;border:2px solid var(--tape);border-radius:10px;background:var(--slab);color:var(--chalk);caret-color:var(--flag)}
.setup input[type=date]{min-width:11.5rem}
.setup select{min-width:6rem}
.setup .jump{flex:1 1 20rem}
.setup .chips{margin:0}
.asm .f{width:11rem}
.fld textarea{font:500 .95rem/1.4 ShText,sans-serif;resize:vertical;min-height:7rem;white-space:pre;overflow:auto}
.fld input[aria-invalid=true]{border-color:var(--flag);box-shadow:0 0 0 3px rgba(226,54,31,.3)}
.fld select option{background:var(--slab);color:var(--chalk)}
::placeholder{color:#8A8478;opacity:1}
.ferr{margin:.35rem 0 0;color:#FF8A78;font:700 .95rem/1.3 ShText,sans-serif;display:flex;gap:.45rem;align-items:flex-start;overflow-wrap:anywhere}
.ferr:empty{display:none}
.ferr::before{content:"";width:.7rem;height:.7rem;margin-top:.3rem;background:var(--flag);transform:rotate(45deg);flex:none}
.seg{display:inline-flex;border:2px solid var(--tape);border-radius:10px;overflow:hidden}
.seg button{min-height:48px;min-width:64px;padding:0 1rem;background:transparent;color:var(--chalk);border:0;font:800 1.1rem Shoulders;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.seg button[aria-pressed=true]{background:var(--tape);color:var(--slab)}
.seg button:not([aria-pressed=true]):hover{background:rgba(255,194,14,.12)}

/* the two entry lanes */
.lanes{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:2.4rem 3vw;align-items:start}
.lane{padding:1.8rem 1.4rem 1.4rem;min-width:0}
.lane h3{font:800 1.6rem/1.1 Shoulders;text-transform:uppercase;color:var(--chalk);margin:0 0 1rem}
.step .stn{position:absolute;right:1rem;top:.9rem;margin:0;font:900 4.6rem/.8 Stencil;color:#33302B;transform:rotate(6deg);pointer-events:none}
.step h3{padding-right:4rem}
.ctl2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));gap:.9rem}
.ctl2 .w2{grid-column:span 2}
.ctl2 .fld{min-width:0}
.acts{display:flex;flex-wrap:wrap;gap:.8rem 1rem;align-items:center;margin:1.2rem 0 0}
.acts.col{flex-direction:column;align-items:stretch}
.acts[hidden],.acts [hidden]{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:44px}
.ghost{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:44px}
.btn:focus-visible,.ghost:focus-visible,.chip:focus-visible,.seg button:focus-visible{outline:3px solid var(--flag);outline-offset:3px}
.okmsg{color:var(--tape);font:700 1rem ShText,sans-serif}
.okmsg:empty{display:none}
.undo{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;margin:1.6rem 0 0;padding:.8rem 1.2rem;background:var(--bib);color:var(--slab);border-radius:10px;font:700 1.05rem ShText,sans-serif}
.undo[hidden]{display:none}
.undo .ghost{color:var(--slab);border-color:var(--slab);min-height:44px}
.undo span{min-width:0;overflow-wrap:anywhere}

/* totals + pair cards */
.trk .sum{margin:0 0 1.6rem}
.trk .sum b{font-size:2.2rem}
.pairs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,21rem),1fr));gap:2.2rem 2rem}
.card{background:var(--slab-2);position:relative;padding:1.7rem 1.4rem 1.3rem;min-width:0}
.card::before{content:"";position:absolute;left:-.4rem;right:.6rem;top:0;height:.5rem;background:var(--tape);transform:rotate(-.5deg)}
.card:nth-child(even)::before{transform:rotate(.4deg);left:.4rem;right:-.3rem}
.card .ltr{position:absolute;right:.9rem;top:.7rem;font:900 4.4rem/.8 Stencil;color:var(--tape);opacity:.9;transform:rotate(-5deg);pointer-events:none}
.card h3{font:800 1.5rem/1.15 Shoulders;text-transform:uppercase;margin:0 4rem .2rem 0;color:var(--chalk);overflow-wrap:anywhere}
.card .meta{color:var(--dust);font-size:1rem;margin:0 0 .6rem;overflow-wrap:anywhere}
.card .big{font:900 3rem/1 Stencil;color:var(--tape);margin:.2rem 0 0}
.card .big small{font:800 1.1rem Shoulders;letter-spacing:.1em;text-transform:uppercase;color:var(--dust);margin-left:.4rem}
.card dl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.3rem 1rem;margin:1rem 0 .4rem}
.card dt{color:var(--dust);font-size:1rem}
.card dd{margin:0;text-align:right;font-weight:700;overflow-wrap:anywhere}
.card .state{margin:.8rem 0 0;padding:.5rem .8rem;border-left:6px solid var(--dust);background:rgba(237,231,217,.05);font-weight:700;font-size:1.05rem}
.card .state.soon{border-left-color:var(--tape)}
.card .state.due{border-left-color:var(--flag);background:rgba(226,54,31,.14)}
.card .state b{display:block;font:800 .9rem Shoulders;letter-spacing:.12em;text-transform:uppercase;color:var(--dust)}
.card .state.soon b{color:var(--tape)}.card .state.due b{color:#FF8A78}
.bars{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;align-items:end;height:3.6rem;margin:1rem 0 .2rem;border-bottom:3px solid var(--dust)}
.bars i{display:block;background:var(--tape);min-height:2px;opacity:.55}
.bars i:last-child{opacity:1}
.bars i.z{background:var(--dust);opacity:.4;height:2px!important}
.barcap{color:var(--dust);font-size:.88rem;margin:0}
.cacts{display:flex;flex-wrap:wrap;gap:.4rem .6rem;margin:1rem 0 0}
.cacts button{min-height:44px;min-width:44px;padding:.4rem .9rem;border:2px solid var(--dust);border-radius:10px;background:transparent;color:var(--chalk);font:800 1rem Shoulders;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.cacts button:hover{border-color:var(--tape);color:var(--tape)}
.cacts button:focus-visible,.tbl button:focus-visible{outline:3px solid var(--flag);outline-offset:3px}
.cacts .danger:hover{border-color:#FF8A78;color:#FF8A78}
.card details{margin:.8rem 0 0;color:var(--dust)}
.card summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:1rem}
.card details ul{list-style:none;margin:0;padding:0}
.card details li{display:flex;justify-content:space-between;gap:.6rem;align-items:center;margin:0;color:var(--chalk);max-width:none}
.card details li button{min-height:44px;min-width:44px;background:none;border:0;color:var(--tape);text-decoration:underline;font:inherit;cursor:pointer}
.confirm{margin:1rem 0 0;padding:1rem;background:var(--bib);color:var(--slab);border-radius:10px}
.confirm p{margin:0 0 .6rem;font-weight:700;color:var(--slab);overflow-wrap:anywhere}.confirm option{overflow-wrap:anywhere}
.confirm label{display:block;font:800 .9rem Shoulders;letter-spacing:.08em;text-transform:uppercase;color:#4F4A41;margin:.4rem 0 .3rem}
.confirm select{width:100%;min-height:48px;padding:.6rem .8rem;border:2px solid var(--slab);border-radius:10px;background:#fff;color:var(--slab);font:600 1rem ShText,sans-serif}
.confirm .row{display:flex;flex-wrap:wrap;gap:.6rem;margin:.8rem 0 0}
.confirm .btn{background:var(--slab);color:var(--bib)}
.confirm .ghost{color:var(--slab);border-color:var(--slab)}
.starter{grid-column:1/-1;background:var(--slab-2);padding:2rem 1.4rem;position:relative;overflow:hidden}
.starter::before{content:"A";position:absolute;right:1rem;top:-.4rem;font:900 9rem/1 Stencil;color:#2F2C28;transform:rotate(-6deg);pointer-events:none}
.starter p{position:relative;max-width:52ch;margin:0 0 1rem}
.starter .acts{position:relative}

/* run log */
.logbar{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;align-items:flex-end;margin:0 0 1rem}
.logbar .fld{min-width:min(12rem,100%);max-width:100%}.logbar select{max-width:100%;text-overflow:ellipsis}.logbar p{margin:0}
.tbl td,.tbl th{vertical-align:middle}
.tbl td.pn{overflow-wrap:anywhere;min-width:7rem}
.tbl td.later{color:var(--dust)}
.tbl .tag{display:inline-block;margin-left:.4rem;padding:0 .4rem;border:1px solid var(--dust);border-radius:4px;font:800 .75rem Shoulders;letter-spacing:.08em;text-transform:uppercase;color:var(--dust)}
.tbl .ra{white-space:nowrap;text-align:right}
.tbl .ra button{min-height:44px;min-width:44px;background:none;border:0;color:var(--tape);font:800 1rem Shoulders;letter-spacing:.06em;text-transform:uppercase;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.tbl .ra button.del{color:#FF8A78}
.tbl tr.editing td{background:rgba(255,194,14,.12)!important}
.tbl tr.tot td{border-top:3px solid var(--tape)}

/* year + comparison */
#yearTbl th.r,#yearTbl td.r{text-align:right}
.steps{padding-left:1.4rem;max-width:64ch}.steps li{margin:.5rem 0}
.cmpg{grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr))}
.cmp .fld{margin:.8rem 0 0}
.cmp .res{margin:1rem 0 0;padding:.8rem 0 0;border-top:2px dashed rgba(237,231,217,.28)}
.cmp .res p{margin:.35rem 0;font-size:1.02rem;max-width:none;overflow-wrap:anywhere}
.cmp .res b{color:var(--tape);font-weight:700}
.cmp .res .why{color:var(--dust);font-size:.92rem}
.cmp .ltr{font-size:3.4rem}
.assume{margin:2rem 0 0;padding:1.2rem 1.4rem;background:var(--slab-2);max-width:64rem;outline:2px dashed rgba(237,231,217,.28);outline-offset:-8px}
.assume h3{margin-top:0}
.assume ul{margin:.4rem 0 0}.assume li{overflow-wrap:anywhere}
.assume[hidden]{display:none}

/* wear check list, data lanes */
.chk{list-style:none;padding:0;max-width:62ch}
.chk li{position:relative;padding-left:2.2rem;margin:.6rem 0}
.chk li::before{content:"";position:absolute;left:0;top:.2em;width:1.1rem;height:1.1rem;border:3px solid var(--tape)}
.datag{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.2rem 3vw;margin:0 0 2.2rem}
.imp,.wipe{margin:0 0 2.2rem}
.tick{display:flex;gap:.8rem;align-items:center;min-height:48px;cursor:pointer;font-weight:700}
.tick input{width:1.5rem;height:1.5rem;min-height:0;padding:0;border-radius:4px;flex:none;accent-color:var(--tape)}
.tick span{min-width:0}
.filebtn{cursor:pointer}
#csvFile:focus-visible+.filebtn{outline:3px solid var(--flag);outline-offset:3px}
.pv{margin:1rem 0 0;min-width:0}
.pv .ok,.pv .bad{margin:0 0 .6rem;font-weight:700}
.pv .bad{color:#FF8A78}
.pv ul{margin:.2rem 0 .6rem;padding-left:1.2rem}.pv li{max-width:none;overflow-wrap:anywhere}
.pv .tblw{margin:.6rem 0}
.pv .tbl{font-size:.95rem}
.st-add{color:var(--tape);font-weight:700}.st-dup{color:var(--dust)}
.sec .lane{margin-top:1rem}
.by-belmo{white-space:nowrap}
#printLedger{display:none}

/* sticky bar and small screens */
#stickycta span{flex:1;min-width:0}
#stickycta .cta{flex:none}
@media (max-width:900px){.lanes,.datag{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
 .trk{padding-top:3vh}
 .setup{gap:1rem}.setup .f{flex:1 1 9rem}.setup .jump{flex-basis:100%}
 .setup input[type=date]{min-width:0}
 .ctl2 .w2{grid-column:1/-1}
 .step .stn{font-size:3.6rem}
 .card .big{font-size:2.6rem}
 .acts .btn,.acts .ghost{flex:1 1 auto}
 .acts.col .btn,.acts.col .ghost{width:100%}
 .tbl{font-size:.98rem}.tbl th,.tbl td{padding:.55rem .5rem}
}
@media (max-width:600px){
 #logWrap{overflow:visible}
 #logWrap thead{display:none}
 #logWrap table,#logWrap tbody{display:block}
 #logWrap tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"d dist" "p s" "a a";gap:.1rem .8rem;padding:.8rem .6rem .3rem;background:var(--slab-2);margin:0 0 .7rem}
 #logWrap td{padding:0!important;background:none!important;min-width:0;text-align:left}
 #logWrap td:nth-child(1){grid-area:d;font-weight:700}
 #logWrap td:nth-child(2){grid-area:p}
 #logWrap td:nth-child(3){grid-area:dist;text-align:right;white-space:normal}
 #logWrap td:nth-child(4){grid-area:s;text-align:right;color:var(--dust)}
 #logWrap td:nth-child(5){grid-area:a;text-align:right}
 #logWrap tr.editing{outline:3px solid var(--tape)}
}
@media (max-width:430px){#stickycta span{display:none}#stickycta .cta{width:100%}}
@media print{
 body>*:not(#printLedger){display:none!important}
 #printLedger{display:block!important;color:#1A1917;background:#fff;font:10pt/1.35 ShText,sans-serif}
 #printLedger h1{font:900 22pt/1 Stencil;margin:0 0 2mm;max-width:none;text-transform:uppercase}
 #printLedger h2{font:800 12pt Shoulders;letter-spacing:.08em;text-transform:uppercase;margin:6mm 0 2mm;border-bottom:2pt solid #1A1917;padding-bottom:1mm}
 #printLedger p{margin:0 0 2mm;color:#1A1917;max-width:none}
 #printLedger table{width:100%;border-collapse:collapse;margin:0 0 3mm}
 #printLedger th{font:800 8pt Shoulders;letter-spacing:.08em;text-transform:uppercase;text-align:left;border-bottom:1.5pt solid #1A1917;padding:1.2mm 1.5mm}
 #printLedger td{border-bottom:.5pt solid #999;padding:1.2mm 1.5mm;vertical-align:top;font-size:9pt}
 #printLedger .r{text-align:right}
 #printLedger tr{break-inside:avoid}
 #printLedger .box{display:inline-block;width:3.2mm;height:3.2mm;border:1pt solid #1A1917;margin-right:2mm;vertical-align:-.5mm}
 #printLedger ul{list-style:none;margin:0;padding:0}#printLedger li{margin:0 0 1.5mm}
 #printLedger .small{font-size:8.5pt;color:#444}
 @page{size:A4;margin:12mm}
}
