body{font-family:sans-serif;max-width:600px;margin:20px auto;padding:0 12px;background:#f5f5f5}h2{color:#0066cc;margin-bottom:4px}h3{color:#333;font-size:14px;margin:20px 0 6px}.sect{margin:0 0 18px;padding-bottom:18px;border-bottom:1px solid #e2e2e2}.sect:last-of-type{border-bottom:none;padding-bottom:0}.sect h3{margin:0 0 6px}.sect table,.sect ul,.sect .box{margin-bottom:0}.box{background:#fff;border-radius:8px;padding:12px 16px;box-shadow:0 1px 4px rgba(0,0,0,.1)}form.box{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.box label{font-size:13px;color:#555}.box input,.box select{padding:6px;border:1px solid #ccc;border-radius:4px;font-size:13px}.box input[type=number]{width:80px}.box button{background:#0066cc;color:#fff;border:none;border-radius:4px;padding:7px 16px;font-size:13px;cursor:pointer;margin-left:auto}.hint{font-size:11px;color:#888;width:100%}.slist{list-style:none;margin:0}.slist li{padding:5px 0;border-bottom:1px solid #eee}.slist li:last-child{border:none}a{color:#0066cc}table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.1);margin-bottom:16px}th{background:#0066cc;color:#fff;padding:5px 8px;text-align:left}td{padding:7px 12px;border-bottom:1px solid #eee;font-size:13px}td:first-child{color:#555;width:45%}td:last-child{font-weight:bold}.rt{margin-bottom:0}.rt th{padding:5px 8px;vertical-align:bottom}.rt td{padding:6px 8px;vertical-align:middle}.rt td:first-child{width:auto;white-space:nowrap}.rt td:last-child{font-weight:normal}.rt .rm{font-size:10px;font-weight:normal;opacity:.85}.rt .rd,.rt .rk{color:#888;font-size:11px}.rdir{white-space:nowrap}.da{vertical-align:middle;margin-right:4px}.da path{fill:#0066cc}@media(max-width:400px){.rt td,.rt th{padding:5px 6px}}ul{background:#fff;border-radius:8px;padding:12px 20px;box-shadow:0 1px 4px rgba(0,0,0,.1)}li{padding:6px 0;border-bottom:1px solid #eee}li:last-child{border:none}pre{background:#fff;border-radius:8px;padding:12px;box-shadow:0 1px 4px rgba(0,0,0,.1);font-size:11px;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.back{margin-top:16px;font-size:14px}.sub{color:#888;font-size:12px;margin-bottom:16px}.fn{color:#888;font-size:12px;margin-bottom:16px}.lrow{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.lact{white-space:nowrap;font-size:13px}.lts{color:#888;font-size:12px;font-family:ui-monospace,Menlo,Consolas,monospace;margin-top:2px}.lts span{display:inline-block;min-width:78px;color:#aaa}.fix-ok{color:#2a9d2a}.fix-no{color:#cc2a2a}.live{color:#2a9d2a;font-size:12px;margin-bottom:12px}.lvb{position:fixed;right:8px;bottom:8px;background:#fff;border-radius:10px;padding:2px 9px;font-size:11px;box-shadow:0 1px 4px rgba(0,0,0,.15)}#lv[data-s=on]{color:#2a9d2a}#lv[data-s=poll]{color:#cc8800}#lv[data-s=off]{color:#999}#bf button[disabled]{opacity:.6;cursor:wait}.nav{margin-top:16px;font-size:14px}.nav a{margin-right:12px}.ok{color:#2a9d2a}.err{color:#cc2a2a}.up progress{width:100%;height:14px}.up .msg{width:100%;font-size:13px;min-height:1.2em}.msg.bad{color:#cc2a2a}.msg.good{color:#2a9d2a}.box input[type=file]{max-width:100%}.box button[disabled]{opacity:.6;cursor:wait}.dl{display:inline;margin:0 0 0 10px}.dl button{background:none;border:none;color:#cc2a2a;cursor:pointer;font-size:13px;padding:0}.box button.danger{background:#cc2a2a}.pager{display:flex;justify-content:space-between;margin-top:10px;font-size:14px}.stat{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.card{background:#fff;border-radius:8px;padding:10px 14px;box-shadow:0 1px 4px rgba(0,0,0,.1);flex:1;min-width:100px}.card .val{font-size:20px;font-weight:bold;color:#0066cc}.card .lbl{font-size:11px;color:#888;margin-top:2px}.charts{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:8px}.chart{background:#fff;border-radius:8px;padding:12px;box-shadow:0 1px 4px rgba(0,0,0,.1)}#pg{display:none;position:fixed;top:0;left:0;right:0;z-index:999;background:#fff8e1;border-bottom:2px solid #f9a825;padding:8px 16px;font-size:13px;color:#7a5c00;align-items:center;gap:10px;box-shadow:0 2px 6px rgba(0,0,0,.12)}#pg.show{display:flex}@keyframes spin{to{transform:rotate(360deg)}}#pg .sp{width:14px;height:14px;border:2px solid #f9a825;border-top-color:#e65100;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}

/*
 * Embedded in the documentation's phone frame the viewport is only as wide as
 * the screen cutout, and the frame already provides the surrounding margin.
 * Tightening the body's own padding here keeps the tables from being squeezed.
 */
@media (max-width: 460px) {
  body { margin: 10px auto; padding: 0 8px; }
  td { padding: 6px 8px; font-size: 12px; }
  th { padding: 5px 8px; font-size: 12px; }
  h2 { font-size: 19px; }
  .sub { font-size: 11px; }
}
