:root{font-family:Inter,"Noto Sans TC",system-ui,sans-serif;color:#1d2633;background:#f5f7fa}*{box-sizing:border-box}body{margin:0}.top{background:#fff;border-bottom:1px solid #dde3ea;padding:16px 24px;display:flex;justify-content:space-between;align-items:center}.brand{font-weight:800}.wrap{max-width:1180px;margin:24px auto;padding:0 20px}.card{background:#fff;border:1px solid #dde3ea;border-radius:14px;padding:20px;margin-bottom:16px;box-shadow:0 3px 12px #0000000a}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.metric{font-size:30px;font-weight:800}.muted{color:#6a7481}.btn{border:0;border-radius:10px;padding:12px 16px;background:#1d2633;color:white;font-weight:700;cursor:pointer}.btn.alt{background:#eef1f5;color:#1d2633}.btn.warn{background:#8b4d00}.btn.big{font-size:18px;padding:16px;width:100%}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}input,select,textarea{border:1px solid #cfd6df;border-radius:9px;padding:11px;font-size:16px;min-width:0}table{width:100%;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid #edf0f3;text-align:left}.status{font-weight:800}.good{color:#137333}.warntext{color:#b25e00}.mobile{max-width:520px;margin:20px auto;padding:0 14px}.sig{width:100%;height:150px;border:2px dashed #b9c1cb;border-radius:10px;background:white;touch-action:none}.hidden{display:none!important}.tabs{display:flex;gap:8px;flex-wrap:wrap}.pill{padding:8px 10px;border-radius:999px;background:#edf1f5;cursor:pointer}.login{max-width:430px;margin:80px auto}.qr{max-width:280px;width:100%}.routebar{height:10px;background:#e8edf2;border-radius:999px;overflow:hidden}.routebar>span{display:block;height:100%;background:#1d2633}.notice{background:#fff8e8;border:1px solid #f0d89b;padding:12px;border-radius:10px}.error{background:#fff0f0;border:1px solid #e8b7b7;padding:12px;border-radius:10px}.ok{background:#edf8ef;border:1px solid #b8debf;padding:12px;border-radius:10px}@media(max-width:700px){.desktop-only{display:none}.wrap{padding:0 10px}.card{padding:16px}th:nth-child(n+4),td:nth-child(n+4){display:none}}

.route-select{cursor:pointer;transition:.15s ease}.route-select:hover{transform:translateY(-2px);box-shadow:0 5px 16px #00000012}.route-selected{outline:3px solid #1d2633;background:#f8fafc}
