:root{--g:#2f6b4f;--g2:#e3efe7;--bg:#f4f1e8;--card:#fff;--tx:#23302a;--mut:#6a766f;--warn:#b4541a;--warnbg:#fff1e3;--bd:#d9d4c5}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{font-size:17px}
body{margin:0;font-family:-apple-system,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;background:var(--bg);color:var(--tx);line-height:1.55;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
header{background:var(--g);color:#fff;padding:calc(14px + env(safe-area-inset-top)) 16px 14px}
header h1{margin:0;font-size:1.3rem}
header p{margin:4px 0 0;font-size:.85rem;opacity:.92}
main{max-width:860px;margin:0 auto;padding:12px}
nav{position:fixed;left:0;right:0;bottom:0;display:flex;background:#fff;border-top:1px solid var(--bd);padding-bottom:env(safe-area-inset-bottom);z-index:10}
nav button{flex:1;min-height:60px;border:0;background:none;font-size:.95rem;color:var(--mut);font-weight:600;font-family:inherit}
nav button.on{color:var(--g);border-top:3px solid var(--g);background:var(--g2)}
.card{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:14px;margin:0 0 12px}
.card h2,.card h3{margin:0 0 6px}
h2{font-size:1.15rem}h3{font-size:1.02rem;color:var(--g)}
.badge{display:inline-block;background:var(--g2);color:var(--g);border-radius:99px;font-size:.78rem;padding:2px 10px;margin-left:6px;font-weight:600;vertical-align:middle}
.why{background:#f7f3e3;border-left:4px solid #c9b15a;padding:8px 10px;border-radius:6px;font-size:.92rem;margin:8px 0}
.warn{background:var(--warnbg);border-left:4px solid var(--warn);padding:8px 10px;border-radius:6px;font-size:.92rem;margin:8px 0}
.tl{list-style:none;margin:8px 0;padding:0}
.tl li{display:flex;gap:10px;padding:8px 0;border-bottom:1px dashed var(--bd)}
.tl li:last-child{border:0}
.tl .t{flex:0 0 92px;font-weight:700;color:var(--g);font-size:.88rem}
.tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;min-height:46px;padding:0 16px;border-radius:99px;border:1px solid var(--bd);background:#fff;font-size:.95rem;font-family:inherit;color:var(--tx)}
.chip.on{background:var(--g);color:#fff;border-color:var(--g)}
.prog{height:12px;background:#e6e2d3;border-radius:99px;overflow:hidden;margin:8px 0 4px}
.prog i{display:block;height:100%;width:0;background:var(--g);transition:width .25s}
.pt{font-size:.85rem;color:var(--mut)}
.items{list-style:none;margin:6px 0 0;padding:0}
.items label{display:flex;align-items:flex-start;gap:12px;min-height:52px;padding:10px 4px;border-bottom:1px solid #eee;cursor:pointer}
.items input{flex:0 0 auto;width:28px;height:28px;margin-top:1px;accent-color:var(--g)}
.items input:checked+span{color:var(--mut);text-decoration:line-through}
.tbd{color:var(--warn);font-weight:700}
.btn{min-height:48px;padding:0 18px;border-radius:10px;border:1px solid var(--g);background:#fff;color:var(--g);font-size:1rem;font-family:inherit;font-weight:600}
.btn.d{border-color:#b33;color:#b33}
.row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
details summary{min-height:48px;display:flex;align-items:center;font-weight:700;cursor:pointer}
ul.plain{padding-left:1.2em;margin:6px 0}
ul.plain li{margin:6px 0}
.hide{display:none}
@media (orientation:landscape) and (max-height:500px){nav button{min-height:48px}body{padding-bottom:64px}}
.switch{display:flex;gap:8px;margin-top:10px}
.rbtn{flex:1;min-height:64px;border-radius:12px;border:2px solid rgba(255,255,255,.4);background:rgba(255,255,255,.12);color:#fff;font-family:inherit;text-align:left;padding:8px 10px;line-height:1.3}
.rbtn b{display:block;font-size:.98rem}
.rbtn small{display:block;font-size:.72rem;opacity:.9;margin-top:2px}
.rbtn.on{background:#fff;color:var(--g);border-color:#fff}
.bt{width:100%;border-collapse:collapse;font-size:.88rem;margin:6px 0}
.bt td{padding:6px 4px;border-bottom:1px solid #eee;vertical-align:top}
.bt td:first-child{white-space:nowrap;width:5.5em}
.bt .n{text-align:right;white-space:nowrap;font-weight:700;width:5em}
.bt .m{color:var(--mut);font-size:.8rem}
.bt tr.tot td{font-weight:800;border-top:2px solid var(--g);color:var(--g)}
.card.total{background:#f3f8f4}
.routehint{margin:0 0 8px}
@media (max-width:380px){.rbtn small{display:none}.rbtn{min-height:48px}}

.switch{flex-wrap:nowrap}.rbtn{min-width:0}.rbtn small{font-size:.68rem}
@media (max-width:480px){.rbtn small{display:none}.rbtn{min-height:48px}.rbtn b{font-size:.85rem}}
