:root{--bg:#0d0f12;--card:#171a20;--line:#2a2f38;--txt:#eef1f5;--mut:#8b93a1;--acc:#ff5a1f;--acc2:#ffd23f;--ok:#2ecc71;--warn:#f5b301;--bad:#ff3b4a}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--txt);font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:linear-gradient(90deg,#16191f,#0d0f12);border-bottom:3px solid var(--acc)}
.brand{font-weight:900;font-style:italic;letter-spacing:1px;font-size:20px;display:flex;align-items:center;gap:8px}.brand b{color:var(--acc)}
.flag{width:22px;height:22px;background:conic-gradient(#fff 25%,#000 0 50%,#fff 0 75%,#000 0);background-size:11px 11px;border-radius:3px}
main{padding:12px 12px 96px;max-width:760px;margin:auto}
h2{margin:6px 0 12px;font-style:italic;text-transform:uppercase;letter-spacing:.5px}h2 small{color:var(--mut);font-size:13px;font-style:normal;text-transform:none}
h3{margin:14px 0 6px;color:var(--acc2);font-size:14px;text-transform:uppercase;letter-spacing:1px}
.card{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--acc);border-radius:12px;padding:12px;margin-bottom:10px}
.card.click{cursor:pointer}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sp{flex:1}
.mut{color:var(--mut);font-size:13px}.big{font-size:26px;font-weight:800}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.stat{background:#1e222a;border-radius:10px;padding:10px}.stat .big{font-size:22px}
button,.btn{background:var(--acc);color:#fff;border:0;border-radius:12px;padding:14px 16px;font-size:16px;font-weight:700;min-height:48px;cursor:pointer;text-decoration:none;display:inline-block}
button.sec{background:#2a2f38}button.ghost{background:none;font-size:24px;min-height:40px;padding:4px 10px}button.danger{background:var(--bad)}button.sm{padding:8px 12px;min-height:38px;font-size:14px}
button.full{width:100%;margin:6px 0}
label{display:block;font-size:12px;color:var(--mut);margin:8px 0 3px;text-transform:uppercase;letter-spacing:.5px}
input,select,textarea{width:100%;background:#0f1216;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:12px;font-size:16px;min-height:46px}
textarea{min-height:80px}.f2{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}.f4{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:700;background:#2a2f38}
.pill.ok{background:#164d2c;color:#7dffb0}.pill.warn{background:#5a4300;color:var(--acc2)}.pill.bad{background:#5c111a;color:#ff9aa3}.pill.sample{background:#3a2a5c;color:#d4bfff}
#tabs{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(10,1fr);background:#111419;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:5}
#tabs a{color:var(--mut);text-decoration:none;text-align:center;padding:8px 0;font-size:20px}#tabs a span{display:block;font-size:10px;font-weight:700}#tabs a.on{color:var(--acc);box-shadow:inset 0 3px var(--acc)}
#modal{position:fixed;inset:0;background:#000a;z-index:10;display:flex;align-items:flex-end;justify-content:center}#modal.hidden{display:none}
.sheet{background:var(--card);width:100%;max-width:760px;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 14px 30px;border-top:4px solid var(--acc)}
table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left}th{color:var(--mut);font-weight:600}
td.diff{background:#4a2a00;color:var(--acc2);font-weight:700}
.corners{display:grid;grid-template-columns:1fr 1fr;gap:6px;text-align:center}.corners div{background:#1e222a;border-radius:8px;padding:6px}
.banner{background:#3a2a5c;color:#d4bfff;border-radius:10px;padding:8px 12px;font-size:13px;margin-bottom:10px}
.toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:var(--ok);color:#000;padding:10px 18px;border-radius:99px;font-weight:700;z-index:20}
.feel{display:flex;gap:4px}.feel span{flex:1;text-align:center;font-size:12px;padding:4px;border-radius:6px;background:#1e222a}.feel .tight{color:#6cb6ff}.feel .loose{color:#ff8a65}
@media print{header,#tabs,.noprint,button{display:none!important}body,main{background:#fff;color:#000;padding:0}.card{border:1px solid #999;background:#fff;color:#000}h3{color:#000}.corners div,.stat{background:#eee}.mut{color:#444}td,th{border-color:#999}#modal{display:none}}
.rlinks{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.btn.rl{font-size:14px;padding:12px 8px;text-align:center;background:#2a2f38}.btn.rl.dis{opacity:.4}tr.click{cursor:pointer}#tabs a span{font-size:9px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}.chip{display:inline-block;margin:0}.chip input{display:none}.chip span{display:inline-block;padding:7px 10px;border-radius:16px;background:#2a2f38;font-size:13px;border:1px solid #3a404c;cursor:pointer}.chip input:checked+span{background:var(--acc);color:#111;border-color:var(--acc);font-weight:700}.pill.tag{margin:2px 0}
table.rep{font-size:13px}@media print{table.rep td,table.rep th{padding:3px 4px}.banner{border:1px solid #999;color:#000;background:#fff}}
.tires td,.tires th{font-size:12px;padding:4px 3px;text-align:center}.tirec{padding:8px}

.banner.warn{background:#4a3a10;color:#ffe08a}
.tpl{padding:8px 10px}

.lapchart{display:block;margin-top:8px}
.btnlike{display:inline-block;padding:6px 10px;border-radius:8px;background:#2a2f3a}
#lapImp summary{cursor:pointer}
/* baseline / diff / ratings */
.chgs{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.chg{display:inline-block;background:#1e222a;border:1px solid var(--line);border-radius:8px;padding:3px 8px;font-size:13px}.chg s{color:var(--mut)}
em.up,td.up,b.up{color:#ff9aa3;font-style:normal;font-weight:700}em.dn,td.dn,b.dn{color:#7dffb0;font-style:normal;font-weight:700}
.hint{font-size:12px;margin:3px 0;line-height:1.7}.hint .pill{font-size:11px}a.lnk{color:var(--acc2)}a.btn.sm{padding:8px 12px;min-height:38px;font-size:14px;background:#2a2f38;color:#fff;border-radius:12px}
table.difft{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}table.difft th,table.difft td{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left}table.difft tr.chgd th{color:var(--acc2)}
.chgrow{display:grid;grid-template-columns:1.3fr 1fr;gap:6px;margin:6px 0;padding:6px;border:1px dashed var(--line);border-radius:10px}.chgrow .cfrom,.chgrow .chint{grid-column:1/-1}
label.pick{display:flex;gap:10px;align-items:flex-start;background:#1e222a;border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0;text-transform:none;letter-spacing:0;font-size:14px;color:var(--txt)}label.pick input{width:22px;min-height:22px;margin-top:2px}
.card.rate.helped{border-left-color:var(--ok)}.card.rate.hurt{border-left-color:var(--bad)}.card.rate.unclear{border-left-color:var(--warn)}
.expl{font-size:13px;line-height:1.45;margin:8px 0;color:#cfd5de}
.bar{position:relative;height:14px;background:#1e222a;border-radius:7px;margin-top:10px}.bar span{position:absolute;top:3px;height:8px;background:#ffd23f55;border-radius:4px}.bar i{position:absolute;top:0;width:3px;height:14px;background:var(--acc2);margin-left:-1px}.bar u{position:absolute;left:50%;top:-2px;height:18px;width:1px;background:#8b93a1}
.bar-l{display:flex;justify-content:space-between;font-size:11px}

/* marketplace */
a.card.mk{display:flex;gap:10px;text-decoration:none;color:inherit;padding:8px}.mkth{width:92px;height:72px;object-fit:cover;border-radius:8px;flex:none;background:#1f242c}.mkb{flex:1;min-width:0}.mkb b{overflow:hidden;text-overflow:ellipsis}.price{color:var(--ok)}.big2{font-size:24px}
.mkf input,.mkf select{margin-top:6px}.mktabs{margin:4px 0 10px}.mkgal{display:flex;gap:8px;overflow-x:auto;margin-top:8px}.mkbig{width:100%;max-height:260px;object-fit:cover;border-radius:10px;flex:none;background:#1f242c}
.mkxs{width:54px;height:42px;object-fit:cover;border-radius:6px;flex:none;background:#1f242c}.mkthumbs{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}
.mkmini{display:grid;gap:6px;margin:8px 0}.mkmini a{display:flex;gap:8px;align-items:center;color:inherit;text-decoration:none;font-size:13px}a.mklink{margin-top:6px;display:inline-block;background:#2b3a2a;color:var(--ok)}.banner.ok{border-color:var(--ok)}
/* sharing */
.shpre{background:#0b0d10;border:1px solid var(--line);border-radius:8px;padding:8px;font-size:11px;max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word}
a.shstat{display:block;text-decoration:none;color:inherit;border-left-color:var(--ok)}a.shstat.on{border-left-color:var(--acc2)}.shpill{background:#1e3a5f;color:#9cc8ff}.sw{display:flex;gap:6px;align-items:center;font-weight:800}.sw input{width:22px;height:22px}
.privbar{background:#161a20;border-radius:8px;padding:6px 8px;margin:6px 0}.commp{margin-top:6px;font-size:13px}td.comm{background:#14202e}table.cmpt td{vertical-align:top}button[disabled]{opacity:.4}

a.trk{display:block;color:inherit;text-decoration:none}.pill.unv{background:#4a3b12;color:#f5d27a}.pill.own{background:#163d2a;color:#7ee2a8}.warnc{color:#f08080}
.evc{display:block;color:inherit;text-decoration:none}.evc b{color:inherit}#evMy{width:auto;height:auto;margin-right:6px}
.logo{width:26px;height:26px;border-radius:6px;vertical-align:middle;margin-right:2px}
/* pilot */
.pill.pilot{background:#ff6a1a;color:#111}#modeBadge{font-size:10px;margin-left:6px;vertical-align:middle}
#syncDot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:6px;vertical-align:middle;background:#3c4}#syncDot.pend{background:#f5d27a}#syncDot.off{background:#888}
body.signedout #tabs,body.signedout #menuBtn{display:none}
.signin{max-width:440px;margin:0 auto}.silogo{display:block;width:100%;max-width:300px;margin:12px auto}
.fbrow{display:flex;gap:6px;margin:8px 0}.fbb{flex:1;font-size:22px;padding:6px 0}.fbb.on{background:var(--acc);color:#111}
#fbPrompt textarea{width:100%;box-sizing:border-box}
#installBar{position:fixed;left:10px;right:10px;bottom:calc(70px + env(safe-area-inset-bottom));z-index:6;display:flex;gap:8px;align-items:center;background:#1f242c;border:1px solid var(--acc);border-radius:12px;padding:8px 10px;font-size:14px}#installBar span{flex:1}
#offBar{position:fixed;top:0;left:0;right:0;z-index:7;background:#5a4300;color:#f5d27a;text-align:center;font-size:12px;padding:2px}
html,body{overflow-x:hidden}
/* messaging + fast listing */
#msgBtn{position:relative;text-decoration:none;font-size:20px;margin-right:6px}
#msgBadge{position:absolute;top:-6px;right:-8px;background:#e5482f;color:#fff;border-radius:9px;font-size:11px;min-width:16px;padding:0 4px;text-align:center;line-height:16px}
.convo{display:block;text-decoration:none;color:inherit}.convo.unread{border-left:4px solid #e5482f}
.msgs{display:flex;flex-direction:column;gap:6px;max-height:55vh;overflow:auto;padding:6px 0}
.msg{max-width:80%;padding:8px 10px;border-radius:12px;background:#2a2f36;word-wrap:break-word}.msg.me{align-self:flex-end;background:#1f5fae;color:#fff}.msg small{display:block;opacity:.6;font-size:10px}
.msgimg{max-width:100%;border-radius:8px;display:block}
.msgbar{display:flex;gap:6px;align-items:center}.msgbar input#msgIn{flex:1;min-width:0}
.bkrow{display:grid;grid-template-columns:24px 1fr 80px 110px;gap:6px;align-items:center;margin:4px 0}.bkrow input,.bkrow select{min-width:0;width:100%}
.drow{display:flex;gap:8px}.drf{flex:1;min-width:0}.drf .row input{flex:1;min-width:0}.mkxs{width:64px;height:64px;object-fit:cover;border-radius:6px}
.mkfast{margin-bottom:6px}
@media (max-width:420px){.bkrow{grid-template-columns:22px 1fr 70px}.bkrow .bkc{grid-column:2/4}}
.syncissue{position:fixed;left:8px;right:8px;bottom:70px;background:#fff4d6;border:1px solid #e0b84a;border-radius:8px;padding:6px 8px;font-size:13px;z-index:50;display:flex;gap:6px;align-items:center}.cvsess{border-top:1px solid #ddd;margin-top:6px;padding-top:4px}.csum{margin:6px 0}
