*{box-sizing:border-box}
body{margin:0;font:16px/1.35 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:#f4f4f2;color:#111}
header{position:sticky;top:0;z-index:5;display:flex;gap:.6rem;align-items:center;padding:.55rem .8rem;background:#111;color:#fff;flex-wrap:wrap}
.brand span{font-weight:400;opacity:.7} #wh{opacity:.8;font-size:.9rem}
.sync{font-size:.8rem;margin-left:auto}.sync.ok{color:#7d7}.sync.off{color:#fb5}
.langs button{background:none;border:1px solid #555;color:#ccc;padding:.2rem .45rem;border-radius:6px;margin-left:2px}
.langs button.on{background:#fff;color:#111}
main{max-width:860px;margin:0 auto;padding:.8rem .8rem 6rem}
button,.btn{font:inherit;border:0;border-radius:10px;padding:.7rem 1rem;background:#e2e2de;color:#111;cursor:pointer;text-decoration:none;display:inline-block}
button.primary{background:#111;color:#fff} button.big{width:100%;padding:1.1rem;font-size:1.2rem;font-weight:700}
button.ok{background:#1b8a3c;color:#fff} button.warn{background:#c0392b;color:#fff} button.small{padding:.4rem .65rem;font-size:.9rem}
button:disabled{opacity:.45}
input,select,textarea{font:inherit;padding:.6rem;border:1px solid #bbb;border-radius:8px;background:#fff;width:100%}
input.q{width:5.2rem;text-align:center;font-size:1.1rem}
.card{background:#fff;border-radius:14px;padding:.8rem;margin:.7rem 0;box-shadow:0 1px 2px #0001}
.demo{background:#ffe08a;border-radius:10px;padding:.6rem .8rem;display:flex;gap:.6rem;align-items:center;justify-content:space-between;font-weight:600}
.steps{display:flex;gap:4px;overflow-x:auto;margin:.7rem 0}
.steps button{flex:1 1 0;padding:.6rem .2rem;font-size:.8rem;line-height:1.15}
.steps button.on{background:#111;color:#fff}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:.4rem 0}
.chips button{padding:.5rem .8rem}.chips button.on{background:#2d5bd7;color:#fff}
.chips small{opacity:.75}
h3{margin:.2rem 0 .5rem;font-size:1.05rem} .muted{color:#666;font-size:.9rem}
.sum{display:flex;gap:.6rem;flex-wrap:wrap}.sum div{background:#fff;border-radius:10px;padding:.5rem .7rem;min-width:6.5rem}
.sum b{display:block;font-size:1.3rem}
.row{display:grid;grid-template-columns:3.4rem 3.4rem 1fr auto auto;gap:.4rem;align-items:center;padding:.35rem .2rem;border-top:1px solid #eee}
.row.f{grid-template-columns:3.4rem 3.4rem 5.4rem auto 1fr}
.row .sz{font-weight:700;font-size:1.1rem}
.row.good{background:#e9f7ec}.row.gap{background:#fdeaea}.row.dmg{background:#fff1dd}
.dmgbox{grid-column:1/-1;display:grid;grid-template-columns:5rem 1fr;gap:.4rem;padding:.4rem;background:#fff7ea;border-radius:8px}
.pick{display:flex;justify-content:space-between;padding:.8rem .6rem;border-top:1px solid #eee;font-size:1.1rem;cursor:pointer}
.pick.done{background:#e9f7ec;text-decoration:line-through;color:#386}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.pl{display:grid;grid-template-columns:1fr 5rem 2.4rem;gap:.4rem;margin:.25rem 0;align-items:center}
.alert{background:#fdeaea;color:#a00;border-radius:8px;padding:.5rem .7rem;margin:.4rem 0;font-weight:600}
.info{background:#eaf1fd;border-radius:8px;padding:.5rem .7rem;margin:.4rem 0}
.locked{background:#e9f7ec;border:2px solid #1b8a3c;border-radius:12px;padding:.7rem;margin:.5rem 0}
.thumbs{display:flex;gap:6px;flex-wrap:wrap;margin-top:.3rem}.thumbs img{width:64px;height:64px;object-fit:cover;border-radius:6px}
.whs{display:grid;gap:.6rem;margin:1rem 0}.whs button{padding:1.1rem;font-size:1.15rem}.whs button.on{background:#111;color:#fff}
code,pre{font-size:.8rem;background:#f0f0ec;border-radius:6px;padding:.1rem .3rem;overflow:auto}
pre{padding:.6rem;max-height:300px}
.toggle{display:flex;gap:.4rem}.toggle button{flex:1}.toggle button.on{background:#2d5bd7;color:#fff}
.badge{display:inline-block;border-radius:6px;padding:.05rem .4rem;font-size:.8rem;font-weight:700;color:#fff;background:#888}
.b-ready{background:#1b8a3c}.b-waiting{background:#d39b00}.b-short{background:#c0392b}.b-needs_sizes{background:#7a4cc2}
.todayc{border:2px solid #2d5bd7}
.tags{grid-column:1/-1;display:flex;gap:.3rem;flex-wrap:wrap}.tags:empty{display:none}
.ed{font-size:.75rem;background:#eaf1fd;color:#2d5bd7;border-radius:6px;padding:.05rem .35rem}
.cf{font-size:.75rem;background:#fff1dd;color:#a35400;border-radius:6px;padding:.05rem .35rem;font-weight:700}
.pend{font-size:.75rem}
.pres{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0;font-size:.85rem}.pres span{background:#111;color:#fff;border-radius:999px;padding:.2rem .6rem}.pres span.meP{background:#555}
.claim{font-size:.8rem;background:#f3e9ff;color:#6a2fc2;border-radius:6px;padding:.2rem .4rem;align-self:center}
button.on-claim{background:#6a2fc2;color:#fff}
.toast{position:fixed;left:50%;bottom:1.2rem;transform:translateX(-50%);background:#222;color:#fff;padding:.7rem 1rem;border-radius:10px;z-index:9;max-width:90vw}
.row{grid-template-columns:3.4rem 3.4rem 1fr auto auto}
/* v4 – bigger tap targets, simpler screens */
button,.btn{min-height:48px} button.small,.btn.small{min-height:44px;padding:.5rem .8rem} button.link{background:none;text-decoration:underline;color:#555;min-height:40px}
input,select{min-height:48px;font-size:1.05rem} input.q{width:5.6rem;font-size:1.25rem;font-weight:600}
input.pin{font-size:1.6rem;letter-spacing:.4em;text-align:center}
button.tick{min-width:56px;font-size:1.3rem;padding:.4rem .7rem}
.hint{background:#eaf1fd;border-radius:10px;padding:.55rem .75rem;margin:.6rem 0;font-size:1rem}
.hdrbtn{background:#333;color:#fff;border:1px solid #666;min-height:34px;padding:.2rem .6rem;font-size:.85rem;border-radius:999px}
.back{display:flex;gap:.6rem;align-items:center;margin-top:.5rem}.back button{min-height:44px}
.steps button{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:58px;font-size:.78rem}
.steps button b{font-size:1.05rem}.steps button.done:not(.on){background:#d6efdc;color:#1b6b33}
.cardh{display:flex;justify-content:space-between;gap:.4rem;align-items:center}.acts{display:flex;gap:.3rem;flex-wrap:wrap;justify-content:flex-end}
.row.hdr{font-size:.75rem;color:#777;padding:.1rem .2rem;border-top:0}.row .exp{color:#555}
.row.unx{background:#fff4e0}
.ux{font-size:.75rem;background:#ffe2b8;color:#8a4b00;border-radius:6px;padding:.05rem .35rem;font-weight:700}
.unxcard{border:2px solid #f0a020;background:#fffaf0}.unxsku{margin-top:.5rem}.unxs{border:2px solid #f0a020}
button.dashed{background:#fff;border:2px dashed #888;color:#111;font-weight:600}
.addunx{margin:.4rem 0 .2rem}
.task{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.8rem .7rem;margin:.4rem 0;border-radius:12px;background:#f4f7ff;border:1px solid #d5def7;cursor:pointer;font-size:1.02rem;color:#111}
.names{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.6rem;margin-top:.6rem}
.namebtn{min-height:72px;font-size:1.25rem;font-weight:700;background:#111;color:#fff;border-radius:14px}
.whl{background:#111;color:#fff;border-radius:6px;padding:.05rem .35rem}
.tabs{display:flex;gap:4px;margin:.6rem 0;overflow-x:auto}.tabs button{flex:1 1 0;white-space:nowrap}.tabs button.on{background:#111;color:#fff}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem}
.help{margin-top:.6rem;background:#f6f6f2;border-radius:8px;padding:.5rem .7rem;font-size:.9rem}.help summary{cursor:pointer;font-weight:600}
.approx{font-size:.75rem;background:#ffe08a;border-radius:6px;padding:.05rem .4rem;font-weight:700;vertical-align:middle}
.bar{display:grid;grid-template-columns:minmax(9rem,40%) 1fr 3.5rem;gap:.5rem;align-items:center;margin:.3rem 0;font-size:.9rem}
.bar i{display:block;height:18px;background:#2d5bd7;border-radius:4px}.bar b{text-align:right}
.tbl{border-collapse:collapse;width:100%;font-size:.85rem}.tbl th,.tbl td{padding:.35rem .4rem;border-bottom:1px solid #eee;text-align:left;white-space:nowrap}.tbl th{color:#666;font-weight:600}
.tl{display:grid;grid-template-columns:9.5rem 1fr;gap:.5rem;padding:.35rem 0;border-top:1px solid #eee;font-size:.9rem}.tlt{color:#666}
.nmrow{display:grid;grid-template-columns:1fr;gap:.3rem;padding:.6rem 0;border-top:1px solid #eee}.nmrow.hid input{opacity:.55}
.nmrow .acts{justify-content:flex-start}.nmrow select{width:auto}
.sheet-bg{position:fixed;inset:0;background:#0007;z-index:20}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:21;background:#fff;border-radius:18px 18px 0 0;padding:1rem;max-height:92vh;overflow-y:auto;max-width:860px;margin:0 auto;box-shadow:0 -4px 20px #0003}
.sheet label{display:block;margin:.5rem 0}.lbl{margin:.7rem 0 .3rem;font-weight:600}
.sizes{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:6px;margin-bottom:.4rem}
.sizes button{min-height:52px;font-size:1.05rem;font-weight:600;padding:.3rem;position:relative}.sizes button.on{background:#2d5bd7;color:#fff}
.sizes button.have{color:#999}.sizes button i{position:absolute;top:2px;right:6px;color:#f0a020;font-style:normal}
.stepper{display:grid;grid-template-columns:64px 1fr 64px;gap:.4rem}.stepper button{font-size:1.8rem;font-weight:700;min-height:60px}.stepper input{text-align:center;font-size:1.6rem;font-weight:700;min-height:60px}
.shimg{width:80px;height:80px;object-fit:cover;border-radius:8px;margin-left:.5rem;vertical-align:middle}
@media (max-width:480px){.row{grid-template-columns:2.8rem 2.4rem 1fr auto auto}.row.f{grid-template-columns:2.8rem 2.4rem 5.6rem auto 1fr}}
[hidden]{display:none!important}
/* v4.1 breaks */
.thr{display:flex;align-items:center;gap:.4rem}.thr input{width:5rem;text-align:center;font-weight:700}
.day{padding:.6rem 0;border-top:1px solid #eee}.dayh{margin-bottom:.3rem}
.daysum{display:flex;flex-wrap:wrap;gap:.3rem .9rem;font-size:.85rem;color:#555;margin-bottom:.4rem}.daysum b{color:#111}
.daybar{position:relative;height:30px;background:#f3f3ef;border-radius:6px;overflow:hidden}
.daybar i{position:absolute;top:0;bottom:0;display:block}
.daybar i.wk{min-width:3px}
.daybar i.br{background:repeating-linear-gradient(45deg,#b9b9b4,#b9b9b4 6px,#c9c9c4 6px,#c9c9c4 12px);color:#222;font-size:.75rem;font-style:normal;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;border-left:1px solid #fff;border-right:1px solid #fff}
.dayaxis{display:flex;justify-content:space-between;font-size:.75rem;color:#777;margin-top:2px}
.legend{display:flex;flex-wrap:wrap;gap:.3rem .8rem;font-size:.8rem;margin:.3rem 0 .4rem}.legend i{display:inline-block;width:14px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}
.legend i.lg-br{background:repeating-linear-gradient(45deg,#b9b9b4,#b9b9b4 3px,#c9c9c4 3px,#c9c9c4 6px)}
.kind{font-size:.75rem;border-radius:6px;padding:.05rem .4rem;font-weight:700}.k-within{background:#eaf1fd;color:#2d5bd7}.k-between{background:#fff1dd;color:#a35400}
